/* CVO De Verdieping: Arduino
Sketch: Verkeerslicht
Oefening Verkeerslicht
* Sluit een gele led aan met serieweerstand op pin 13 en 9.
* Sluit een groene led aan met serieweestand op pin 12 en 10
* Sluit een rode led aan met serieweestand op pin 11 en 8.
* Sluit een drukknop met pulldownweestand aan op pin 2
Controleer of de LEDs knipperen.
Als de drukknop ingedrukt is, knipperen de LEDs sneller.
Houtmeyers Patrick
2023 - 2024
*/
// CONSTANTEN
const int LED_AUTO_ROOD_PIN = 8;
const int LED_AUTO_GEEL_PIN = 9;
const int LED_AUTO_GROEN_PIN = 10;
const int LED_VOET_ROOD_PIN = 11;
const int LED_VOET_GROEN_PIN = 12;
const int LED_AANVRAAG_PIN = 13;
const int KNOP_PIN = 2;
const unsigned int KNIPPER_TRAAG = 250; // Halve periode in ms
const unsigned int KNIPPER_SNEL = 125; // Halve periode in ms
// (GLOBALE) VARIABELEN
int turbo = LOW;
// VOORBEREIDING
void setup()
{
pinMode(LED_AUTO_ROOD_PIN, OUTPUT);
pinMode(LED_AUTO_GEEL_PIN, OUTPUT);
pinMode(LED_AUTO_GROEN_PIN, OUTPUT);
pinMode(LED_VOET_ROOD_PIN, OUTPUT);
pinMode(LED_VOET_GROEN_PIN, OUTPUT);
pinMode(LED_AANVRAAG_PIN, OUTPUT);
pinMode(KNOP_PIN, INPUT);
}
// UITVOERING
void loop()
{
// INVOER
turbo = digitalRead(KNOP_PIN);
// VERWERKING + UITVOER
if (turbo)
{
allesAanUit(HIGH, KNIPPER_SNEL);
allesAanUit(LOW, KNIPPER_SNEL);
}
else
{
allesAanUit(HIGH, KNIPPER_TRAAG);
allesAanUit(LOW, KNIPPER_TRAAG);
}
}
// FUNCTIES:
void allesAanUit(const int TOESTAND, const unsigned int TIJD)
{
digitalWrite(LED_AUTO_ROOD_PIN, TOESTAND);
digitalWrite(LED_AUTO_GEEL_PIN, TOESTAND);
digitalWrite(LED_AUTO_GROEN_PIN, TOESTAND);
digitalWrite(LED_VOET_ROOD_PIN, TOESTAND);
digitalWrite(LED_VOET_GROEN_PIN, TOESTAND);
digitalWrite(LED_AANVRAAG_PIN, TOESTAND);
delay(TIJD);
}