Les 4 - Bedien een LED met een Drukknop
Benodigheden
Arduino
LED
Weerstandje
Gaatjesbord
Draadje-MM
Draadje-MF
Knopje
- 1 Arduino-UnoMini computertje met pootjes 0 t/m 13 en 3x GND.
- 1 LEDLED lampje. Stroom in: lange pootje. Stroom uit: korte pootje. lampje
- 1 WeerstandjeDit knijpt de stroom af, zodat het LED lampje niet te veel stroom krijgt en stuk gaat.
- 1 GaatjesbordHiermee kun je draadjes en lampjes met elkaar verbinden.
- 1 knopjeWanneer ingedrukt verbindt het VCC en OUT (GND is niet aangesloten).
- 4 X draadje-MMDit is een draadje met aan beide kanten een pennetje (Male-Male). of draadje-MFDit is een draadje met een pennetje (Male) en een gaatje (Female).
Stap 1 - LED en drukknop aansluiten
Met een drukknop of schakelaar kun je een signaal naar de Arduino te sturen.
- Verbind de LED zoals in de vorige les met pin 9 en GND (vergeet de weerstand niet!)
- Verbind één pootje van de drukknop met pin 2 van de Arduino
- Verbind het andere pootje van de drukknop met GND
Stap 2 - LED aan/uit met drukknop
We gaan nu een programma maken waarbij de LED aan gaat als je de knop indrukt.
❗
Typ zelf de code. Als je code kopieert en plakt leer je er niets van!
int ledPin = 9; // pin voor LED
int knopje = 2; // pin voor knopje
void setup()
{
pinMode(ledPin, OUTPUT); // LED aan uitgang
pinMode(knopje, INPUT_PULLUP); // knopje aan ingang
}
void loop()
{
// knopje ingedrukt?
if (digitalRead(knopje) == HIGH)
{
digitalWrite(ledPin, HIGH);
}
else // knopje niet ingedrukt
{
digitalWrite(ledPin, LOW);
}
}
Stap 3 - LED toggelen met drukknop
Toggelen betekent dat we de LED steeds van aan naar uit wisselt al je op de knop drukt. Dus je zet de LED aan of je zet de LED uit.
int led = 9; // pin voor LED
int knopje = 2; // pin voor knopje
int lampstatus = LOW; // lampstatus is nu uit
void setup()
{
pinMode(led, OUTPUT);
pinMode(knopje, INPUT_PULLUP);
}
void loop()
{
// knopje ingedrukt?
if (digitalRead(knopje) == LOW)
{
// lamp is uit?
if (lampstatus == LOW)
{
digitalWrite(led, HIGH);
lampstatus = HIGH;
}
else // lamp is aan
{
digitalWrite(led, LOW);
lampstatus = LOW;
}
}
// even pauze voor we opnieuw beginnen
delay(100);
}
❓ Werkt het knopje niet (betrouwbaar)?
Knopje werkt niet
- Probeer andere pootjes van het knopje.
- Lampje goed aangesloten?
- Controleer of alle draadjes goed contact maken.
Knopje werkt niet betrouwbaar
-
Probeer de delay te verhogen of te verlagen
Uitdaging
Probeer nu om meerdere LEDs met meerdere knoppen te besturen en creëer je eigen lichtshow!