CODE | LED Interactive Traffic Lights - Arduino Project 004

RonWang3 years ago (2023-05-31)电子编程 COD142

This time you are going to extend the previous project to include a set of pedestrian lights and a pedestrian push button to request to cross the road. The Arduino will react when the button is pressed by changing the state of the lights to make the cars stop and allow the pedestrian to cross safely.

This is the first time you are going to interact with the Arduino and cause it to do something when you change the state of a button that the Arduino is watching. In this project, you will also learn how to create your own functions in code.

From now on, I will no longer list the breadboard and jumper wires in the parts required list. Note that you will always need these basic components.

Project 4 -Interactive Traffic Lights

04 Interactive Traffic Light Circuit

04 Interactive Traffic Light Schematic

/* Coding Ron Wang
   June 11st 2024
   Autaba support for coding hardwarec
 */
// Project 4 - Interactive LED Traffic Lights

int carRed = 10; // assign the car lights
int carYellow = 9;
int carGreen = 8;
int pedRed = 7; // assign the pedestrian lights
int pedGreen = 6;
int button = 2; // button pin
int crossTime = 5000; // time alloyoud to cross
unsigned long changeTime; // time since button pressed
void setup() {
 pinMode(carRed, OUTPUT);
 pinMode(carYellow, OUTPUT);
 pinMode(carGreen, OUTPUT);
 pinMode(pedRed, OUTPUT);
 pinMode(pedGreen, OUTPUT);
 pinMode(button, INPUT); // button on pin 2
 // turn on the green light
 digitalWrite(carGreen, HIGH);
 digitalWrite(pedRed, HIGH);
}
void loop() {
 int state = digitalRead(button);
 /* check if button is pressed and it is over 5 seconds since last button press */
 if (state == HIGH && (millis() - changeTime) > 5000) {
 // Call the function to change the lights
 changeLights();
 }
}
void changeLights() {
 digitalWrite(carGreen, LOW); // green off
 digitalWrite(carYellow, HIGH); // yellow on
 delay(2000); // wait 2 seconds
 digitalWrite(carYellow, LOW); // yellow off
 digitalWrite(carRed, HIGH); // red on
 delay(1000); // wait 1 second till its safe
 digitalWrite(pedRed, LOW); // ped red off
 digitalWrite(pedGreen, HIGH); // ped green on
 delay(crossTime); // wait for preset time period
 // flash the ped green
 for (int x=0; x<10; x++) {
 digitalWrite(pedGreen, HIGH);
 delay(250);
 digitalWrite(pedGreen, LOW);
 delay(250);
 }
 // turn ped red on
 digitalWrite(pedRed, HIGH);
 delay(500);
 digitalWrite(carYellow, HIGH); // yellow on
 digitalWrite(carRed, LOW); // red off
 delay(1000);
 digitalWrite(carGreen, HIGH);
 digitalWrite(carYellow, LOW); // yellow off
 // record the time since last change of lights
 changeTime = millis();
 // then return to the main program loop
}

             

Share with Friends:

Related Articles

DIY T12 Soldering (Full-Assembled Kits)

DIY T12 Soldering (Full-Assembled Kits)

前两天我们刚做了一起T12焊台的半散件的DIY组装,但是很多小伙伴反应这个版本的不够过瘾,对T12焊台的结构还是一知半解的,所以今天我们在上一期的基础上做一期特别的,全散件T12零件包的DIY组装视频…

CODE | Ultrasonic Distance Alarm - Arduino Project 040

CODE | Ultrasonic Distance Alarm - Arduino Project 040

The sensor consists of two primary components: a transmitter and a receiver . The transmitter is res…

Arduino software Download

Arduino software Download

Arduino Web EditorStart coding online and save your sketches in the cloud. The most up-to-date versi…

CODE | Dot Matrix Display Beat Heart - Valentine's Day Gift

CODE | Dot Matrix Display Beat Heart - Valentine's Day Gift

You’re going to use the Project 19 circuit, but with a slight variation in the code to create a mult…

Python Programming Languages Suitable for Children

Python Programming Languages Suitable for Children

Python 适合儿童的编程语言Scratch图形编程优点在于图形化拖拽的方式简化了编程的理解,而C,JAVA,JAVASCRIPT,PYTHON等编程语言相对枯燥复杂,涉及复杂编程语法,变量规则,函…

Application and Deployment of HTTPS Certificates

Application and Deployment of HTTPS Certificates

HTTPS证书的申请和部署超文本传输协议安全 (HTTPS) 是 HTTP 的安全版本,HTTP 是用于在 Web 浏览器和网站之间发送数据的主要协议。HTTPS 经过加密,以提高数据传输的安全性。当…

Post a Comment

Anonymous

Feel free to share your thoughts and opinions here.