In deze tutorial laat ik je zien hoe je de Arduino Uno kunt gebruiken om stoplichten aan te sturen voor je modeltreinbaan.
Deze post gaat alleen over het maken van de elektrische schakeling en de aansturing. Ik heb ook een artikel geschreven over hoe je zelf de verkeerslichten en masten zelf kunt maken. Lees hier hoe je de verkeerslichten zelf maakt.
rood stoplicht op je treinbaan H0 verkeerslichten met leds H0 verkeerslichten met leds
Met de Arduino kun je een programma schrijven om de lichten aan en uit te laten gaan. Je kunt zelf een uitgebreid programma maken, maar je kunt ook steeds een kort programma laten herhalen. Aan jou de keus!.
Benodigdheden voor Arduino stoplichten
Allereerst heb je natuurlijk een Arduino nodig, deze kun je gewoon kopen bij bijvoorbeeld Conrad, een andere webshop of een spotgoedkope Chinese kloon. Om van de Arduino gebruik te kunnen maken, heb je een USB kabel nodig en software en drivers.
Installatie Arduino software
- Sluit het board aan op een USB poort.
- Windows zal automatisch gaan zoeken naar de juiste drivers en installeert deze gelijk.
- Installeer als laatste de Arduino IDE, uit de Windows Store (als je Windows 10 hebt) of van de website van Arduino
Zo. De voorbereidingen zijn klaar. We gaan nu de programmeer software, Arduino IDE, opstarten en gebruiken.
Blink example
Probeer, als je echt helemaal nieuw bent met Arduino, eerst een paar voorbeelden uit het menu. Bijvoorbeeld het Blink voorbeeld. Probeer te begrijpen wat het doet, ga dan verder met de volgende stappen. Je kunt de benodigde schakeling eenvoudig maken met jumper/dupont wires op een breadboard. Als je nog helemaal niets in bezit hebt is het verstandig om een startersset te overwegen waar alles in zit. Arduino Uno startset
Verkeerslichten in stand-by met Arduino
Kopieer de onderstaande tekst maar in je Arduino programmeerscherm.
//De poorten benoemen welke //we gaan gebruiken en een logische naam geven int rood1 = 8; int rood2 = 3; int geel1 = 9; int geel2 = 2; int groen1 = 10; int groen2 = 1;
Hier staan de declaraties voor de poorten. Zo weet de Arduino (en jijzelf) welke poort wat is. Zo zie je dat van stoplicht 1 de + van de rode led op poort 8 aangesloten moet worden. De – koppel je aan poort GND. Doe dit ook zo voor de andere LEDs, de plus van de rode led van het 2e stoplicht hang je aan poort 3 enz…
void Setup
Hier geef je aan dat de zojuist benoemde poorten ook daadwerkelijk poorten zijn op je Arduino. Het gaat om de digitale Output poorten. De code binnen void setup wordt eenmalig bij het opstarten van de Arduino uitgevoerd. Daarna voert de Uno de code uit binnen void loop.
//aangeven wat elke poort is. void setup(){ pinMode(rood1,OUTPUT); pinMode(geel1,OUTPUT); pinMode(groen1,OUTPUT); pinMode(rood2,OUTPUT); pinMode(groen2,OUTPUT); pinMode(geel2, OUTPUT); }
Void Loop
Dit is het echte programma. Hier geef je aan wat er nou eigenlijk moet gebeuren. Het programma wordt in een loop uitgevoerd, het programma herhaalt zich constant.
In dit stuk code kun je de volgorde van jouw verkeerslichten bepalen en aanpassen. Als je een andere volgorde of meer wachttijd wilt kun je de regels in een andere volgorde kopiëren en plakken.
void loop(){ //start de loop zodat het programma constant draait digitalWrite(rood1,LOW); digitalWrite(geel1,HIGH); digitalWrite(groen1,LOW); digitalWrite(rood2,LOW); digitalWrite(geel2,HIGH); digitalWrite(groen2,LOW); delay(800); digitalWrite(rood1,LOW); digitalWrite(geel1,LOW); digitalWrite(groen1,LOW); digitalWrite(rood2,LOW); digitalWrite(geel2,LOW); digitalWrite(groen2,LOW); delay(800); }
Toelichting op verkeerslichten code
DigitalWrite geeft aan dat je een van de poorten aan of uit gaat zetten. LOW geeft aan dat je de poort uitzet, HIGH doet de poort aan. Op de poort met de naam die je zojuist toegekend hebt wordt het HIGH of LOW commando uitgevoerd. Dat betekend dus dat je met DigitalWrite(rood1, LOW) de rode led van stoplicht 1 uitzet. De gele led gaat aan en de groene gaat uit. Dit gaat ook zo met stoplicht 2.
Delay(800); zet het programma even stil voor de aangegeven tijd in miliseconden. De twee gele leds bijven dus aan gedurende 800 miliseconden. 1000 miliseconden is één seconde.
Met de volgende groepjes code zetten we alle leds uit en dan herhaalt de code zich door de loopfunctie. Dit gaat oneindig door, totdat de stroom van de Uno afgehaald wordt, of er andere code naar de Arduino geschreven wordt.
Gefeliciteerd! Je heb nu twee stoplichten die in de stand-by stand staan!
Is het je gelukt of juist niet? Misschien heb je het script wel uitgebreid of wil je iets anders delen? Dat kan hieronder!
Wil je meer doen met Arduino? Klik dan hier voor meer artikelen over Arduino!
Je kunt ook verder met het zelf bouwen van de masten en Stoplichten zelf. Lees in deze post hoe je van een compleet stoplichten setje inclusief smd leds met draad heel simpel een verkeerslicht maakt!
[…] De draden kun je aansluiten op een OC32 of een andere verkeerslichtenschakeling. Je kunt er ook een zelf maken met bijvoorbeeld een arduino! Hoe je dat simpel en goedkoop doet lees je in mijn eerdere blogpost Verkeerslichten aansturen met een arduino. […]
[…] Als voorbeeld heb ik lang geleden al eens een artikel geschreven over het maken van een Arduino gebaseerd verkeerslicht. Ik heb dit gemaakt op basis van echte Arduino code die altijd werkt. Benieuwd? Check dan het artikel Verkeers-/stoplichten maken met Arduino. […]