I'm currently a novice with Arduino, and have little programming experience, and need some help with efficiency, and where to go from here.
Currently, I've got it to log temperature from a 100k Thermistor, and if the temperature is at or above 38 degrees Fahrenheit it turns on a Solid State Relay controlling a peltier unit inside a small insulated box, and once it is at or below 36 degrees Fahrenheit, it turns the peltier unit back off.
However, I tried to make it flash a warning led of red letting me know that the temperature is above 40 degrees Fahrenheit, and the peltier unit didn't activate.
As this is my first code, I figured I'd have some problems.
here's my code, any help with efficiency, ect. would be greatly appreciated.
#include <math.h>
int pinOut = 10;
double Thermistor(int RawADC) {
double Temp;
Temp = log(10000.0 * ((1024.0 / RawADC - 1)));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) * Temp );
Temp = Temp - 273.15;
Temp = (Temp * 9.0) / 5.0 + 32.0;
return Temp;
}
void setup() {
Serial.begin(9600);
pinMode(10, OUTPUT);
pinMode(7, OUTPUT); //Green Led = On
pinMode(8, OUTPUT); //Red Led = Error
pinMode(2, OUTPUT); //Blue Led = Standby
//pinMode(4, OUTPUT); //Buzzer (Unused pin)
}
void loop() {
int val;
double temp;
val = analogRead(0);
temp = Thermistor(val);
Serial.print("Temperature = ");
Serial.print(temp);
Serial.println(" F");
if (temp >= 38) {
digitalWrite(pinOut, HIGH);
delay(1000);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
}
else {
if (temp <= 36) {
digitalWrite(pinOut, LOW);
digitalWrite(2, HIGH);
}
else {
if (temp >= 40) {
delay(1000);
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, HIGH);
}
}
}
delay(500);
}