Blink met 2 LEDs

Doel:

  • onafhankelijk laten knipperen van 2 LEDs

nodig:

  • 2 LEDS met serieweerstanden (220 Ohm, rood-rood-bruin)

Voorkennis:

  • Blink met timer

Door het gebruik van timers in plaats van delay kunnen we twee (of meer...) LEDs onafhankelijk van elkaar laten knipperen.

We geven het programma voor 1 LED; door de onderdelen hiervan te kopiëren en te hernoemen kun je een 2e LED toevoegen.

Schakeling

Verbind LED1:

  • anode (+) met Arduino pin 12
  • kathode via serieweerstand met Arduino GND (0V)

const int led0Pin = 12;

const int led1Pin = 11;

int led0State = LOW;

unsigned long timer0Start = 0;

unsigned long timer0Period = 1000L;

// led1 variable declarations

void setup() {

  pinMode(led0Pin, OUTPUT);

  // led 1 setup

}

void loop() {

  unsigned long now = millis();

  if (now - timer0Start >= timer0Period) {

    timer0Start = now;

    led0State = 1 - led0State;

    digitalWrite(led0Pin, led0State);

  }

  // led1 timer action

}

Programma

Het programma is uitgewerkt voor led0. Pas het programma aan voor een tweede led, led1, door de verschillende onderdelen te kopiëren en de variabelen daarin te hernoemen: zie opdracht 2.

In het programma is aangegeven waar de verschillende onderdelen geplaatst moeten worden.

Opdracht 1

Bouw en test deze schakeling.

Opdracht 2

Pas de schakeling aan voor een tweede LED: verbind deze met pin 11.

Kopieer de volgende onderdelen naar de genoemde plaats (in het commentaar), en hernoem in de kopie de variabelen van led0... naar led1...

  • led1-variabele-declaraties:
  • led1-setup
  • led1 timer action
  • kies de periode van de beide LEDs verschillend.
  • bijv: led1Period = 1500L;
  • wat valt je op (in het knipperpatroon) bij led0Period = 1000L en led1Period = 1500L?

Opdracht 3

Voeg aan setup toe:

  Serial.begin(9600);

Voeg aan de loop toe:

  Serial.println(millis());

Bekijk de uitvoer met de Serial Monitor.

  • welke invloed heeft de uitvoer naar de host (Serial Monitor) op het knipperen van de LEDs?
  • wat kun je daaruit concluderen?

Opdracht 4

Breid deze schakeling uit met een derde LED.

Arduino lessen Blink-2-LEDs    --