No announcement yet.

Intelligent Fan Control

  • Filter
  • Time
  • Show
Clear All
new posts

  • Intelligent Fan Control

    i have been trying to spend as much time playing with and finding uses for arduino microcontrollers as possible, lately. I've already built and programmed simple stuff, like 8 led's in two rows of 4 and then programmed it to pulse out small block chevy firing order (18436572) and connect a pot to an analog pin and have it function as a gas pedal. I've made a pan and tilt setup and programmed it to work with joystick input. my most recent success was an autolamp module i designed and made and programmed and installed in my car. and it works like a dream. the new project i am taking is i want to incorporate an arduino microcontroller specifically a mega into my cooling fan control circuit. i have 3 30amp cooling fans. i currently have 4 relays controlling them off of just a temp switch and the a/c compressor clutch power in such a manner that only 2 fans come on at a time with either input, and if it gets both inputs the third fan will spin. unfortunately, even 2 of these fans powering up in parallel at the same time creates a significant electrical draw at startup when the engine is at idle. so i see need here for improvement.

    my new design will use an a/c high side pressure sensor and a coolant temp sensor. both sensors will report back to the arduino 0-5v. and the arduino can bring 2 or 3 fans on in series and then, once spinning, switch 1 fan at a time to parallel. this 5 relay control for 3 fan design will give me multiple fan speeds to reduce electrical loads or spikes that affect the car's idle. for right now, the arduino drives 5v relays that drive 12v relays, and i am woundering if there is a smaller way to drive the 12v relays so i can make my controllers smaller? here are some pics of my fan control setup. the 4 relay schematic is the old design or what is currently in the car. the 5 relay schematic is my new brainchild.
    Attached Files

  • #2
    I'd use a little transistor on the output pin of the arduino, a 2N2222, general purpose switching transistor, available at Radio Shack, if you like. Use the transistor to switch the ground side of the 12VDC relay. That would get rid of the 5VDC relays completely.


    • #3
      I'd be using MOSFETs and PWM. Hence soft starting and no relays (unless you want to use a relay for each to bypass the fet once up to speed, or as a manual fallback).


      • #4
        great ideas guys. i need more info on building a pwm ckt that is going to handle the load of a 30amp fan. all the c6 and i am quite sure c7 corvettes use pwm cooling fan and fuel pumps. there are modules that drive these, and they are pricey. but they just take power, ground, and pwm signal right out of the ecu. and there is even a fan map in the tuning solutions for these cars. this circuit MUST be overbuilt and EXTREMELY reliable as it will be the only cooling solution for my engine setup. i run a sleeved aluminum open deck block and when it gets hot enough the head warps and the sleeves/cylinder bores can move as they are not attached to the block anywhere but at the base of the bore. so far, i am 3 years into my project and it is my daily driver and out of everything i have done i have only had a clutch master fail, and an alternator flame up. anybody can build anything from anything with anything for anything. but to build something that lasts in real world conditions and is long wearing, now that's what seperates the boys from the men.

        i also have a question about the trasistors. can they handle having a constant 1amp -12v load? so it is not switching back and forth? like if the motor stays on and hot for a long period of time, and the transistor is holding a relay or 2 energized for a long period of time, like an hour or 2, will the transistor be able to handle that? or is the relay better suited for that application?


        • #5
          Refer to transistor specs. Or use MOSFETs instead and save yhe design hassle.

          For controllers, as before, use PICAXE 08M2s etc. For reliability I'd suggest redundancy. And that's easy with duplicate controllers or alarms and ground referenced switching & PWM etc.


          • #6
            why are you so big on that 1 specific controller, old spark? when there are so, so many. and with so many more features already integrated so you don't have to add circuits. i think you should do some more research on arduino and raspberry pi. they are great solutions. fusion brain, i am sure is good, too, but i could never get my v4 to work and ninja kitty wizard of doom didn't help me at all. instead of just throwing out an acronym at me how about a diagram or parts list or both to build a 12v 30a pwm circuit that can be driven by no more than 50ma at 5v. if someone can steer me in that direction, i would certainly go pwm before this 5 relay setup, as cool as my design is. but to buy 3 corvette fan modules to run my fans is like a $4-500 proposition and at that point my 5 relay setup will be what i build. the aem ecu i have has 4 pwm outputs, the arduino nano i have driving my autolamp module has 4 pwm outputs, and the "funduino" mega board i just got off ebay has 15 pwm outputs( along with 54 digital pins and 16 analog pins). i would LOVE to do more with these, but i just don't know how or where to find or make like a pwm relay? i would also like to switch my fuel pump to pwm so i can make it a returnless system and ditch the fuel regulator. but like the fans, fuel pumps draw some amps, and more once pressure has built.


            • #7
              can a regular 5v relay handle pwm?


              • #8
                WTF? I also have Arduinos, but since you mentioned size...
                In that pic you had with the Arduino and some sensor or whatever, I thought the small PCB was the complete "controller", then I realised the bigbox (Arduino) was the controller.
                That's the difference between a $3 8-pin 08M2 and an Ardy with all its support. I wouldn't use a windoze or nix box or arduino etc when a simple chip does it with a few cheap & simple additions. Others would use a PC or whatever because "I have one already" or "it needs no additional crap" or it is "easier to use". Fine for them.
                But I have done my research and that's why I wouldn't use something as (IMO) complex or excessive or costly as an Arduino for such a simple project, especially if it's an as critical application.

                And what do you mean by "can a regular 5v relay handle pwm"? You don't PWM relay coils. The relay contacts can handle anything within their specs - eg, 48A, 3A (100MHz if provided or relevant) etc.
                But why use a relay to handle a PWM signal when the PWM output itself (eg, MOSFET) can do that? A 14uA 08M2 driving a 100A switching MOSFET? Simple! N-channel for GND switching & paralleling to other power sources or PWMs? - even better.


                • #9
                  A relay won't work because it will not switch fast enough. The coil will not release its energy fast enough to be a PWM output of any significance. Plus if you try you may wear it out fast.

                  As OS mentioned, the MOSFET transistors are the item of choice. They are used in power supplies in your high end Audio Amplifiers to create AC. I am unsure if they are used to produce the actual audio but as I understand it they are used to power the amplifier. I am sure OS would be much better at trying to explain how an amplifier works but you can get some pretty beefy MOSFET transistors. Plus if you need to I believe you can increase their power by using more than one in parallel.

                  Using something like the PICAXE or Propeller or a simple PIC to do this is simply due to the reliability, quick up time and dependability of the software. Plus they are generally cheaper to put together. No reason you couldn't do it with an Arduino as well but you would be best served with one on a board you build than trying to use one of the development boards. The development boards may not hold up in your car for long periods of time.

                  You definitely do not want to use something with an operating system on it to control something that will be mission critical. Would not be fun to be cruising along at 55 and have the blue screen of death and you car dies... Or locking up. The simpler the controller the less likely to have issues and the cheaper to use. The more complex the controller and the more likely it is you will have issues. You can also find chips from manufacturers such as Freescale that are designed to be used as fan controller and such and would be very simple to use without needing to program them.



                  • #10
                    ok, let me explain my controller direction and visions for you OS. i am working towards creating my own body control module for my project car. the initial install requires at least 1 function. so i went with autolamps. the main reason the project box is the size it is is because of the 2 5v relay board that is inside with the arduino nano. i do want it to be as small as it can be, but i am not searching for simplicity. i was originally going to add ckts to the nano until i outgrew it, but have recently just decided to step up to a mega board as i am adding fan control. and i will move autolamps to the mega board at the time of new fan controller install. then i will add fuel pump control, a/c functions, door locks, windows, etc. the arduino board will stay plugged into carpc via usb for diagnostic purposes via serial monitor(so i can see what all my sensors are reporting back to arduino. i am not looking for a simple feature, but a complex, programmable, diagnostic friendly body computer that will communicate well with both my carpc and my exotic engine controller. so far, arduino, raspberry pi, and fusion brain are the only controllers i have come across that fit this bill. i would also like controller to look at interior temp, ambient temp, engine temp, batt temp, and carpc tray temp. and i want controller to turn on amps 18 seconds after car starts to give carpc a chance to boot up to the 64 bit win7 desktop. no need for all that power consumption until i can listen to something. and i want the my body controller to crack windows and turn on blower fan or start car and run a/c when car reaches a certain temp at a certain time of day, so my flat black car is not miserably hot getting into when i get out of work. i am just not going to achieve all these things in the manner i envision with an 8 pin ic.

                    back on the pwm and transistors, i have a $300 aem 4 channel coil driver module that i am not using anymore, since i upgraded to 3 wire smart coils that work directly off of ecu circuit. i am sure that this could be used to drive pc case fans or other lighter duty stuff, but i need a pwm ckt that can feed 30amps down a 12 guage wire to 12" automotive cooling fans. since the start of this thread i have been searching mosfets and transistors, and just not finding anything heavy duty enough to carry this load. oh and arduino only handles 40ma not the 50ma i previously stated.

                    as far as things i might not want to bring a programmable controller into, everything i am working towards is no more than the industry standard on all of todays vehicles. oem radios don't get ignition power, just batt. gnd and a class 2 data line. even ignition switches today don't send power anywhere. they just send a signal to the body computer or the ecu to wake the car up. take gm for example. every gm vehicle is driven by 2 networks. a low speed or class 2 network that communicates at 33k/s and is just 1 common wire attached to all modules that communicate on that network(bcm, ddm, pdm, rtd, tpm, sdm, ipc) . and then there's a high speed gmlan that communicates at up to 500k/s and is 2 wires run in and out of all modules talking on that network(bcm, esc, tcm, abs, pcm). in these cars, the body control module, or bcm is the hub and what ties the 2 networks together. not a single switch in todays Mercedes is hard wired to anything. instead, todays Mercedes are driven by a front and rear sam module. s.a.m. = signal acquisition module. even something as simple as a headlamp switch or door lock switch on todays cars is turned into a data signal and thrown to another module before it can perform it's function. and in this light software updates in the automotive industry is big business and growing bigger by the year. i say having a controller with a firmware that can communicate with carpc will let me look at a datastream very similar to the way i would with my expensive snap on solus ultra on an oem vehicle.

                    And idk whats up with the wtf OS, I meant absolutely nothing by any of my comments. just that I know the direction I wanna take. and I know this controller is right for what I am trying to accomplish, I just need help to build smaller ckts coming out of the arduino. if you are already savvy with these microcontrollers, than I apologize if I offended you in any way shape or form. and I do appreciate all of your input/help/suggestions.


                    • #11

                      I know these say 75amp but can this really handle supplying power to a 12" radiator fan?


                      • #12
                        Just say you've looked at the PICs and they are unsuitable- then there is no need to question why I recommend it no repeat irrelevant details.

                        It's still simple. MOSFETS. There are plenty around that will do way over 30A.
                        The rest is PWM and hence suject to the number of outputs available.

                        PS - just because I'm using an 08M2 for engine timing, alarms, etc doesn't stop me using an 08M2 to replace 3 NE555 PWMs etc; afterall, its cheaper and smaller.

                        If your fan 75A?
                        Make sure you ionclude a free-wheeling dode if needed (to handle inductive spikes).
                        Last edited by OldSpark; 10-27-2013, 05:18 PM. Reason: PS...


                        • #13
                          The PIC chips that OS is talking about are very powerful and would allow you to have the PIC likely do a bunch of things and then plug into the Arduino allowing the Arduino to spend less processing time dealing with trivial stuff. You could setup an SPI network from your Arduino to a series of PIC or similar chips and have the Arduino control them. Many of the devices we hook to our USB ports have a PIC or similar chip in them to handle the interfacing of the devices to the main computer to simplify the job of the computer. Generally you can use a simpler computer when you are just processing the information fed back to it by the PIC chips and let the PIC chips actually do the work. For instance if you had the PIC chip control a series of transistors to power 3 different fans you could just have the Arduino send a percentage of run to the PIC chip. The PIC chip then would realize than anything under 10% would be off and control the throttle that way. The PIC then can control the speed of the PWM. Chances are that you will find your Arduino will work great when you are doing 1 or two functions but when you start getting into 3 or 4 different functions you may end up starting to see timing issues because you are going to try multitasking with it. Using the PIC chips to do the work and have the Arduino be the controller is a very good idea.

                          If you decide to run something like a Rasberry Pi or similar board as a real time controller you will want to look into the real time operating systems out there. There are real time variations of Linux available. You do not want your computer to time out while you are trying to do something and if you are controlling something such as a PWM circuit you can not depend on the cycle being consistant at high speeds. And at some speeds you may take up a large part of the processor trying to keep the timing correct. Another good reason to use a PIC to do the work and use the Pi to control what the PIC does.

                          I will mention again that as far as I am aware you can Parallel Transistors together to build the power handling. But I would over build it in this case.
                          So if you REALLY need 75 amps and you have 25 amp MOSFET's then get 4 of them so you are not taxing them.

                          As I said, these are used in high end Audio Amplifiers and some are well in excess of 75 AMPS.


                          • #14
                            ok, I like that idea. maybe it's current I am concerned with. I just can't see a a fan motor with 12 guage wire running off it, getting enough juice through those tiny pins on the mosfet. it LOOKS like it's gonna be like trying to power the fan off of 18 guage wire. BUT if I can run them in parallel then I am sure I could stack like 3 or 4 of them and then I am sure they would supply the same current as a 12 guage wire. but if I run them in parallel isn't that gonna multiply the load on the driver by however many I run in parallel?


                            • #15
                              Adding parallel means adding currents.

                              Series means lower voltage and hence lower current for each, and lower overall power. (eg, two identical things in series means 1/2 the total power, 3 is 1/rd the power, etc - and hence maybe burnout for some items.)

                              And if FETs handle 60A or 100A. then they'll handle it, though they may need heatsinking or protection (eg, reverse biased diodes)