Combineren van LCD met Sensor


Het koppelen van de temperatuur sensor aan een Arduino met een LCD scherm, waarbij de temperatuur wordt weergegeven in graden Fahrenheit.
 
 

Deze les laat op een interessante manier zien hoe je met de Arduino de temperatuur van de omgeving kunt meten en zichtbaar kunt maken op een LCD 16X2 scherm in graden Fahrenheit door gebruik te maken van delen van de programmatuur en de LM35DZ temperatuursensor. 

 

Hiervoor zijn de volgende componenten nodig:

- 1 Arduino board

- 1 LCD 16x2 scherm

- 1 10K potentiometer

- 1 Temperature LM35 sensor

- Jumpers 

Deze sensor meet de externe temperatuur en converteert deze in een bijbehoorende spannings waarde.  In deze schakeling koppelen we de output Vvan de sensor aan de Arduino pin A0, die verandert het in de floatwaarde van de temperatuur, daarna, laten we het zien op het LCD scherm.  De 10K potentiometer kan het contrast van het scherm aanpassen.

 

Maak de onderstaande schakeling met de Arduino en de benodigde componenten:

 

 

Open de Arduino's IDE en voeg de volgende code toe:

 

#include  <LiquidCrystal.h>         // Include the library to use a LCD display

#define          sensor           0        // Define the A0 pin as “sensor”

 

int  Vin;           //  Variable to read the value from the Arduino’s pin

float  Temperature; //  Variable that receives the converted voltage value to temperature

float     TF; // Variable to receive the converted value from  ºC to ºF

 

LiquidCrystal  lcd    (12, 11, 5, 4, 3, 2); 

/* The function above declares which Arduino’s pins will be used for controlling the LCD */

void  setup()

{

  lcd.begin(16, 2);                            //  It tells the Arduino that the display is a 16x2 type

  lcd.print("Temperature: ");           //  Send the text to the screen of the display.

}

void  loop()

{

  Vin = analogRead (sensor);  /*   Tells the Arduino to read the pin and stores the value in “Vin” */

  Temperature=(500*Vin)/1023;  /* Converts the voltage value into temperature and stores it into the “Temperature”  variable  (in  ºC)*/

TF = ((9*Temperature)/5)+32; // Converts  ºC to ºF

  lcd.setCursor(0, 1);           // Moves  the cursor of the display to the next line

  lcd.print(TF);    // Exhibits the value of the temperature on the display

  lcd.print(" F");         // Writes “F” to indicate that it is in Fahrenheit scale.

 

  delay(1000);  //  Waits for a second to read the pin again

}

 

Als laatste stap laad je de code naar je Arduino.

 

 

Je project om de temperatuur te laten zien is bijna klaar. De temperatuur wordt op het scherm getoond in graden Farenheit. Kijk in je code om dit te veranderen naar graden Celcius.

 

Note: de LM35DZ sensor heeft een temperatuur range van waarde van tussen -55ºC to 150ºC.

Als je geineresseerd bent in de uitleg hoe de programmatuur dit om rekent van spanning naar temperatuur lees dan het volgende door:

In deze sensor, voor elke 1 graden Celcius ontvangen, de V0 output is verhoogt met 10mV, in de range van 0 tot 5V, met 10 bits resolutie voor Analoog/Digitaal conversie (1024 verschillende waardes om de temperatuur te presenteren).

 

Dus de maximum waarde (1023, omdat het is van 0 tot 1023) is dan 5V.  De helft komt dan overeen met 511 of 2,5V en zo voort.

Voor de berekening, is het 5V output van de sensor overeenkomen met 5000C (Wat verschillend is van de realiteit).

Alhoewel, dit voorbeeld geeft het ons de volgende generieke relatie:

 

Temperatuur  ----- Vin

         500ºC  ----- 1023              (maximale waarde)

 

Dit geeft ons:

Temperatuur = (500*Vin)/1023, maar omdat het in ºC is en we het in ºF willen, zullen we het converteren:

TF = ((9*Temperatuur)/5)+32, en dit is de waarde die getoond wordt op het LCD scherm.

 

Met deze uitleg zou je ook in staat moeten zijn om de temperatuur in Kelvin op het scherm te laten komen.

Tenslotte: maak de oefening af zodanig dat de temperatuur in Kelvin op het scherm komt te staan.

 

Je kunt ook nog de volgende video bekijken: