Skip to content

Instantly share code, notes, and snippets.

@esbenr
Last active March 4, 2020 20:18
Show Gist options
  • Save esbenr/61c7cd7fbae7535b29f1dc0c3091afe9 to your computer and use it in GitHub Desktop.
Save esbenr/61c7cd7fbae7535b29f1dc0c3091afe9 to your computer and use it in GitHub Desktop.
Arduino Intersection Light
int ledRed = 2;
int ledYellow = 3;
int ledGreen = 4;
int signalIn = 12;
int signalOut = 11;
int signalValue = 0;
int del = 2000;
void setup() {
// put your setup code here, to run once:
pinMode(ledRed, OUTPUT);
pinMode(ledYellow, OUTPUT);
pinMode(ledGreen, OUTPUT);
pinMode(signalIn, INPUT);
pinMode(signalOut, OUTPUT);
}
void loop() {
signalValue = digitalRead(signalIn);
if (signalValue == 1) {
sequence();
signalValue = 0;
}
delay(10);
}
void sequence() {
orange();
green();
yellow();
notify();
red();
}
void notify() {
digitalWrite(signalOut, HIGH);
delay(100);
digitalWrite(signalOut, LOW);
}
void red() {
digitalWrite(ledRed, HIGH); // sets the digital pin 7 on
//delay(del); // waits for a second
//digitalWrite(ledRed, LOW); // sets the digital pin 7 off
}
void orange() {
digitalWrite(ledYellow, HIGH); // sets the digital pin 7 on
digitalWrite(ledRed, HIGH);
delay(del); // waits for a second
digitalWrite(ledYellow, LOW); // sets the digital pin 7 off
digitalWrite(ledRed, LOW);
}
void green() {
digitalWrite(ledGreen, HIGH); // sets the digital pin 7 on
delay(del); // waits for a second
digitalWrite(ledGreen, LOW); // sets the digital pin 7 off
}
void yellow() {
digitalWrite(ledYellow, HIGH); // sets the digital pin 7 on
delay(del); // waits for a second
digitalWrite(ledYellow, LOW); // sets the digital pin 7 off
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment