Stap 4: Zet het allemaal samen (afwerking YAY!)
We moeten dus uiteindelijk uploaden van de laatste schets. Deze schets zal verlenen de spanning van de TMP36 naar graden Celsius, het afdrukken naar de seriële Monitor en vervolgens opslaan als een variabele en stuur het naar de if verklaringen. Zij controleren welke categorie de temperatuur valt in en vervolgens licht van het juiste aantal LEDs. U kunt altijd het aantal graden van de LED-nummer wijzigt. De code wordt elke 4 seconden vernieuwd. Dus hier is de code en ik hoop dat je genoten hebt van dit 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, OUTPUT); pinMode(green1, OUTPUT); pinMode(green2, OUTPUT); pinMode(green3, OUTPUT); pinMode(green4, OUTPUT); pinMode(green5, OUTPUT); pinMode(green6, OUTPUT); pinMode(green7, OUTPUT); pinMode(green8, OUTPUT); pinMode(red1, OUTPUT); pinMode(red2, OUTPUT); } void loop() // run over and over again { float temperature = getVoltage(temperaturePin); //getting the voltage reading from the temperature sensor temperature = (temperature - .5) * 100; //converting from 10 mv per degree wit 500 mV offset //to degrees ((volatge - 500mV) times 100) Serial.println(temperature); //printing the result delay(1000);</p><p> if(temperature>=3.00){digitalWrite(blue1,HIGH);} if(temperature>=6.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);} if(temperature>=8.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);} if(temperature>=10.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);} if(temperature>=13.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);digitalWrite(green4,HIGH);} if(temperature>=15.00){digitalWrite(blue1,HIGH);digitalWrite(green1,HIGH);digitalWrite(green2,HIGH);digitalWrite(green3,HIGH);digitalWrite(green4,HIGH);digitalWrite(green5,HIGH);} if(temperature>=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> float getVoltage(int pin){ return (analogRead(pin) * .004882814); //converting from a 0 to 1023 digital range // to 0 to 5 volts (each 1 reading equals ~ 5 millivolts }</p>