An open API service indexing awesome lists of open source software.

https://github.com/beckversync/stm32-traffic-light-control-system

Welcome to the STM32 Traffic Light Control System Project! πŸ› οΈ In this project, we’re building a fully-featured traffic light simulation for a crossroad, complete with customizable timing and interactive controls! Let’s get started! πŸ’‘
https://github.com/beckversync/stm32-traffic-light-control-system

Last synced: 4 months ago
JSON representation

Welcome to the STM32 Traffic Light Control System Project! πŸ› οΈ In this project, we’re building a fully-featured traffic light simulation for a crossroad, complete with customizable timing and interactive controls! Let’s get started! πŸ’‘

Awesome Lists containing this project

README

          

# 🚦 STM32 Traffic Light Control System 🌈

Welcome to the **STM32 Traffic Light Control System Project**! πŸ› οΈ In this project, we’re building a fully-featured traffic light simulation for a crossroad, complete with customizable timing and interactive controls! Let’s get started! πŸ’‘

## 🌐 Specifications
- **πŸ’‘ LEDs:** 12 total β€” 4 Red πŸ”΄, 4 Amber 🟠, 4 Green 🟒
- **πŸ–₯️ 7-Segment Displays:** 4 total β€” 2 per road for time display ⏳
- **πŸŽ›οΈ Buttons:**
- Mode Selection πŸŽ‰
- Time Adjustment ⏱️
- Value Confirmation βœ…
- **πŸ”„ Modes:**
1. **Normal Mode:** Traffic lights operate automatically πŸš—
2. **Modify Red LED Time:** Adjust red light duration πŸ”΄
3. **Modify Amber LED Time:** Adjust amber light duration 🟠
4. **Modify Green LED Time:** Adjust green light duration 🟒

---

## πŸ“ Exercises Breakdown

### 🧠 Exercise 1: Sketch an FSM
**🎯 Objective:** Design a **Finite State Machine (FSM)** to map out system behavior.

### πŸ”§ Exercise 2: Proteus Schematic
**🎯 Objective:** Draw the full **Proteus schematic** for the traffic light system.

### πŸ› οΈ Exercise 3: Create STM32 Project
**🎯 Objective:**
- Set up an STM32 project in **CubeIDE**.
- Map pins according to the **Proteus schematic**.
- Configure a **10ms timer interrupt** ⏱️.

### βš™οΈ Exercise 4: Modify Timer Parameters
**🎯 Objective:** Fine-tune the timer to allow flexible **interrupt duration (1ms - 100ms)** without affecting overall system behavior.

### πŸŽ‰ Exercise 5: Button Debouncing
**🎯 Objective:**
- Add **input reading** and **output display** modules.
- Implement **button debouncing**.
- Ensure **mode increases** on the first button press.

### πŸ–₯️ Exercise 6: Displaying Modes
**🎯 Objective:**
- Show the current **mode on 7-segment displays**.
- Control **LED blinking behavior** based on the selected mode.

### πŸ”΄ Exercise 7: Modify Red LED Duration
**🎯 Objective:**
- Use the second button to **increase red LED time**.
- Use the third button to **confirm the red LED duration**.

### 🟠 Exercise 8: Modify Amber LED Duration
**🎯 Objective:**
- Use the second button to **increase amber LED time**.
- Use the third button to **confirm the amber LED duration**.

### 🟒 Exercise 9: Modify Green LED Duration
**🎯 Objective:**
- Use the second button to **increase green LED time**.
- Use the third button to **confirm the green LED duration**.

### πŸš€ Exercise 10: Final Integration
**🎯 Objective:**
- Combine all previous exercises into a **complete traffic light system**.
- Create a **video demo** showing all features.
- Submit the **final report and code**. πŸ“πŸ’»

---

πŸ› οΈ **How to Use:**
1. **πŸ“₯ Clone this repository.**
2. **πŸ–₯️ Open the Proteus simulation files.**
3. **⚑ Flash the STM32 code onto your board.**
4. **πŸŽ‰ Enjoy controlling and testing the traffic light system!**

πŸ‘₯ **Contributors:**
- Your Name Beckversync

πŸ“ **License:**
HCMUT