Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino UNO Controlled Traffic Light with Touch Sensor Activation

View and Edit Project In Cirkit DesignerImage of Arduino UNO Controlled Traffic Light with Touch Sensor Activation

Circuit Documentation

Summary of the Circuit

This circuit is designed to simulate a traffic light system controlled by a touch sensor. The system uses an Arduino UNO microcontroller to cycle through the traffic light sequence (red, yellow, green, off) each time the touch sensor is activated. The traffic light system is represented by three LEDs (red, yellow, and green) that are turned on and off according to the state of the touch sensor.

Component List

Touch Sensor

Arduino UNO

Traffic Light

Wiring Details

Touch Sensor

Arduino UNO

Traffic Light

Documented Code

/*
 * This Arduino sketch controls a traffic light system using a touch sensor.
 * When the touch sensor is pressed, the red LED turns on. On the next press,
 * the yellow LED turns on. On the next press, the green LED turns on. On the
 * next press, all LEDs turn off. This cycle repeats with each subsequent press.
 */

const int touchPin = 7; // Pin connected to touch sensor
const int redLedPin = 2; // Pin connected to red LED
const int yellowLedPin = 3; // Pin connected to yellow LED
const int greenLedPin = 4; // Pin connected to green LED

int touchState = 0; // Current state of the touch sensor
int lastTouchState = 0; // Previous state of the touch sensor
int ledState = 0; // State of the LEDs (0: off, 1: red, 2: yellow, 3: green)

void setup() {
  pinMode(touchPin, INPUT);
  pinMode(redLedPin, OUTPUT);
  pinMode(yellowLedPin, OUTPUT);
  pinMode(greenLedPin, OUTPUT);
  digitalWrite(redLedPin, LOW);
  digitalWrite(yellowLedPin, LOW);
  digitalWrite(greenLedPin, LOW);
}

void loop() {
  touchState = digitalRead(touchPin);
  if (touchState == HIGH && lastTouchState == LOW) {
    ledState = (ledState + 1) % 4;
    updateLeds();
  }
  lastTouchState = touchState;
}

void updateLeds() {
  digitalWrite(redLedPin, ledState == 1 ? HIGH : LOW);
  digitalWrite(yellowLedPin, ledState == 2 ? HIGH : LOW);
  digitalWrite(greenLedPin, ledState == 3 ? HIGH : LOW);
}

This code is written for the Arduino UNO microcontroller. It initializes the pins connected to the touch sensor and LEDs, reads the state of the touch sensor, and updates the state of the LEDs based on the sensor input. The updateLeds() function controls which LED is turned on based on the current ledState.