Project: Arduino thermometer

Project: Arduino thermometer

22 jan 2018

In dit project gaat u een thermometer bouwen waarbij u via drie gekleurde LED’s kunt zien hoe warm het is. Wordt het te warm of koud, dan gaan er zelfs LED’s knipperen.

Benodigde onderdelen:

> Koop alle onderdelen voor dit project

> Koop de Hele Conrad Arduino Starterkit

Inhoud

  1. Arduino thermometer - de schakeling
  2. Arduino thermometer - de sketch
  3. Arduino thermometer - uitvoeren van de sketch

Arduino thermometer | de schakeling

Op de volgende pagina vindt u een duidelijk schema van de schakeling.

  1. Plaats een draadbrug tussen de 5V-aansluiting van je Arduino en de rood gemarkeerde rij op het breadboard. Het maakt niet uit welke draadbrug u hiervoor kiest.
  2. Plaats een draadbrug tussen de GND-aansluiting van uw Arduino en de blauw gemarkeerde strook op het breadboard.

    // De eerste stap bij het bouwen van vrijwel iedere schakeling is het aansluiten van de voeding op het breadboard. De 5V- en GND-aansluiting van je Arduino dienen in dit project als voeding, deze worden doorverbonden naar het breadboard waardoor ook hier spanning op staat. 
     
  3. Plaats de rode, groene en blauwe LED’s op het breadboard, let daarbij goed op de polariteit (+/-) van de LED en verbind de pootjes tussen twee stroken op het breadboard.
  4.  Plaats een draadbrug tussen de anode (+) van de LED’s en digitale I/O’s op de Arduino. De blauwe LED verbindt u met aansluiting 4, de groene LED met aansluiting 3 en de rode LED met aansluiting 2.

    // U sluit de anode van de LED via een draadbrug aan op de Arduino en niet op 5V omdat u de LED wilt aansturen met de Arduino op basis van input (de temperatuursensor). 
     
  5. Plaats een weerstand van 150 Ohm (bruin/groen/bruin) tussen de kathode (-) van de groene LED en de blauwe GND-strook van het breadboard. Plaats ook een 150 Ohm weerstand tussen de kathode (-) van de rode LED en de blauwe GND-strook van het breadboard. Plaats nu een weerstand van 100 Ohm (bruin/zwart/bruin) tussen de kathode (-) van de blauwe LED en de blauwe GND-strook van het breadboard.

    // De LED’s hebben een voorschakelweerstand nodig om niet teveel spanning over de LED te laten lopen (de rode en groene LED’s zijn geschikt voor max.2,2V, de blauwe LED voor 3,1V). 
     
  6. Plaats de drie pootjes van de temperatuursensor in het breadboard. Vanaf de platte kant gezien zijn dit van links naar rechts gezien de plus-, Vout en de min.
  7. Plaats een draadbrug tussen de plus van de sensor (links) en de rode 5V-strook van het breadboard.
  8. Plaats een draadbrug tussen de min van de sensor (rechts) en de blauwe GND-strook van het breadboard.
  9. Plaats een draadbrug tussen de Vout van de sensor (midden) en de analoge A0 aansluiting op de Arduino.

    // De uitgangsspanning van de sensor (Vout) verandert zodra de temperatuur verandert. 

de sketch

Arduino thermometer | de sketch

U gaat nu de sketch schrijven om alle verschillende onderdelen van de hardware aan te sturen.
Open hiervoor de Arduino software op uw computer. Er opent vanzelf een lege sketch.

We gaan nu stap-voor-stap de verschillende onderdelen van de sketch bespreken.
U heeft vier aansluitingen gebruikt in uw opstelling, drie LED’s en een sensor. Om de sketch begrijpelijk te houden is het makkelijk om deze aansluitingen een naam te geven. Deze aansluiting verandert niet (het is een constante) en heeft een numerieke waarde (integer).

Maak ook een element voor de gewenste temperatuur (basisTemperatuur). Hier kunt u later in de sketch mee gaan rekenen. Het betreft hier een waarde genaamd ‘float’, dit is een waarde met decimalen. In dit geval 20.0 graden Celsius.

Wat nu volgt is de setup(), hier geeft u eenmalig aan wat de juiste instellingen voor deze sketch zijn. Met de code Serial.begin(9600); opent u een seriële verbinding met de computer. Via deze verbinding kunt u straks alle relevante waarden uitlezen op het beeldscherm van uw computer.

Verder geeft u hier aan dat de LED-aansluitingen (pin 2 tot en met 4) die je in de vorige stap hebt aangeduid dienen als uitgang (output) in deze sketch. De hier gebruikte schrijfwijze noemt u een ‘for loop’. Wanneer u meerdere I/O’s tegelijkertijd wilt benoemen kunt u met deze schrijfwijze wat tekst (en dus ruimte/geheugen) besparen. Standaard zijn deze LED’s uit (LOW).

De sketch komt nu aan bij het loop() gedeelte waar daadwerkelijke acties zich keer op keer herhalen.

Als eerste maakt u hier een waarde aan genaamd ‘sensorWaarde’. Dit is de analoge waarde (tussen 0 en 1024) die wordt uitgelezen bij de uitgang van de sensor. Deze waarde gebruikt u verderop om de temperatuur te berekenen. Via de Serial.print code toont u deze waarden op het beeldscherm van uw computer. Een waarde tussen “aanhalingstekens“ wordt letterlijk als tekst overgenomen. De “ | “ gebruikt u hier alleen voor een betere leesbaarheid op de computer.

U gaat nu een kleine berekening uitvoeren. U weet namelijk welke waarde er wordt uitgelezen op de sensor (een waarde tussen 0 en 1024), maar niet wat de bijbehorende spanning is (een waarde tussen 0 en 5 volt). In de sketch rekent u dat als volgt om. Toon ook hier de waarde weer via de seriële verbinding op de computer.

De volgende stap is ook weer een berekening. Met behulp van de spanning kunt u namelijk de temperatuur berekenen (het is een decimale waarde, dus een float). De temperatuursensor kent een lineair verband tussen de temperatuur en spanning; voor elke graad wordt de spanning met 10mV verhoogd. Ook deze waarde gaat u weergeven op de computer.

Ga nu een voorwaarde creëren; als de (berekende) temperatuur lager is dan de basisTemperatuur -2. Dit komt dus neer op een temperatuur lager dan 18 graden Celsius. Wordt aan deze voorwaarde voldaan, dan moet de blauwe LED gaan knipperen, de andere LED’s blijven uit. U doet dit door de aansluiting van de blauwe LED op HIGH te zetten en – na een delay van ½ seconde – weer op LOW.

Maak nu nog een aantal vergelijkbare voorwaarden en laat de bijbehorende LED’s knipperen. De eerste voorwaarde betekent ‘als de temperatuur hoger of gelijk is aan 18 graden én lager dan 20 graden. De karakters && betekenen ‘én’ in de Arduino programmeertaal.

Creëer nog een laatste voorwaarde. Als de temperatuur hoger is dan 24 graden Celsius. Wordt hier aan voldaan, dan moet de rode LED gaan knipperen.

U bent nu aan het einde van de loop() beland. De Arduino gebruikt in deze sketch een aantal analoge waarden. Deze worden intern omgezet naar digitale waarden om goed verwerkt te kunnen worden. Dit verloopt via een ADC (Analog-to-Digital-Converter). Om deze ADC zijn werk goed te laten doen en om knipperen van de LED te voorkopen voegen we een vertraging toe. Als u deze op 500 milliseconden zet wacht de sketch hier een ½ seconde en begint daarna weer van voor af aan.

Het haakje } dient als afsluiting van de loop(). U heeft deze namelijk ook geopend met een haakje {.

Arduino thermometer | uitvoeren van de sketch

Sluit nu de Arduino via de USB-kabel aan op de computer. U zult zien dat het ON-lampje gaat branden. Nu kunt u de sketch uploaden naar de Arduino via de upload-knop in de software. De RX/TX-lampjes gaan even knipperen, vervolgens ziet u in de software staan dat de upload is geslaagd. De thermometer is klaar voor gebruik!

Open als eerste de Serial Monitor via de Arduino software (Hulpmiddelen Seriële Monitor). Dit hulpmiddel laat zien wat er in uw project gebeurt, dat hebben we immers zelf aangegeven in de sketch.

Kijk nu eens naar de gemeten temperatuur, u zult zien dat de bijbehorende LED op het breadboard gaat branden. Test dit zelf ook maar eens door uw vingers voorzichtig om de sensor te plaatsen. U zult zien dat de waarde verandert.

U heeft nu zelf een thermometer gebouwd. U kunt hetzelfde principe natuurlijk ook gebruiken om temperatuur te meten in verschillende andere projecten!

> Koop alle onderdelen voor dit project

> Koop de Hele Conrad Arduino Starterkit

Bekijk ook de andere projecten:

Project: Arduino schakelaar
Bouw een eenvoudige lichtschakelaar met behulp van Arduino.
> Bekijk het project

Project: Arduino Knight Rider
Bouw het bekende Knight Rider lichteffect na met een Arduino. 
> Bekijk het project

Project: Arduino Alarmsysteem
Maak uw eigen alarmsysteem via een magneetcontact (reedcontact) en het Arduino-board.
> Bekijk het project

Project: Arduino Nachtlampje
Maak zelf een Arduino nachtlampje die aan gaat zodra het te donker wordt. 
> Bekijk het project

> Terug naar de Overzichtspagina Arduino voor Beginners