Projects4edu

Arduino tutorial : analogRead()

Bij de tutorial van analogWrite kon je al lezen wat het verschil is tussen analoog en digitaal. Toen was het om een uitgang te kunnen regelen, nu is het om een input te kunnen lezen. Een eenvoudige input zoals een drukknop heeft maar twee toestanden namelijk 0 of 1 maar een NTC weerstand (dit is een weerstand die verandert in functie van temperatuur) genereert in serie met een andere weerstand verschillende spanningen. Deze spanning kan je niet lezen zoals je dat met een voltmeter zou doen. Je kan wel de ingang waarop je deze spanning aansluit uitlezen met analogRead(pinnaam)

Hierbij gaat een spanning van 0V worden omgezet naar een waarde van 0, een spanning van 5V zal een waarde worden van 1024 trek je deze lijn door dat zal uiteraard een spanning van 2,5V een waarde worden van 512. Op deze manier kan je verschillende eenvoudige sensoren omzetten naar een getal die representatief is voor een bepaalde grootheid.

Gebruik : Het omzetten van een spanning naar een getal die representatief is voor de grootte van deze spanning. De spanning kan bijvoorbeeld de spanning zijn van een aangesloten batterij, de spanning van een potentiometer of de spanning door een spanningsdeler waarbij een van twee weerstanden een weerstand is die afhankelijk is van een bepaalde grootheid zoals licht, warmte, …
Mogelijkheden : Het inlezen van een spanning om die op te slaan om daarna een actie uit te voeren op basis van de gemeten waarde.

Uittesten van verschillende mogelijkheden :

Voor deze test heb je nodig :
1 Arduino Uno
1 STEM shield

Niveau :
1e en 2de graad secundair (elektronica / engineering)

Uittesten kan je best door het voorbeeld AnalogReadSerial te gebruiken. Bij dit voorbeeld komt de gemeten waarde op je computerscherm, dit door gebruik te maken van de Serial monitor. Deze terminal kan je op het beeldscherm laten verschijnen door bij het menu hulpmiddelen te kiezen voor serial monitor. Wil je de waarden niet zien als getallen maar in grafiekvorm dan kan je beter voor serial plotter kiezen.

Het voorbeeld kan je openen door BESTAND -> VOORBEELDEN -> 01 BASICS -> AnalogReadSerial.
Je hoeft aan dit voorbeeld niets te veranderen want de potentiometer waarbij je de spanning kan regelen tussen O en 5V is aangesloten op analoge input 0.
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.println(sensorValue);
delay(1); // delay in between reads for stability
}

Volgende les : Een functie

Hoe je een mini programma in een programma schrijft om zo efficiënter te kunnen programmeren bespreken we in de volgende tutorial. Een functie is de manier om code te recycleren.

Vorige les : analogWrite();

Deze les past zeer goed bij de vorige analogWrite les, je kan namelijk de analoge sensor rechtstreeks gebruiken om het licht te dimmen. Je moet er wel opletten dat analogRead je een getal geeft tussen 0 en 1024 en dat analogWrite een getal tussen 0 en 255 nodig heeft. Rechtstreeks gebruiken gaat dus niet dus het getal moet eerst gedeeld worden door 4.

Mobiele versie afsluiten