ArduinoStoplicht

Op internet kwam ik dit standaard stoplichtje tegen. 3 felle LEDs boven elkaar, rood, geel en oranje. Het component is al voorzien van weerstanden dus gemakkelijk aan te sluiten.

Ik moet eerlijk bekennen, ik had hem gekocht voor op de treinbaan. Maar dit stoplicht is helemaal de verkeerde schaal, dus vette pech. Er zijn natuurlijk genoeg andere mogelijkheden te bedenken. Zoals een stoplicht voor toegangscontrole. Daarover in een van de volgende projecten meer.

Dit programma is een immitatie van een echt stoplicht. Een cycle duurt hier 25 seconden (stateHigh). De eerste 3 seconden staat het stoplicht op groen, daarna 2 seconden op oranje en vervolgens op rood. Weet je trouwens dat het formeel geen stoplichten zijn? Maar verkeerslichten. Terwijl je er toch het grootste deel van de tijd moet stoppen.



ArduinoBreadboard


ArduinoSource code
/*
  Trafficlight

  (C) copyright www.punthooft.nl 2019
*/
// Constants
const int ledRed = 4;
const int ledOrange = 3;
const int ledGreen = 2;
const int stateHigh = 25;   // Led runs from 0 to 25
const int targetRed = 5;    // If above 5 it is red
const int targetOrange = 3; // If above 3 it is green

// Variables
int state;            

// Setup function runs once when powerup the board and on reset 
void setup() {

  // Initialize LED as an output.
  pinMode(ledRed, OUTPUT);
  pinMode(ledOrange, OUTPUT);
  pinMode(ledGreen, OUTPUT);

  state = 0;
}

// The loop function runs over and over again forever
void loop() {

  state++;
  if (state > stateHigh) {
    state = 0;  
  }

  digitalWrite(ledRed, LOW);    // turn the LEDs off by making the voltage LOW
  digitalWrite(ledOrange, LOW);
  digitalWrite(ledGreen, LOW);   

  if (state > targetRed) {
    
    digitalWrite(ledRed, HIGH);   // Red lED on

  } else {

      if (state > targetOrange) {

        digitalWrite(ledOrange, HIGH);   // Orange LED on

      } else {

        digitalWrite(ledGreen, HIGH);   // Green LED on

      }

  }
  delay(1000); // wait for a second
}


Copyright 2019 www.punthooft.nl
We do not collect cookies for advertisement. Your data is never send to third parties.