Arduino Uno Fan Control

16,763

101

15

About: I graduated from Washington State University with a degree in Bioengineering.

This project allows users to control two different fans and a servo. The fans will automatically turn on if a certain temperature is reached and the servo will turn 90 degrees. A push button also allows for manual control of the fans. Once the button is pushed, the fans will turn on one at a time each time you knock,(recorded by a piezometer) once you knock three times the fans will turn back off.

This project is meant to be used to regulate the heat of electronics in an entertainment center. The servo can be placed in a way that it opens a door to allow extra airflow when temperatures are high.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Materials

1) Temperature sensor [TMP36] (250 mV output at 25°C)

2) Piezo capsule [PKM17EPP-4001-B0]

3) Resistors (one 10KΩ resistor, three 220Ω resistors, and one 1MΩ)

4) Small servo motor

5) Two standard computer fans

6) Breadboard

7) Three LED's (one red, one green, one yellow)

8) Tactile switch

9) 100 uF electrolytic capacitor

10) Arduino / Genuino Uno

Step 2: Setup

Connect power and ground to both sides of the breadboard. Place the pushbutton on the breadboard and connect one end to the 5V. On the other side of the switch, connect to ground through a 10-kilohm resistor. Connect this junction to digital pin 7 on the Arduino.

Next step is to attach your piezo, first attach the wires from the piezo to the breadboard. Attach one wire to power and wire the other end of the piezo to Analog pin 0(A0). Place a 1-megaohm resistor between the ground and the other wire. Lower resistor values will make the piezo less sensitive to vibrations.

Wire up the LEDs, connecting the cathodes (short leg) to ground and placing a 220-ohm resistor in series with the anodes. Through their respective resistors, connect the red LED to Arduino digital pin 2, the yellow LED to digital pin 3, and the green pin to digital pin 4.

Insert the male headers into the 3 or 4 female sockets on the servo motor and the fans(see figure above for fan pin instructions). For the servo connect the red wire to power, and the black wire to ground. Place a 100uF electrolytic capacitor across power and ground to smooth out any irregularities in voltage. Connect the servo's data wire to pin 9 on your Arduino. Repeat this procedure for each of the 2 fans connecting the data wire of one to pin 10 and the other to pin 11.

Place the TMP26 on the breadboard with the rounded part facing away from the Arduino(the order of the pins is important!). Connect the left pin of the flat facing side to power, and the right pin to ground. Connect the center pin to Analog pin 1(A1).

Step 3: Arduino Code

From the temperature sensors datasheet, I found that every 10 millivolts of change from the sensor are equivalent to 1 degree Celsius. If you take the voltage, subtract 0.5, and multiply it by 100, you get the accurate temperature in degrees Celsius.

You can download the code by clicking on the "fan_control" file below. Once downloaded you will be able to change the temperature at which the fans are activated by changing the "baselineTemp" constant. You can also change what sort of knocking intensity that triggers your function by adjusting the "quietKnock" and "loudKnock" constants. Be careful though because if your "quietKnock" value is too low, your fans might trigger your function.

Once you have changed the code to your preference, press the upload button, and you're done! Let me know if you have any questions or if you have changes you would like to make.

Raspberry Pi Contest 2016

Participated in the
Raspberry Pi Contest 2016

Be the First to Share

    Recommendations

    • Instrument Contest

      Instrument Contest
    • Make it Glow Contest

      Make it Glow Contest
    • STEM Contest

      STEM Contest

    15 Discussions

    0
    None
    NikoH11

    3 years ago

    I wanna start this Projekt this weekend, but i have a question first.
    It seams to me that you use a voltage between 0V and 5V to control the fans, or are you using PWM?

    1 reply
    0
    None
    Austin StantonNikoH11

    Reply 3 years ago

    Sorry for the late reply, I am using voltage between 0V and 5V

    0
    None
    NikoH11

    3 years ago

    I wanna start this Projekt this weekend, but i have a question first.
    It seams to me that you use a voltage between 0V and 5V to control the fans, or are you using PWM?

    0
    None
    Ddgerdog1

    3 years ago

    Neat interactivity but how is this useful vs just having a fan run?

    2 replies
    0
    None
    Austin StantonDdgerdog1

    Reply 3 years ago

    This set up would work best if you had an enclosed entertainment center that might where increased air flow might be needed to prevent it from overheating. You can also set it up so the servo will open up a door in the entertainment center if the temperature rises too high. This would help regulate the temperature of any device you had in the entertainment center without always running your fans which would reduce the life of your fans and waste electricity. If you set the sensitivity of the piezo correctly, you would also be able to walk up and knock on the entertainment center door to manually activate your fans if you knew you were about to generate a lot of heat.

    0
    None
    Twooly91

    3 years ago

    Nice job, this is really helpful.

    0
    None
    TaylorS42

    3 years ago

    I might have to go buy one of these someday soon and try this out! Great work!

    0
    None
    MichaelL279

    3 years ago

    You're really smart! Well done done my friend

    0
    None
    Devon21

    3 years ago

    Wow!!

    0
    None
    Cacchiotti7

    3 years ago

    Really interesting! Good work!