Arduino Les 04 Knopje

Schakel een LED aan en uit door middel van een drukknop of schakelaar.

We gebruiken de volgende code:
void setup()
void loop()
pinMode
analogWrite
delay()

Het schema:

We gebruiken de interne LED 13 op het Arduino™ bordje en een schakelaar of drukknop tussen de +5volt en Pin 2. Ook hebben we een 10K Ohm weerstand nodig tussen Pin 2 en de massa voor een zogenaamde Pull-down.

* Opmerking: bij de meeste Arduino™’s zit er standaard een LED op Pin 13, zo niet is een extra LED en weerstand nodig.

De gebruikte onderdelen:
Arduino™ UNO r3
Breadboard
Knopje
Bedrading

Een LED aan en uit zetten door middel van een schakelaar of LED is een kleine stap vanaf de vorige Les. Het enigste dat er eigenlijk bij komt is dat je de status van een ingang moet lezen. Dit doe je met het commando “digitalRead”. Zodra je weet of de schakelaar aan of uit staat kan je de Arduino™ vertellen dat de LED aan moet en zo niet uit.

Er zit dus wel een vergelijking in deze code. Deze is vrij eenvoudig opgebouwd. Hij luid,
Als Pin 2 hoog is { zet dan de LED aan} zo niet { zet de LED uit}.

const int knopPin = 2; // De schakelaar of drukknop zit op Pin 2.
const int ledPin = 13; // De LED zit op Pin 13.
int knopStatus = 0; // Een variabele voor de status van de schakelaar of knop.

void setup() {
pinMode(ledPin, OUTPUT); // De LED Pin is een uitgang. 
pinMode(knopPin, INPUT); // De knop Pin is een ingang.
}

void loop() {
knopStatus = digitalRead(knopPin); // Lees de status van de shakelaar of knop.

if (knopStatus == HIGH) { // Als de ingang hoog is ( knop ingedrukt ):
digitalWrite(ledPin, HIGH); // Zet de LED aan.
}
else { // Zo niet..
digitalWrite(ledPin, LOW); // Zet de LED uit.
}
}
Deze beschrijving is vertaald uit de originele handleiding van de Arduino™, er is echter nog een makkelijkere manier om een schakelaar aan te sluiten. De Arduino™ chip heeft namelijk de mogelijkheid om een interne Pull-up weerstand te gebruiken, maar dan moeten we de schakelaar verbinden met de massa en de vergelijking omdraaien als volgt.
const int knopPin = 2; // De schakelaar of drukknop zit op Pin 2.
const int ledPin = 13; // De LED zit op Pin 13.
int knopStatus = 0; // Een variabele voor de status van de schakelaar of knop.

void setup() {
pinMode(ledPin, OUTPUT); // De LED Pin is een uitgang. 
pinMode(knopPin, INPUT); // De knop Pin is een ingang.
digitalWrite(knopPin, HIGH); // Schakel de Pull-up weerstand in de chip in.
}

void loop() {
knopStatus = digitalRead(knopPin); // Lees de status van de shakelaar of knop.

if (knopStatus == LOW) { // Als de ingang hoog is ( knop ingedrukt ):
digitalWrite(ledPin, HIGH); // Zet de LED aan.
}
else { // Zo niet..
digitalWrite(ledPin, LOW); // Zet de LED uit.
}
}

Geef een reactie