This is my code for the arduino.
It seams to be running fine... Sometimes you miss the button press because of the delay. The capacitor will allow me to take the delay out and only have one press per press?? And what kind of capacitor?
I have no idea what the middle part (uncommitted part) is doing?? i took the code from somewhere and changed it alot to clean it, and tried to get the middle part into void loop but i had no success with it.
//THIS PROGRAM IS USED TO MONITOR THE TEMPATURE OF A THERMISTOR TAPED TO A HEAT PAD FOR A SNAKE RACK
//THE THERMISTOR IS A 50K THERMISTOR
// DIAGRAM
// GROUND-----------10K RESISTOR-----------INPUT A0-----------50K THERMISTOR-----------5V
const int ledPin = 13; //PIN FOR THE SSR(SOLID STATE RELAY)
double fTemp; //VARIABLE TO STORE DEGS IN FAHRENHEIT
double Lower = 82; //LOWER LIMIT FOR TEMP RANGE IN FAHRENHEIT
double Upper = 86; //UPPER LIMIT FOR TEMP RANGE IN FAHRENHEIT
const int ContUp = 6; //BUTTON TO RAISE TEMP RANGE UP ON PIN 6
const int ContDw = 5; //BUTTON TO LOWER TEMP RANGE DOWN ON PIN 5
int ReadUp; //READ VALUE OF THE TEMP UP BUTTON
int ReadDw; //READ VALUE OF THE TEMP DOWN BUTTON
void setup(void) {
Serial.begin(9200); //TAKE THIS OUT WHEN PUT ON CHIP
pinMode(ledPin, OUTPUT) //PIN FOR THE SSR SET TO OUTPUT
pinMode(ContUp, INPUT); //PIN FOR THE TEMP UP BUTTON INPUT
pinMode(ContDw, INPUT); //PIN FOR THE TEMP DOWN BUTTON INPUT
}
double Thermister(int RawADC) {
double Temp;
Temp = log(((10240000/RawADC) - 50000));
Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
Temp = Temp - 272.15; // Convert Kelvin to Celcius
return Temp;
}
void loop(void) {
double temp = Thermister(analogRead(0)); // READ THERMISTOR
Serial.print("Temperature is:"); //TAKE OUT
Serial.print(temp); //TAKE OUT
Serial.println(" C / "); //TAKE OUT
fTemp = (temp * 1.8) + 32.0; // Convert to USA
Serial.print(fTemp); //TAKE OUT
Serial.println(" F"); //TAKE OUT
Serial.println(); //TAKE OUT
delay(100); //SLOW DOWN THE CODE
Serial.println(digitalRead(ContUp)); //TAKE OUT MONITOR WHEN TEMP UP BUTTON PRESSED
Serial.println(digitalRead(ContDw)); //TAKE OUT MONITOR WHEN TEMP DOWN BUTTON PRESSED
Serial.println(Upper); //TAKE OUT DISPLAY UPPER TEMPERATURE VALUE
Serial.println(Lower); //TAKE OUT DISPLAY LOWER TEMPERATURE VALUE
ReadUp = digitalRead(ContUp); //STORING THE DIGITAL BUTTON INPUT
ReadDw = digitalRead(ContDw); //STORING THE DIGITAL BUTTON INPUT
if(ReadUp == HIGH){ //INCREMENT THE RANGE UP BY ONE WITH BUTTON PRESS
Lower = Lower + 1;
Upper = Upper + 1;
}
if(ReadDw == HIGH){ //INCREMENT THE RANGE DOWN BY ONE WITH BUTTON PRESS
Lower = Lower - 1;
Upper = Upper - 1;
}
if(fTemp > Lower && fTemp < Upper){ //TURN HEAT TAPE RELAY ON IF TEMPERATURE IS IN RANGE
digitalWrite(ledPin, HIGH);
}
if(fTemp < Lower){ //TURN HEAT TAPE ON WHEN BELLOW THE RANGE
digitalWrite(ledPin, HIGH);
}
if(fTemp > Upper){ //TURN HEAT TAPE OFF WHEN ABOVE THE RANGE
digitalWrite(ledPin, LOW);
}
}