digitalRead()

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.