06: DISPLAY & TEMPERATUUR

imageMet de sensortechnologie van Arduino is het goed mogelijk om zoiets eenvoudigs als de temperatuur te meten.
Dat doe je met een temperatuur gevoelige weerstand. (lees onderaan deze pagina hoe zoiets werkt).
Daarnaast wil je de temperatuur ook ergens kunne uitlezen. Daarvoor gebruiken we een

NODIG

  • Arduino bord
  • Breadboard
  • Display bord
  • 1 weerstand 220 Ω
  • 1 variable weerstand 10kΩ
  • 1 temperatuur weerstand TMP36

SCHEMA

les6_schema_bb les6_schema_schema

FILMPJE

SCHETS

/*
   THEORIE: (omrekenen van analoge waarde naar temperatuur.)
*/
opdracht
#include <LiquidCrystal.h> laad de LCD-library
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); open de library met de nummers van de LCD communicatie PIN’s
hier de nummers 12,11,5,4,3,2
const int sensorPin = A0; definieer de analoge PIN van de sensor
void setup(){  
Serial.begin(9600); we communiceren met een snelheid van 9600 baud met de display
lcd.begin(16,2); definieer het aantal kolommen en rijen van de LCD
lcd.print(“Start_T = “); stuur een eenmalige boodschap naar de LCD
De tekst tussen haakjesmag je aanpassen zoals je wil,maar let op maar 16 tekens lang
delay(100); Wacht 0,1 seconde
}  
void loop(){  
int sensorVal = analogRead(sensorPin); lees de waarde van PIN A0 en sla die op in sensorVal
Het analogRead() commando converteert het input voltage, 0 to 5 volt
naar een digitale waarde tussen 0 and 1023. Dit gebeurt door een
analog-to-digital converter of ADC die op de Arduino zelf zit.
float voltage = (sensorVal/1024.0) * 5.0; converteer de waarde naar voltage
float temperature = (voltage – .5) * 100; converteer het voltage naar temperatuur in graden celsius
  de sensor verandert per graad met 10 mV
  volgens het datasheet is er een 500 mV “offset”=startwaarde
  dus Temperatuur=((voltage – 500mV) x 10)
lcd.print(temperature); print iedere kwart seconde de actuele temperatuur op de LCD
de eerste keer is het op regel 1 de start temperatuur,
daarna op regel twee iedere kwart seconde de actuele temperatuur
lcd.setCursor(0,1);
  lcd.print(“Sensor_T= “);
  delay(250); 
}
verplaats de cursor naar de tweede regel

Volledige sketch (knip en plak in de software)

/*
Les 6:  omrekenen van analoge waarde naar temperatuur

*/

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int sensorPin = A0;

void setup(){
Serial.begin(9600);
lcd.begin(16,2);
lcd.print(“Start_T = “);
delay(100);
}

void loop(){
int sensorVal = analogRead(sensorPin);

float voltage = (sensorVal/1024.0) * 5.0;

float temperature = (voltage – .5) * 100;

lcd.print(temperature);
lcd.setCursor(0,1);
  lcd.print(“Sensor_T= “);
  delay(250); 
}
 
TEMPERATUURWEERSTAND
imageDeze sensoren meten doordat de temperatuur van het materiaal warmer of kouder wordt. Er is dus gene kwik of een andere vloeistof nodig.
Hier gaat het er om dat bij temperatuur stijging de spanning op de weerstand toeneemt. De toegenomen hoeveelheid wordt door de fabrikant van de weerstand bekend gemaakt. Als je meetapparatuur op de analoge uitgang zet is de verandering ins spanning te meten. Met een Arduinobord en de  goede schets is dit te doen. Wij gebruiken weerstandmodel TMP36. Deze meet van -40°C tot 150°C. Tot 125°C is de weerstandmeting redelijk nauwkeurig, daarboven wordt het al een stuk minder. Om een idee te geven tussen de middelste en ground staat 0.1V bij -40°C) en 2.0V bij150°C.

Hoe meet je?
Zet de linker pin (voorkant is de platte kant) op de spanningsbron en verbind de rechter pin met de aarde (ground). Je meet in een analoge poort de uitgang van de middelste pin.
Hieronder de grafiek waaruit je bij een bepaalde spanning de temperatuur kunt lezen.  (rode lijn)

image

Een eenvoudige formule die we gebruiken om spanning in temperatuur uit te lezen is de formule:

Temp in °C = [(Vout in mV) – 500] / 10

Voorbeeld: bij 1V is de temperatuur ((1000 mV – 500) / 10) = 50 °C

LCD DISPLAY
imageWe hebben een eenvoudige LCD display 16X2 (dwz 16 tekens in twee regels)die we als uitgangspunt gebruiken.
Het programmeren van een display heeft veel code nodig. Die zit gelukkig standaard in een bibliotheek (library) Wij gebruiken de standaardbibliotheek “LiquidCrystal.h”.

De aansluiting is redelijk simpel,neem over wat je hieronder ziet en de display werkt. De potentiometer (zie vorige les) is nodig om de helderheid van de display aan te passen.
image

Advertenties