Question: Anyone experienced with Arduino, make this code like this example: Use the pushbutton with your traffic lights to simulate a pedestrian crossing. When the pushbutton
Anyone experienced with Arduino, make this code like this example:
Use the pushbutton with your traffic lights to simulate a pedestrian crossing. When the pushbutton is pressed it should wait until the traffic light turns red and then it should turn the pedestrian light green for 8 seconds, it should blink green for 2 seconds and then turn red. It will then resume normal traffic light operation.
Example:
Traffic lights are running normally
Pedestrian presses button (keep pressing until red light on traffic lights)
Traffic lights are both red
Pedestrian lights turn green for 8 seconds
Pedestrian lights blink green for 2 seconds
Pedestrian lights turn red
Traffic lights resume running normally.

This is the code of how it should be but modify it to make it become the pushbutton like the question
const int redPin = 5; const int yellowPin = 7; const int greenPin = 3; const int red2 = 4; const int yellow2 = 6; const int green2 = 2; const int greenPedestrianPin = 5; const int redPedestrianPin = 9; const int pedestrianButton = 13;
void setup() { // setting pins to output pinMode(redPin, OUTPUT); pinMode(yellowPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(red2, OUTPUT); pinMode(yellow2, OUTPUT); pinMode(green2, OUTPUT);
// setting pedestrian light pins to output pinMode(greenPedestrianPin, OUTPUT); pinMode(redPedestrianPin, OUTPUT);
// setting pushbutton pin to input pinMode(pedestrianButton, INPUT); }
void loop() { // First traffic light sequence: red to red and yellow to green digitalWrite(redPin, HIGH); digitalWrite(yellowPin, LOW); digitalWrite(greenPin, LOW); digitalWrite(green2, HIGH); delay(5000);
digitalWrite(redPin, HIGH); digitalWrite(yellowPin, HIGH); digitalWrite(greenPin, LOW); digitalWrite(yellow2, HIGH); digitalWrite(green2, LOW); delay(2000);
// Check if pedestrian button is pressed during this sequence if (digitalRead(pedestrianButton) == HIGH) { // Wait for traffic light to turn red while (digitalRead(yellow2) == LOW) { delay(10); }
// Turn on green pedestrian light and turn off red digitalWrite(greenPedestrianPin, HIGH); digitalWrite(redPedestrianPin, LOW); delay(8000);
// Blink green pedestrian light for (int i = 0; i
// Turn off green pedestrian light and turn on red digitalWrite(greenPedestrianPin, LOW); digitalWrite(redPedestrianPin, HIGH); }
digitalWrite(redPin, LOW); digitalWrite(yellowPin, LOW); digitalWrite(greenPin, HIGH); digitalWrite(yellow2, LOW); digitalWrite(green2, LOW); digitalWrite(red2, HIGH); delay(4000);
// Second traffic light sequence: green to yellow to red digitalWrite(redPin, LOW); digitalWrite(yellowPin, LOW); digitalWrite(greenPin, HIGH); digitalWrite(red2, HIGH); digitalWrite(yellow2, LOW); digitalWrite(green2, LOW); delay(5000);
digitalWrite(redPin, LOW); digitalWrite(yellowPin, HIGH); digitalWrite(greenPin, LOW); digitalWrite(red2, HIGH); digitalWrite(yellow2, HIGH); digitalWrite(green2, LOW); delay(2000);
digitalWrite(redPin, HIGH); digitalWrite(yellowPin, LOW); digitalWrite(greenPin, LOW); digitalWrite(red2, LOW); digitalWrite(yellow2, LOW); digitalWrite(green2, HIGH); delay(3000);
digitalWrite(redPin, LOW); digitalWrite(yellowPin, LOW); digitalWrite(greenPin, LOW); digitalWrite(red2, LOW); digitalWrite(yellow2, LOW); digitalWrite(green2, LOW); delay(1000); }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
