Als een deur schakelaar sluit, of als we een lampje willen aan/uitzetten, dan hebben we met digitale signalen te maken. Deze zijn of ‘aan’ of ‘uit’. (Tegenover digitale kunnen analoge signalen ook tussenstanden innemen.)
Als je een button (knop) indrukt dan wordt gewoon een contact gesloten. Dit kunnen we met een Digital-I/O Pin meten en omzetten in een 0 of 1.
In de Arduino zijn weerstanden tegen +5V ingebouwd die we met INPUT_PULLUP
kunnen inschakelen.
Dat bespaart ons de moeite, zelf een weerstand te moeten toevoegen. Het betekent ook dat we deze button tussen pin en massa (GND, Ground) aansluiten om de waarde die we van de pin kunnen lezen van ‘1’ (dat doet de PULLUP
) naar ‘0’ te wijzigen.
Een LED (Light Emitting Diode) kunnen we met een digitaal signaal aan- of uitzetten. Daarbij moeten we opletten dat er niet teveel stroom door de LED gaat. Als het goed is weten we dit principe nog van de Orientatie op Technische Informatica.
In deze schakeling zijn LED en weerstand tussen +5V en de pin aangesloten. Daardoor licht de LED op als de spanning aan de pin ‘laag’ is - de LED licht op als we deze pin op ‘0’ zetten, ze gaat uit als we de pin op ‘1’ zetten.
We tonen in dit voorbeeld een LED en een Button.
De voorbeeld code leest de toestand van de Button. Zolang deze is ingedrukt laat de code de LED knipperen.
// LED-Button.ino - Digital Input/Output example - 2024-02-15-hp
// Tested on Arduino Uno
// [+5V]---[=1kOhm=]---[LED]---[D2]
// [GND]---[Button]---[D3]
const int delaytime_ms = 500; // delay 1000ms = 1s, 500ms = 0.5s
const int pinLED = 2; // Pin 2 - Digital Output
const int pinButton = 3; // Pin 3 - Digital Input
int stateLED = 1; // start state: LED off
void setup() {
pinMode(pinButton, INPUT_PULLUP);
pinMode(pinLED, OUTPUT);
digitalWrite(pinLED, stateLED); // LED off (initial)
}
void loop() {
if (digitalRead(pinButton) == LOW) {
stateLED = 1 - stateLED; // reverse LED status
digitalWrite(pinLED, stateLED); // LED on or off (stateLED==0 -> ON, stateLED==1 -> OFF)
delay(delaytime_ms);
}
}
// EOF
LED Datasheet