Laat een LED knipperen - zonder "delay" | Voorkennis: Blink-1 |
Achtergrond:
| Nodig (zie Led-0)
|
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).
| 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