Using an Arduino. Modify our original traffic light to have 2 sides, and let the
ID: 3870483 • Letter: U
Question
Using an Arduino. Modify our original traffic light to have 2 sides, and let the user enter the time (in seconds for each color [red, yellow, green]
We want the user delay to override the delay I have given as default value permanently.
I use a MEGA 2560 Arduino.
This is my origonal code.
int ledDelay = 2000;
int redPin = 10;
int yellowPin = 9;
int greenPin = 8;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop() {
// turn red on
digitalWrite(redPin, HIGH);
delay(ledDelay);
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, HIGH);
delay(ledDelay);
digitalWrite(greenPin, HIGH);
digitalWrite(yellowPin, LOW);
delay(ledDelay);
digitalWrite(yellowPin, HIGH);
digitalWrite(greenPin, LOW);
delay(ledDelay);
digitalWrite(yellowPin, LOW);
}
Explanation / Answer
int redPin = 10;
int yellowPin = 9;
int greenPin = 8;
int user_dealy;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop() {
// turn red on
digitalWrite(redPin, HIGH);
Serial.println("enter user dealy:");
user-dealy=Serial.read();
delay(user_delay);
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, HIGH);
Serial.println("enter user dealy:");
user-dealy=Serial.read();
delay(user_delay);
digitalWrite(greenPin, HIGH);
digitalWrite(yellowPin, LOW);
Serial.println("enter user dealy:");
user-dealy=Serial.read();
delay(user_delay);
digitalWrite(yellowPin, HIGH);
digitalWrite(greenPin, LOW);
Serial.println("enter user dealy:");
user-dealy=Serial.read();
delay(user_delay);
digitalWrite(yellowPin, LOW);
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.