Les 98-6: Wipwap LED-spel met Arduino
Het seesaw-LED-project is een klassieke beginnersoefening die een van de belangrijkste concepten in Arduino-programmering leert: twee uitgangen in een getimd ritme laten afwisselen. Met slechts twee LED's, twee weerstanden en een handvol jumperdraden bouw je een circuit waarin een groene LED en een rode LED om de beurt oplichten, als de op-en-neergaande beweging van een wip op een speelplaats. Het is een eenvoudige build, maar het introduceert de kernbouwstenen — pindefinities, timingconstanten en sequentiële digitalWrite()-aanroepen — die in bijna elke Arduino-sketch voorkomen die je ooit zult schrijven.
Omdat het seesaw-patroon eigenlijk gewoon "zet het ene aan, zet het uit, zet het andere aan, zet het uit, herhaal" is, schaalt dezelfde structuur naar tientallen praktische toepassingen. Hier zijn een paar ideeën om je verbeelding te prikkelen:
- Afwisselende indicatorlampjes — een "veilig / alarm"-paar op een bedieningspaneel dat heen en weer schakelt.
- Simulatie van een spoorwegovergang — twee lampen die afwisselend knipperen wanneer een trein nadert.
- Richtingbord met twee rijstroken — een "deze kant op / die kant op"-pijlweergave voor een oprit of parkeerplaats.
- Feestdecoratie — rode en groene LED's die van plaats wisselen voor een feestelijk knipperend effect.
- Leerbasis — de timing- en sequentievoorbeelden hier zijn dezelfde die je later zult gebruiken voor verkeerslichten, looplichten en multi-LED-animaties.
Hoe het seesaw-effect werkt
Een LED is een diode die licht uitzendt, en het symbool is een driehoek die naar een lijn wijst. De platte lijn is de kathode (negatief), en de achterkant van de driehoek is de anode (positief). Bij een fysieke LED is het langere pootje de anode en het kortere, platte pootje de kathode. Stroom loopt van anode naar kathode, dus de anode wordt verbonden met je Arduino-pin en de kathode wordt via een weerstand met aarde verbonden (in video op 02:29).
De weerstand is belangrijk. Een typische kleine LED wil ongeveer 2 V over zich en ongeveer 10 mA stroom. Als je Arduino 5 V levert, moet de resterende 3 V door de weerstand worden opgenomen. Met de wet van Ohm, R = V / I = 3 V / 0,01 A = 300 Ω. Alles van ongeveer 300 Ω tot 1000 Ω werkt — hogere waarden maken de LED eenvoudigweg dimmer (in video op 03:49).
Voor de seesaw zijn de twee LED's identiek bedraad: elke anode gaat naar zijn eigen Arduino-pin, en elke kathode gaat via zijn eigen weerstand naar een gedeelde aardrail. Het enige verschil tussen de twee is aan welke pin ze zijn aangesloten.
Hardware en componenten
- 1 × Arduino-bord (Uno, Nano, Mega of vergelijkbaar)
- 2 × LED's — één rode, één groene (elke twee kleuren werken)
- 2 × weerstanden, 300 Ω tot 1000 Ω (220 Ω of 330 Ω zijn gangbare keuzes)
- 1 × breadboard
- Jumperdraden (DuPont-draden)
- USB-kabel voor programmering en voeding
Dat is alles — geen drukknoppen, geen potentiometers, geen sensoren. Dit is bewust de meest minimale onderdelenlijst mogelijk, zodat je je volledig kunt richten op de codelogica.
Bedradingsgids
De bedrading is symmetrisch en gemakkelijk te volgen. Plaats beide LED's in het breadboard. Verbind de anode (langere pootje) van de groene LED met Arduino-pin 2 en de anode van de rode LED met Arduino-pin 3. Elke kathode (kortere pootje) wordt verbonden met één uiteinde van zijn eigen weerstand, en het andere uiteinde van beide weerstanden komt samen op een gemeenschappelijke rail die naar de GND-pin van de Arduino loopt (in video op 27:45).
Omdat beide LED's dezelfde aardrail delen, is er slechts één aarddraad nodig van het breadboard terug naar de Arduino. De twee signaaldraden — één naar pin 2, één naar pin 3 — zijn de enige verbindingen die veranderen tussen de twee LED's.
Uitleg van de code
De sketch is bewust kort zodat elke regel betekenisvol is. Dit zijn de onderdelen die je daadwerkelijk wilt aanpassen:
Pindefinities
const int greenLEDPin = 2;//definieer een pin voor groene LED
const int redLEDPin = 3;//definieer een pin voor rode LED
Deze twee constanten vertellen de Arduino met welke pinnen de LED's zijn verbonden. Als je je LED's op andere pinnen hebt aangesloten — bijvoorbeeld pin 8 en pin 9 — is dit de enige plek die je hoeft te wijzigen. Het trefwoord const betekent dat de waarde vaststaat voor de levensduur van het programma en later niet per ongeluk kan worden overschreven.
Timingconstante
const int ON_TIME = 500;Deze enkele waarde bepaalt hoe lang elke LED blijft branden, in milliseconden. De standaardwaarde van 500 betekent dat elke LED een halve seconde aan is, dus een volledige groen-dan-rood-cyclus duurt één seconde. Verlaag het naar 200 voor een snel knipperen, of verhoog het naar 1000 voor een langzaam, bedachtzaam ritme van één seconde per LED (in video op 30:17). Omdat beide LED's deze constante delen, blijven ze altijd synchroon — de wip blijft in balans.
Setup
In setup() worden de twee pinnen gedeclareerd als uitgangen met pinMode(), en de seriële monitor wordt gestart op 9600 baud zodat je de LED-statusberichten voorbij kunt zien scrollen. Dit wordt één keer uitgevoerd, wanneer het board wordt ingeschakeld.
De Loop
De loop()-functie is waar de wip plaatsvindt. Het voert vier acties achter elkaar uit: zet de groene LED aan, wacht ON_TIME milliseconden, zet deze uit en doe hetzelfde voor de rode LED. Wanneer de loop het einde bereikt, begint deze automatisch weer bovenaan — dat is het volledige "wip"-gedrag. Er is geen statusvariabele en geen voorwaarde om te controleren, omdat het patroon puur sequentieel is.
Live project en demonstratie
Zodra de code is geüpload, zie je de groene LED een halve seconde branden, dan de rode LED, dan weer groen, eindeloos. Het openen van de seriële monitor (Extra → Seriële monitor, of Ctrl+Shift+M) toont "Green LED ON" en "Red LED ON" terwijl het patroon loopt, wat een handige manier is om te bevestigen dat de timing overeenkomt met wat je hebt ingesteld.
Probeer ON_TIME te wijzigen in 200 en opnieuw te uploaden — de LED's wisselen merkbaar sneller. Stel het in op 1000 en de wip wordt een langzame, bedachtzame afwisseling. Je kunt de Arduino ook loskoppelen van USB en hem van een batterij of een 5 V-adapter voorzien; de sketch werkt identiek omdat deze al is opgeslagen in het geheugen van het board.
Gerelateerde projecten uit deze video
- Les 98-1: Een LED aan- en uitzetten met Arduino
- Les 98-2: Een LED aan- en uitzetten met een drukknop met Arduino
- Les 98-3: Een toggle-LED aan/uitzetten met een drukknop met Arduino
- Les 98-4: Een LED dimmen met Arduino: helderheidsregeling
- Les 98-5: Licht dimmen wanneer een knop wordt ingedrukt met Arduino
- Les 98-7: Looplicht met Arduino en 5 LED's
- Les 98-8: Looplicht met drukknop en LED's met Arduino
- Les 98-9: LED-spanningsniveaumeter met Arduino of looplicht met potentiometer
- Les 98-10: Arduino-verkeerslicht
Hoofdstukken
- [00:00] Overzicht van de 10 Arduino LED-projecten
- [01:22] Inleiding tot de stapsgewijze Arduino-cursus
- [02:29] LED's begrijpen: symbool, anode en kathode
- [03:49] De LED-seriewerstand berekenen met de wet van Ohm
- [27:32] Introductie van het wip-LED-project
- [27:45] Bedradingsschema voor het wip-project
- [28:28] Uitleg van de wip-code
- [30:06] Demonstratie van de wip met verschillende timings
- [30:47] Overzicht van het looplichtproject
- [36:41] Looplicht bestuurd door drukknop
- [42:25] LED-spanningsbalkmeter met potentiometer
- [49:25] Arduino-verkeerslichtproject
This code has not been parsed yet. Please return to the admin panel to parse it.
Dingen die je misschien nodig hebt
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Hulpmiddelen en referenties
-
DocumentatieDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Extern
-
Extern
-
Extern
Bestanden📁
Arduino-bibliotheken (zip)
-
SunFounder's 3-in-1 Smart Car leerpakket broncode
3in1-kit-main-v2.zip12.80 MB
Gebruikershandleiding
-
SunFounder 3-in-1 Arduino Smart Car montagehandleidingDit document toont stap voor stap de montage van de SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB