Omschrijving
Het digitalRead() functie wordt gebruikt in het programma gebruikt om de status van een digitale pin op een microcontroller (zoals de Arduino / ESP32) te lezen. De pin die gelezen wordt, moet wel eerst als invoer gedefinieerd worden. Dit doe je met de functie pinMode(). Daarna kan met de functie digitalRead() een digitale pin gelezen worden. Dit resulteert in een waarde ‘hoog’ (HIGH) of ‘laag’ (LOW). Deze waarde wordt door de functie terug gegeven en kan in een variabele opgeslagen worden voor later gebruik.
Syntax
digitalRead(pin)
Parameters
pin: is het GPIO nummer dat je uit wil lezen. Dus voor bijvoorbeeld GPIO1 voer je hier ‘1’ in.
Geeft terug
HIGH of LOW.
Voorbeeld
int knopPin = 16; int retourWaarde = 0; void setup() { pinMode(knopPin, INPUT); // Stel de pin in als een invoerpin } void loop() { retourWaarde = digitalRead(knopPin); // leest de waarde uit van de invoer pin en kent deze toe aan de variabele retourWaarde delay(1000); // Wacht 1 seconde // rest van het programma }
Toelichting voorbeeld
Eerst worden 2 variabelen gedefinieerd. Een bevat een waarde die aangeeft om welke pin het gaat (knopPin). Dit is handig omdat je tijdens de ontwikkeling van het programma deze waarde overal moeten wijzigen als deze tijdens het ontwikkelen wijzigt. In de andere variabele zetten we de waarde die uitgelezen wordt. Hier onthoud het programma wat de status is van de invoer pin als deze uitgelezen wordt. Anders zou je elke keer dat je deze waarde nodig hebt de pin opnieuw moeten uitlezen. Deze waarde zou intussen best anders kunnen zijn. In de setup() wordt de pin als invoer (INPUT) gedefinieerd. In de eerste regel van de loop() wordt de waarde van de invoer pin gelezen en toegekend aan de variabele ‘retourWaarde’ om ergens anders in het programma gebruikt te worden.
Notities en waarschuwingen
Kies wel een pin die een digitaal signaal aan kan en voor invoer geschikt is.