Temperature controlled USB fan with Arduino!
Things you will need
- Arduino
- Relay Module
- USB desk fan
- Thermistor
- Resistor 220Ω
Fairly simple concept here, we set the Arduino to kick the fan on if temps exceed 73 degrees Fahrenheit and stay off otherwise. By opening the serial monitor on baud 115200 you can view the current temperature in real time. You can also modify the values in the code to change when the fan kicks on if you like it warmer xP. Here is my layout i created with Fritzing and the code below.
Have fun!
#include <math.h> //loads the more advanced math functions
#define RELAY1 6
void setup() { //This function gets called when the Arduino starts
Serial.begin(115200); //This code sets up the Serial port at 115200 baud rate
pinMode(RELAY1, OUTPUT);
}
double Thermister(int RawADC) { //Function to perform the fancy math of the Steinhart-Hart equation
double Temp;
Temp = log(((10240000/RawADC) - 10000));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
Temp = Temp - 273.15; // Convert Kelvin to Celsius
Temp = (Temp * 9.0)/ 5.0 + 32.0; // Celsius to Fahrenheit - comment out this line if you need Celsius
if (Temp <= 70){
digitalWrite(RELAY1,HIGH); //low temp code here
}
else if (Temp >= 73) {
digitalWrite(RELAY1,LOW); //high temp beep code here fan on if over 73
}
return Temp;
}
void loop() { //This function loops while the arduino is powered
int val; //Create an integer variable
double temp; //Variable to hold a temperature value
val=analogRead(0); //Read the analog port 0 and store the value in val
temp=Thermister(val); //Runs the fancy math on the raw analog value
Serial.println(temp); //Print the value to the serial port
delay(1000); //Wait one second before we do it again
digitalWrite(RELAY1,LOW);
digitalWrite(RELAY1,HIGH);
}
No comments:
Post a Comment