Blink met timer - 0

Laat een LED knipperen - zonder "delay"

Voorkennis: Blink-1

Achtergrond:

  • Timers

Nodig (zie Led-0)

  • LED
  • Weerstand 220 Ohm
  • Breadboard met draadjes
  • Arduino bordje

Schakeling

Gebruik de LED-schakeling van Blink-1: een LED met serieweerstand (220 Ohm) verbonden aan pin 13

Je kunt eventueel de ingebouwde LED gebruiken.

LED-schakeling

Programma

In het programma gebruiken we een timer, in de vorm van de variabelen timerStart en timerPeriod.

Als de tijd sinds de start van de timer:

 now - timerStart 

groter of gelijk is aan de periode van de timer, dan "loopt de timer af".

In dit voorbeeld schakelen we dan de LED om (aan->uit of omgekeerd). We herstarten de timer direct weer, door middel van

timerStart = now

const int ledPin = LED_BUILTIN;

int ledState = LOW;

unsigned long timerPeriod = 1000L;

unsigned long timerStart = 0;

void setup() {

  pinMode(ledPin, OUTPUT);

}

void loop() {

  unsigned long now = millis();

  if (now - timerStart >= timerPeriod) {

    timerStart = now;

    if (ledState == LOW) {

      ledState = HIGH;

    } else {

      ledState = LOW;

    }

    digitalWrite(ledPin, ledState);

  }

}

Opdracht 1: frequentie

Verander de interval-waarde van 1000 in 100 (milliseconden).

  • verander dit in de Arduino IDE;
  • vertaal en laad het naar de Arduino

Wat zie je?

Hoe verklaar je dit?

Opdracht 2

Voeg toe aan setup:

Serial.begin(9600);

Voeg toe aan de loop:

Serial.println(millis());

Heeft dit invloed op het knipperen van de LED?

Opdracht 3

Voeg een potmeter-schakeling toe, verbonden aan de analoge input. Gebruik deze om de periode van de timer aan te passen.

Arduino lessen: Blink-met-timer-0