ArduinoTemperatuursensor met 3 LEDs

Dit is project waarbij de temperatuur zal worden gemeten. De waarden zullen, voor test, worden weergegeven op de Seriele Monitor en via de LEDs op de Breadbord.

Als de temperatuur rond (...) de gewenste (basis) temperatuur ligt dan zal de groene LED branden. Als het echter 2 graden of meer kouder dan gewenst is, dan zal de gele LED gaan branden. En omgekeerd als het 2 graden of meer warmer dan gewenst is, dan zal de rode LED gaan branden.

Om de temperatuur te meten gebruiken we een Lm35 Temperature Sensor Deze geeft een waarde, die met een eenvoudige berekening omgezet kan worden naar graden Celsius. Zie de componentenlijst voor meer info hierover.



ArduinoBreadboard



ArduinoSketch
/*
  Blink

  www.punthooft.nl
*/

// Constants
const int ledRed = 2;
const int ledGreen = 3;
const int ledYellow = 4;
const int sensor = A0;
const float basicTemp = 21.0;


// Setup function runs once when powerup the board and on reset 
void setup() {

  Serial.begin(9600);

  for(int pinNumber = 2; pinNumber < 5; pinNumber++) {
    pinMode(pinNumber,OUTPUT);

    digitalWrite(pinNumber,HIGH);
    delay(100);
    digitalWrite(pinNumber,LOW);
  }
}


// The loop function runs over and over again forever
void loop() {

  for(int pinNumber = 2; pinNumber < 5; pinNumber++) {
    digitalWrite(pinNumber,LOW);
  }

  int sensorValue = analogRead(sensor);
  Serial.print("Sensorvalue: ");
  Serial.print(sensorValue);
  Serial.print(" | ");

  float voltage = (sensorValue / 1024.0) * 5.0;
  Serial.print("Volt: ");
  Serial.print(voltage);
  Serial.print(" | ");

  float temp = voltage * 100;
  Serial.print("Degrees Celsius: ");
  Serial.println(temp);

  if (temp < basicTemp-2) {
    digitalWrite(ledYellow,HIGH);
    delay(1000);
  }
  else if ((temp >= basicTemp-2) && (temp < basicTemp+2)) {
    digitalWrite(ledGreen,HIGH);
    delay(1000);
  }
  else if (temp >= basicTemp+2) {
    digitalWrite(ledRed,HIGH);
    delay(1000);
  }
}


ArduinoOpmerkingen

Bij de constanten definieren we naast de constanten voor de LEDs ook een const voor de Sensor. Deze zit aangesloten op A0.

De gebruikte weerstanden zijn 220 Ohm

We definieren de basis temperatuur. Omdat we nauwkeurig willen werken gebruiken we waarden achter de komma. Hiervoor moeten we geen int (geheel getal) maar een float (decimaal getal) gebruiken.

In de setup open we een de seriele monitor op 9600 baud. Hierna kunnen we teksten en waarden hierheen schrijven met het Serial.print commando.

In de setup staat ook een for loop. Deze loop staat los van de grote loop erin. Deze for loop gebruikt een variabele pinNumber, welke telt van 2 tot 5 (niet tot en met!) en voor ieder van deze waarden het stuk tussen de accolades zal uitvoeren. In de loop zal de pinMode worden gezet voor de waarde van pinNumber. De eerste keer is dat 2. De tweede keer is dat 3, etc. Hierna zal de LED met nummer pinNumber even kort worden aangezet. Deze for loop in de setup laat alle LEDs even kort branden, zodat we kunnen zien dat deze juist zijn aangesloten en tevens dat de sketch aan het starten is.




Lees Verder in deze categorie

Copyright 2018 www.punthooft.nl

We do not collect cookies for advertisement. Your data is never send to third parties.