Table of Contents

Sistem de semaforizare

Nume: Mitroi Mihnea-Cristian
Grupa: 331CA

Introducere

Proiectul constă în realizarea unui sistem de semaforizare pentru o intersecție în cruce, ce are două direcții de circulație pentru mașini, fiecare fiind prevăzută cu o trecere pentru pietoni. Pietonii au opțiunea de a apăsa un buton pentru a semnaliza faptul că doresc să treacă, micșorand timpul de așteptare. Scopul proiectului este să asigure o circulație cât mai eficientă, atât pentru mașini prin fluidizarea traficului, cât și pentru pietoni prin eliminarea timpului de așteptare atunci când acest lucru este posibil.

Descriere generală

Pentru fiecare direcție de mers voi avea câte o plăcuță Arduino Uno ce va comanda un semafor pentru mașini (verde, galben, roșu) și un semafor pentru pietoni (verde, roșu), ce vor controla trecerea mașinilor și a pietonilor pe această direcție. Cele două plăcuțe vor comunica între ele pentru a sincroniza trecerea mașinilor în cele două direcții de mers.

Sistemul rulează în două moduri, ce sunt setate pe baza informațiilor oferite de un senzor de lumină:

Atunci când un pieton apasă butonul pentru a trece, daca semaforul său indică culoarea rosie, atunci semaforul pentru mașini se face roșu, iar cel pentru pietoni se face verde. Semafoarele ce controlează fluxul celeilalte direcții se vor schimba în mod opus, cel pentru mașini făcându-se verde, iar cel pentru pietoni roșu, facilitând trecerea mașinilor și oprind trecerea pietonilor. După apăsarea butonului pietonii vor avea un timp de așteptare pâna când vor putea apăsa din nou butonul.

În lipsa pietonilor, semafoarele permit trecerea mașinilor într-o direcție pe o anumită perioadă, iar apoi pe cealaltă direcție.

Schema bloc

Hardware Design

Listă piese:

Schema electrică

Schemă Tinkercad

Software Design

Mediul de dezvoltare folosit în realizarea proiectului: Arduino IDE.

Descrierea codului aplicaţiei (firmware)

void setup() - inițializează culorile LED-urilor în starea inițială, apelează funcțiile de configurare pentru întreruperi, timer și ADC și configurează magistrala serială.

void loop() - verifică daca valorea luminozității permite trecerea în modul de noapte, altfel implementează logica unui automat finit cu stări ce realizează tranziții la momente de timp predefinite. Stările celor două semafoare sunt în complementaritate (atunci când un semafor este în prima parte a ciclului de tranziții, cel de-al doilea este în partea a doua, iar apoi rolurile se inversează).

Rezultate Obţinute

Concluzii

Cred că a fost o experiență plăcută și foarte utilă, mai ales că a fost primul meu proiect de hardware. A fost destul de dificil să fac ca întregul sistem să se comporte în cel mai realist mod posibil, dar în final sunt mulțumit de ceea ce am obținut.

Download

Surse sistem semaforizare

Jurnal

Bibliografie/Resurse

Datasheet ATmega328P: https://ocw.cs.pub.ro/courses/_media/pm/atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf

Biblioteca Serial: https://www.arduino.cc/reference/en/language/functions/communication/serial/

Export to PDF