Les 4 - Bedien een LED met een Drukknop

Arduino Les: Bedien een LED met een Drukknop

In deze les gaan we de interactie tussen een knop en een LED verkennen. We zullen beginnen met het eenvoudig inschakelen van de LED bij het indrukken van een knop, dan de LED aan/uit schakelen (toggelen) bij elke druk op de knop.

Deel 1: Drukknop - LED Aan/Uit

Theoretische Uitleg

Een drukknop of schakelaar is een eenvoudig invoerapparaat dat kan worden gebruikt om een signaal naar de Arduino te sturen.

Praktische Toepassing

  1. Verbind de drukknop en LED met de Arduino.
  2. Programmeer de Arduino om de LED aan te zetten wanneer de knop wordt ingedrukt.
int ledPin = 9;    // pin (D) 9 voor de LED
int buttonPin = 2; // pin (D) 2 voor het knopje

void setup()
{
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop()
{
  if (digitalRead(buttonPin) == HIGH)
  {
    digitalWrite(ledPin, HIGH);
  }
  else
  {
    digitalWrite(ledPin, LOW);
  }
}

Deel 2: Drukknop - LED Toggelen

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 ledPin = 9;          // LED
int buttonPin = 2;       // pin voor knopje
int lampstatus = LOW;    // lampstatus is nu uit

void setup()
{
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop()
{
  // knopje ingedrukt?
  if (digitalRead(buttonPin) == LOW)
  {
    if (lampstatus == LOW)
    { // als lamp uit was zet hem aan
      digitalWrite(ledPin, HIGH);
      lampstatus = HIGH;
    }
    else
    { // als lamp aan was zet hem uit
      digitalWrite(ledPin, LOW);
      lampstatus = LOW;
    }
  }
  // even pauze voor we opnieuw beginnen
  delay(250);
}

Tips

  1. Werkt het knopje betrouwbaar? Zo nee waarom niet?
  2. Probeer eens de delay te variëren

Conclusie

In deze les hebben we geleerd hoe we de status van de LED kunnen onthouden om te weten of hij uit of aan moet gaan.

Uitdaging

Probeer nu om meerdere LEDs met meerdere knoppen te besturen en creëer je eigen lichtshow!