Wat is het doel van Arduino Projects Book Project 03: "Love-O-Meter".  
Bepaalde LED's gaan aan of uit afhankelijk van de temperatuur (temperatuursensor).

Doel

:

Op gang komen met de Arduino 

 

 

 

Het doel achter dit project is dus: bouw met behulp van 5 LED's een indicator die de temperatuur van je lichaam weer geeft. Hoe meer LED's er gaan branden, hoe hoger je lichaamstemperatuur (hoe meer je verliefd bent). Heb je niet genoeg LED's of weerstanden... in principe kan het ook met een kleiner aantal.

Hoe programmeer je dit?

Maak eerst gehakt van het project. Dat wil zeggen: hak het project in kleine mootjes en voeg het uiteindelijk samen tot één geheel.


Stap 1: laat één LED branden m.b.v. je Arduino

Zoek op google een stukje programma waarmee je een LED op je Arduino kunt laten branden. Google “Arduino Control LED”. Neem bijvoorbeeld: https://create.arduino.cc/projecthub/rowan07/make-a-simple-led-circuit-ce8308

Copy/paste de code in je Arduino programma:

int led = 13; // the pin the LED is connected to

void setup() {

  pinMode(led, OUTPUT); // Declare the LED as an output

}

void loop () {

  digitalWrite(led, HIGH); // Turn the LED on

}

 

Oops, ik kreeg een error:

exit status 1
expected ';' before '}' token

Vandaar dat de ; hierboven in het rood is weergegeven... die zat niet in de code die ik van het internet had geplukt.

Met deze code kun je een LED laten branden, maar dat staat nog los van de temperatuur.

 

Stap 2: meet de temperatuur m.b.v. een temperatuursensor

De te gebruiken temperatuursenor is een TMP36.

 

//TMP36 Pin Variables
int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to

//the resolution is 10 mV / degree centigrade with a
//500 mV offset to allow for negative temperatures

/*
* setup() - this function runs once when you turn your Arduino on
* We initialize the serial connection with the computer
*/
void setup()
{
   Serial.begin(9600); //Start the serial connection with the computer
                                  //to view the result open the serial monitor
}

void loop()                 // run over and over again
{
                                 //getting the voltage reading from the temperature sensor
   int reading = analogRead(sensorPin);

                                // converting that reading to voltage, for 3.3v arduino use 3.3
   float voltage = reading * 5.0;
   voltage /= 1024.0;

   // print out the voltage
   Serial.print(voltage); Serial.print(" volts"); Serial.print(" --- ");

   // now print out the temperature
   float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV    offset
   //to degrees ((voltage - 500mV) times 100)
   Serial.print(temperatureC); Serial.println(" degrees C");

   // now convert to Fahrenheit
   // float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0; omdat ik hier in Nederland
   //  Serial.print(temperatureF); Serial.println(" degrees F"); geen Fahrenheit nodig heb, heb ik deze tekst met // verborgen

   delay(1000); //waiting a second
}

Commando's als "Serial.print" maken dat er iets valt uit te lezen via de "serial Monitor". Kijk daar maar eens. Daar vind je de uitgangsspanning van de TMP36 en de temperatuur in Celsius.

Bij mij, bij kamertemperatuur, lees ik een waarde van 51oC. Daar klopt natuurlijk niks van. Maar dat boeit me nu niet. De sensor werkt!!! Want zodra ik de sensor aanraak, gaat de temperatuur in de "serial monitor" omhoog.

 

Stap 3: laat één LED branden m.b.v. een temperatuursensor

Ik wil dat LED 1 gaat branden als de temperatuur tenminste 50oC is. Hiervoor heb ik een IF-statement nodig. Google "Arduino IF".

Syntax
if (condition) {
//statement(s)
}

Bijvoorbeeld: if (x > 50) digitalWrite(LEDpin, HIGH);

x is dan de temperatuur, maar je mag ook een andere letter hiervoor gebruiken. LEDpin is een mogelijke naam voor de uitgang van je Arduino die je gaat gebruiken om het LED te laten branden. Voeg stap 1 en 2 samen en voeg IF toe. Ik zeg je niet alles voor! Aan het werk! Bedenk zelf hoe je dit werkend kunt krijgen.

 

Stap 4: laat vijf LED's branden m.b.v. een temperatuursensor

Waarbij de vijf (mag ook minder, maar tenminste 2 stuks) LED's allemaal bij verschillende temperaturen aan gaan.

 

Als dit allemaal lukt... GEFELICITEERD!

Je zult zien dat het programma uit het boekje geavanceerder is dan jouw zelf gevonden programma. Het kan zich de moeite lonen om jouw programma te vergelijken met die uit het boekje om te zien wat zij 'slimmer' hebben gedaan.