Twee LEDs op verschillende snelheden laten knipperen met Arduino zonder delay()
Onderdelen en benodigdheden
- 1x Arduino UNO
- 2x 5 mm rode LED
Over dit project
Deze handleiding is geïnspireerd op vragen die ik online zag over het laten knipperen van twee LEDs met verschillende frequenties. Als we één LED elke 1000 ms en de andere elke 500 ms willen laten knipperen, kunnen we nog delay() gebruiken door de 1000 ms pauze op te splitsen in twee stukken van 500 ms.
Maar wat als we de snellere LED elke 300 ms willen laten knipperen? Dan wordt het gebruik van delay() snel onwerkbaar of heel ingewikkeld. De oplossing: stop met het gebruiken van delay().
In de Arduino IDE zit al een voorbeeld genaamd BlinkWithoutDelay. We passen die logica toe voor de tweede LED en stellen de gewenste intervallen in. Probeer het zelf eens en zeg vaarwel tegen delay().
Let op: de code die ik deel is verre van perfect, maar omdat deze tutorial bedoeld is voor beginners, heb ik er bewust niet aan geprutst.
Code
const int ledPin = LED_BUILTIN;
int ledState = LOW;
unsigned long previousMillis = 0;
const long interval = 1000;
const int ledPin2 = 12;
int ledState2 = LOW;
unsigned long previousMillis2 = 0;
const long interval2 = 300;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
ledState = (ledState == LOW) ? HIGH : LOW;
digitalWrite(ledPin, ledState);
}
if (currentMillis - previousMillis2 >= interval2) {
previousMillis2 = currentMillis;
ledState2 = (ledState2 == LOW) ? HIGH : LOW;
digitalWrite(ledPin2, ledState2);
}
}
Schema

Productieproces
- Real-Time Temperatuur & Vochtigheid Monitoring Via Web Op Raspberry Pi 4
- Beginner IoT-tutorial: Temperatuurdata streamen vanaf een Raspberry Pi
- Real-time Temperatuurdata Streamen van een ppDAQC Pi-Plate naar InitialState met een Headless Raspberry Pi
- Bouw een WiFi-gecontroleerde Robot met Raspberry Pi & Android Smartphone
- Oorsprong van het Zaagconcept: Van Oude Gereedschappen Tot Moderne Machines
- Grijze Gietijzer Begrijpen: Eigenschappen, Productie en Auto-toepassingen
- Alles wat je moet weten over frisdrankautomaten
- Aluminium Beschermen Tegen Corrosie: Expertstrategieen voor Lange Levensduur
- Waarom overschakelen van C naar C++ embedded-ontwikkeling kan boosten
- Cloud Computing Van Nul Leren: Een Praktische Gids Voor Beginners
- Verilog Delay Control begrijpen: Timing-technieken en best practices