[2]:
//My Global Variables
const int ThermPin = A0;
const int LDRPin = A1;
const int PotentPin = A2;
const int SpeakerPin = 11;
const int ButtonPin = 6;
const int ButtonPin1 = 7;
int ButtonState = 0;
int ButtonState1 = 0;
const int FanPin = 5;
const int LEDPin1 = 2;
const int LEDPin2 = 3;
const int LEDPin3 = 4;
const int rows = 10;
const int cols = 2;
int Table[rows][cols] ={ //col 0||col 1
{ 25, 4470 }, //row 0
{ 26, 4250 }, //row 1
{ 27, 4030 }, //row 2
{ 28, 3800 }, //row 3
{ 29, 3530 }, //row 4
{ 30, 3270 }, //row 5
{ 31, 3200 }, //row 6
{ 32, 3170 }, //row 7
{ 33, 3100 }, //row 8
{ 34, 3070 } //row 9
};
void setup(){
Serial.begin(9600);
pinMode(LDRPin, INPUT);
pinMode(ButtonPin, INPUT);
pinMode(ButtonPin1, INPUT);
pinMode(LEDPin1, OUTPUT);
pinMode(LEDPin2, OUTPUT);
pinMode(LEDPin3, OUTPUT);
pinMode(SpeakerPin, OUTPUT);
pinMode(FanPin, OUTPUT);
}
int getTempLookUp(int ThermPin)
{
float Vin = 5.0;
float ThermResist = 0.0;
float R2 = 10000.0;
float SensorValue = 0.0;
float Vout = 0.0;
SensorValue = analogRead(ThermPin);
Serial.println();
Serial.print("LookupValue = ");
Serial.print(SensorValue);
Vout = (((SensorValue+1)*Vin)/1024.0);
Serial.print("\t");
Serial.print("\t Voltage = ");
Serial.print(Vout);
Serial.print(" V");
ThermResist =((R2*Vin)/Vout)-R2;
Serial.print("\t");
Serial.print("\t Resistance = ");
Serial.print(ThermResist);
Serial.print(" Ohm");
}
int getTempCelc(int ThermPin)
{
float Vin = 5.0;
float ThermResist = 0.0;
float R2 = 10000.0;
float SensorValue = 0.0;
float Vout = 0.0;
SensorValue = analogRead(ThermPin);
Vout = (((SensorValue+1)*Vin)/1024.0);
ThermResist =((R2*Vin)/Vout)-R2;
for(int i; i<rows; i++){
if(ThermResist >= Table[i+1][1] && ThermResist <= Table[i][1] ){
Serial.println();
Serial.print("Array_Celcius = ");
Serial.print(Table[i][0]);
Serial.print(" C");
Serial.print("\t");}}
}
int getTempKelv(int ThermPin)
{
float Vin = 5.0;
float ThermResist = 0.0;
float R2 = 10000.0;
float SensorValue = 0.0;
float Vout = 0.0;
SensorValue = analogRead(ThermPin);
Vout = (((SensorValue+1)*Vin)/1024.0);
ThermResist =((R2*Vin)/Vout)-R2;
for(int i; i<rows; i++){
if(ThermResist >= Table[i+1][1] && ThermResist <= Table[i][1] ){
Serial.print("\t Array_Kelvins = ");
Serial.print(Table[i][0] + 273.15);
Serial.print(" K");
Serial.print("\t");}}
}
int getTempFare(int ThermPin)
{
float Vin = 5.0;
float ThermResist = 0.0;
float R2 = 10000.0;
float SensorValue = 0.0;
float Vout = 0.0;
SensorValue = analogRead(ThermPin);
Vout = (((SensorValue+1)*Vin)/1024.0);
ThermResist =((R2*Vin)/Vout)-R2;
for(int i; i<rows; i++){
if(ThermResist >= Table[i+1][1] && ThermResist <= Table[i][1] ){
Serial.print(" Array_Farenheit = ");
Serial.print( (Table[i][0] *9.0)/ 5.0 +32.0);
Serial.print(" F");
Serial.println();}}
}
//---------------------------------------------------------------------
//SteinHart's Style!
int SteinHart_Kelvs(int ThermPin){
int SensorValue = analogRead(ThermPin);
float C1 = 1.346e-03;
float C2 = 2.309e-04;
float C3 = 9.815e-08;
float Rt = 10000.0;
float logRt = log(((10240000/SensorValue) - Rt));
float Temp = (1.0/(C1 + C2*logRt + C3*logRt*logRt*logRt));
Serial.print("SH_Kelvin = ");
Serial.print(Temp);
Serial.print(" K");}
int SteinHart_Celcs_1(int ThermPin){
int SensorValue = analogRead(ThermPin);
float C1 = 1.346e-03;
float C2 = 2.309e-04;
float C3 = 9.815e-08;
float Rt = 10000.0;
float logRt = log(((10240000/SensorValue) - Rt));
float Temp = (1.0/(C1 + C2*logRt + C3*logRt*logRt*logRt));
float Celcius = Temp - 273.15;
Serial.print("\t");
Serial.print("\t SH_Celcius = ");
Serial.print(Celcius);
Serial.print(" C");}
int SteinHart_Faren(int ThermPin){
int SensorValue = analogRead(ThermPin);
float C1 = 1.346e-03;
float C2 = 2.309e-04;
float C3 = 9.815e-08;
float Rt = 10000.0;
float logRt = log(((10240000/SensorValue) - Rt));
float Temp = (1.0/(C1 + C2*logRt + C3*logRt*logRt*logRt));
float Celcius = Temp - 273.15;
float Farenheit = ((Celcius *9.0) /5.0 +32.0);
Serial.print("\t");
Serial.print("\t SH_Farenheit = ");
Serial.print(Farenheit);
Serial.println(" F");}
//---------------------------------------------------------------------
//The Rest of My Work...
int SteinHart_Celcs(int ThermPin){
ButtonState = digitalRead(ButtonPin);
int SensorValue = analogRead(ThermPin);
int LDRSensVal = analogRead(LDRPin);
int PotentSensVal = analogRead(PotentPin);
float C1 = 1.346e-03;
float C2 = 2.309e-04;
float C3 = 9.815e-08;
float Rt = 10000.0;
float logRt = log(((10240000/SensorValue) - Rt));
float Temp = (1.0/(C1 + C2*logRt + C3*logRt*logRt*logRt));
float Celcius = Temp - 273.15;
if(Celcius >= 10 && Celcius <= 23){
digitalWrite(LEDPin1, HIGH);
digitalWrite(LEDPin2, LOW);
digitalWrite(LEDPin3, LOW);
digitalWrite(SpeakerPin, LOW);
digitalWrite(FanPin, LOW);
Serial.println("Status: Its COOOLD..D..D ");}
if(Celcius >= 24 && Celcius <= 29){
digitalWrite(LEDPin2, HIGH);
digitalWrite(LEDPin1, LOW);
digitalWrite(LEDPin3, LOW);
digitalWrite(SpeakerPin, LOW);
digitalWrite(FanPin, LOW);
Serial.print("Status: Its WARM..OK ");}
if(Celcius >= 30 && Celcius <= 40){
digitalWrite(LEDPin3, HIGH);
digitalWrite(LEDPin1, LOW);
digitalWrite(LEDPin2, LOW);
digitalWrite(SpeakerPin, HIGH);
Serial.print("Status: ITs HOT..SHUT THE SYSTEM DOWN...ASAP! " );}
//if statement specifically made for the fan.
if(Celcius >= 27 && Celcius <= 40){
digitalWrite(FanPin, HIGH);}
//if statemewnt specifically made for the button reset sequence.
if(ButtonState == HIGH){
digitalWrite(SpeakerPin, LOW);}
else{
ButtonState = LOW;}
//if statement made for the LDR.
if(LDRSensVal <= 200 && LDRSensVal >= 0){
digitalWrite(LEDPin1, HIGH);
digitalWrite(LEDPin2, HIGH);
digitalWrite(LEDPin3, HIGH);}
if(LDRSensVal <= 300 && LDRSensVal >= 220){
digitalWrite(LEDPin1, LOW);
digitalWrite(LEDPin2, LOW);
digitalWrite(LEDPin3, HIGH);}
if(LDRSensVal <= 400 && LDRSensVal >= 320){
digitalWrite(LEDPin1, LOW);
digitalWrite(LEDPin2, HIGH);
digitalWrite(LEDPin3, LOW);}
if(LDRSensVal <= 500 && LDRSensVal >= 420){
digitalWrite(LEDPin1, HIGH);
digitalWrite(LEDPin2, LOW);
digitalWrite(LEDPin3, LOW);}
if(LDRSensVal <= 600 && LDRSensVal >= 520){
digitalWrite(LEDPin1, LOW);
digitalWrite(LEDPin2, LOW);
digitalWrite(LEDPin3, LOW);}
Serial.print("LDRSensVal = ");
Serial.print(LDRSensVal);
//if statements made for the Potentiometer
if (PotentSensVal <= 320 && PotentSensVal >= 11){
digitalWrite(FanPin, LOW);}
if (PotentSensVal <= 620 && PotentSensVal >= 321){
digitalWrite(FanPin, HIGH);
delay(1500);
digitalWrite(FanPin, LOW);
delay(1500);}
if (PotentSensVal <= 820 && PotentSensVal >= 621){
digitalWrite(FanPin, HIGH);
delay(600);
digitalWrite(FanPin, LOW);
delay(600);}
if (PotentSensVal <= 920 && PotentSensVal >= 821){
digitalWrite(FanPin, HIGH);
delay(400);
digitalWrite(FanPin, LOW);
delay(400);}
if (PotentSensVal <= 920 && PotentSensVal >= 821){
digitalWrite(FanPin, HIGH);
delay(200);
digitalWrite(FanPin, LOW);
delay(200);}
if (PotentSensVal <= 970 && PotentSensVal >= 921){
digitalWrite(FanPin, HIGH);}
Serial.print("\t PotentSensVal = ");
Serial.print(PotentSensVal);
Serial.print("\t Celcius = ");
Serial.print(Celcius);
Serial.println(" C");
}
void loop(){
ButtonState1 = digitalRead(ButtonPin1);
SteinHart_Celcs(ThermPin);
//if Statements for the Array of buttons
if(ButtonState1 == HIGH){
getTempLookUp (ThermPin);
getTempCelc (ThermPin);
getTempKelv (ThermPin);
getTempFare (ThermPin);
SteinHart_Kelvs (ThermPin);
SteinHart_Celcs_1(ThermPin);
SteinHart_Faren (ThermPin);
delay(100);}
else
if(ButtonState1 == LOW){
SteinHart_Celcs(ThermPin);}
delay(100);
}
Would help a bit if you explain to me how the Potentiometer is used as a calibration mechanism.