0% found this document useful (0 votes)
10 views

Code

The document defines the pin connections and timing parameters for an Arduino-controlled traffic light and pedestrian crossing. It initializes the pin modes and states, then the main loop checks the button state to trigger light changes and cycles through the different states of the car and pedestrian lights based on preset time intervals, toggling the appropriate pins high or low accordingly.

Uploaded by

jaymarkjunsay03
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Code

The document defines the pin connections and timing parameters for an Arduino-controlled traffic light and pedestrian crossing. It initializes the pin modes and states, then the main loop checks the button state to trigger light changes and cycles through the different states of the car and pedestrian lights based on preset time intervals, toggling the appropriate pins high or low accordingly.

Uploaded by

jaymarkjunsay03
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

// Define pin numbers for LEDs and pushbutton

const int carRed = 13;

const int carYellow = 12;

const int carGreen = 11;

const int pedRed = 3;

const int pedGreen = 2;

const int buttonPin = 7;

// Define time intervals for each state (in milliseconds)

const long carRedTime = 45000;

const long carYellowTime = 15000;

const long carGreenTime = 45000;

const long pedGreenTime = 45000;

// Define initial states for traffic lights and pedestrian light

int carState = 0; // 0 = red, 1 = green, 2 = yellow

int pedState = 0; // 0 = red, 1 = green

int buttonState = 0;

int lastButtonState = 0;

unsigned long lastCarTime = 0;

unsigned long lastPedTime = 0;

void setup() {

pinMode(carRed, OUTPUT);

pinMode(carYellow, OUTPUT);
pinMode(carGreen, OUTPUT);

pinMode(pedRed, OUTPUT);

pinMode(pedGreen, OUTPUT);

pinMode(buttonPin, INPUT_PULLUP); // internal pull-up resistor to avoid floating pin

void loop() {

// Check button state

buttonState = digitalRead(buttonPin);

if (buttonState == LOW && lastButtonState == HIGH) {

// Pedestrian has pressed the button, so switch car traffic light to red

carState = 0;

lastCarTime = millis(); // reset car timer

lastButtonState = buttonState;

// Check car traffic light state

switch (carState) {

case 0: // red

digitalWrite(carRed, HIGH);

digitalWrite(carYellow, LOW);

digitalWrite(carGreen, LOW);

if (millis() - lastCarTime >= carRedTime) {

// Switch to yellow

carState = 1;
lastCarTime = millis(); // reset car timer

break;

case 1: // yellow

digitalWrite(carRed, LOW);

digitalWrite(carYellow, HIGH);

digitalWrite(carGreen, LOW);

if (millis() - lastCarTime >= carYellowTime) {

// Switch to green

carState = 2;

lastCarTime = millis(); // reset car timer

break;

case 2: // green

digitalWrite(carRed, LOW);

digitalWrite(carYellow, LOW);

digitalWrite(carGreen, HIGH);

if (millis() - lastCarTime >= carGreenTime) {

// Switch to yellow

carState = 3;

lastCarTime = millis(); // reset car timer

break;

case 3: // yellow

digitalWrite(carRed, LOW);
digitalWrite(carYellow, HIGH);

digitalWrite(carGreen, LOW);

if (millis() - lastCarTime >= carYellowTime) {

// Switch to red

carState = 0;

lastCarTime = millis(); // reset car timer

break;

// Check pedestrian traffic light state

if (carState == 0 || carState == 3) {

// Car traffic light is red or yellow, so pedestrian light should be green

digitalWrite(pedRed, LOW);

digitalWrite(pedGreen, HIGH);

if (millis() - lastPedTime >= pedGreenTime) {

// Switch to red

pedState = 0;

lastPedTime = millis(); // reset pedestrian timer

} else {

// Car traffic light is green, so pedestrian light should be red

digitalWrite(pedRed, HIGH);

digitalWrite(pedGreen, LOW);

pedState = 1; // set pedestrian state to green to avoid false button trigger

}
}

You might also like