Arduino temperaturvakt och visuella LED mätare (4 / 4 steg)
Steg 4: Att sätta ihop allt (efterbehandling YAY!)
Så till slut måste vi ladda upp sista skissen. Denna skiss ger spänningen från TMP36 till grader Celsius, skriva ut den till seriell bildskärmen och sedan spara den som en variabel och skicka det till om uttalanden. De kontrollera vilken kategori temperaturen faller i och sedan lyser upp rätt antal lysdioder. Du kan alltid ändra antal grader LED nummer förändring. Koden uppdaterar var 4 sekund. Så här är koden och jag hoppas du gillade detta Instructable!
< p > int temperaturePin = 0; < br > int temp = A0;
int blue1 = 2;
int green1 = 3;
int green2 = 4;
int green3 = 5;
int green4 = 6;
int green5 = 7.
int green6 = 8;
int green7 = 9;
int green8 = 10;
int red1 = 11;
int red2 = 12; < /p >< p > void setup()
{
Serial.BEGIN(9600);
pinMode (blue1, produktionen);
pinMode (green1, produktionen);
pinMode (green2, produktionen);
pinMode (green3, produktionen);
pinMode (green4, produktionen);
pinMode (green5, produktionen);
pinMode (green6, produktionen);
pinMode (green7, produktionen);
pinMode (green8, produktionen);
pinMode (red1, produktionen);
pinMode (red2, produktionen);
}
void loop() / / kör om och om igen
{
flyta temperatur = getVoltage(temperaturePin); att få spänningen från temperaturgivare
temperatur = (temperatur -.5) * 100; konvertering från 10 mv per grad wit 500 mV offset
grader ((volatge - 500mV) gånger 100)
Serial.println(temperature); skriva ut resultatet
Delay(1000); < /p >< p > om (temperatur > = 3.00){digitalWrite(blue1,HIGH);}
om (temperatur > = 6.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);}
om (temperatur > = 8.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);}
om (temperatur > = 10.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);}
om (temperatur > = 13.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);digitalWrite(green4,HIGH);}
om (temperatur > = 15.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);digitalWrite(green4,HIGH);digitalWrite(green5,HIGH);}
om (temperatur > = 20.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);digitalWrite(green4,HIGH);digitalWrite(green5,HIGH);digitalWrite(green6,HIGH);}
if(temperature>=23.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);digitalWrite(green4,HIGH);digitalWrite(green5,HIGH);digitalWrite(green6,HIGH);digitalWrite(green7,HIGH);}
if(temperature>=25.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);digitalWrite(green4,HIGH);digitalWrite(green5,HIGH);digitalWrite(green6,HIGH);digitalWrite(green7,HIGH);digitalWrite(green8,HIGH);}
if(temperature>=30.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);digitalWrite(green4,HIGH);digitalWrite(green5,HIGH);digitalWrite(green6,HIGH);digitalWrite(green7,HIGH);digitalWrite(green8,HIGH);digitalWrite(red1,HIGH);}
if(temperature>=35.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);digitalWrite(green4,HIGH);digitalWrite(green5,HIGH);digitalWrite(green6,HIGH);digitalWrite(green7,HIGH);digitalWrite(green8,HIGH);digitalWrite(red1,HIGH);digitalWrite(red2,HIGH);}
Delay(4000);
digitalWrite(blue1,LOW);
digitalWrite(green1,LOW);
digitalWrite(green2,LOW);
digitalWrite(green3,LOW);
digitalWrite(green4,LOW);
digitalWrite(green5,LOW);
digitalWrite(green6,LOW);
digitalWrite(green7,LOW);
digitalWrite(green8,LOW);
digitalWrite(red1,LOW);
digitalWrite(red2,LOW); < /p >< p >} < /p >< p >
flyta getVoltage(int pin) {
Return (analogRead(pin) *. 004882814); konvertering från ett 0 till 1023 digitala utbud
0 till 5 volt (varje 1 läser lika med ~ 5 millivolt
} < /p >