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

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

  1. Sluit het board aan op een USB poort.
  2. Windows zal automatisch gaan zoeken naar de juiste drivers en installeert deze gelijk.
  3. Installeer als laatste de Arduino IDE, uit de Windows Store (als je Windows 10 hebt) of van de website van Arduino
Arduino IDE in the Windows Store
Arduino IDE in de Windows Store

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

Advertenties

 

Arduino Uno startset met leds, weerstanden, breadboard en dupont wires
Arduino Uno startset met leds, weerstanden, breadboard en dupont wires bij AliExpress

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… Doe dit volgens het plaatje hieronder.

Arduino verkeerslichten H0

void Setup

Advertenties

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 kopieeren 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! 

Advertenties

Doe mee met de conversatie

Geen reacties

Laat een reactie achter

Laat weten wat je van dit artikel vindt!

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

%d bloggers liken dit: