This is an old revision of the document!
Traffic light controller
Introducere
Scopul proiectului este de a crea un semafor temporizat pentru pietoni si masini
Temporizarea se va face la apasarea unui buton de catre pieton, culorile semafoarelor inversandu-se dupa apasare
De asemenea, un senzor analogic de temperatura va masura temperatura ambientala pentru a putea mai apoi micsora temporizarea in cazul in care temperatura scade sub un anumit prag.
Descriere generală
Proiectul presupune implementarea unui semafor temporizat pentru pietoni si unul pentru masini. In momentul in care un pieton apasa butonul, acesta declanseaza o intrerupere in care este tratata schimbarea culorii semafoarelor (atat pentru masini, cat si pentru pietoni). De asemenea, presupune utilizarea unui senzor de temperatura care in cazul in care este prea frig afara, timpul de asteptare pentru pietoni sa fie mai mic. Daca senzorul de temperatura inregistreaza o valoare sub un anumit prag, atunci timpul de asteptare pentru pietoni este micsorat la 2 secunde, altfel va ramane timpul setat in mod obisnuit, de 5 secunde (am setat timpii atat de mici doar pentru a nu astepta prea mult in cadrul testarii).
Schema bloc:
Hardware Design
Lista piese:
Arduino UNO
Breadboard
Senzor analogic temperatura LM35
Push button
6x LED RGB (2x rosu, 2x galben, 2x verde)
6x rezistenta 220Ω
1x rezistenta 10kΩ
Fire tata-tata, mama-tata
Schema circuit:
Schema electrica:
Software Design
Descrierea codului aplicaţiei (firmware):
Mediul de dezvoltare pe care l-am utilizat a fost Arduino IDE. De asemenea, am utilizat https://webwhiteboard.com/ pentru a desena schema de stari si tranzitii.
Am folosit, de asemenea, cunostinte din urmatoarele laboratoare de PM:
Laboratorul 2: Întreruperi hardware (pentru butonul pe care il apasa pietonul)
Laboratorul 3: Timere. PWM (pentru a temporiza starile in care se afla LED-urile si cand ar trebui sa se faca tranzitia pe o alta stare)
Laboratorul 4: ADC (pentru a citi valoarea senzorului analogic de temperatura si a o transforma din mV in °C)
Design si mod de functionare:
Initializari:
inainte de toate, am initializat 6 variabile pentru fiecare LED in parte, fiecareia corespunzandu-i cate un pin digital de pe placuta Arduino
am initializat si o variabila pentru senzor cu numarul pinului analogic la care senzorul este conectat
Schema de stari si tranzitii:
Rezultate Obţinute
Concluzii
A fost un proiect interesant, pentru mine laboratorul de PM fiind prima data cand am interactionat cu Arduino si cu partea de hardware in general. Ma bucur ca am inteles cum se poate construi un proiect software-hardware si ca am acumulat o multime de cunostinte noi despre good/bad practices cand vine vorba de a scrie cod pe o placuta hardware. Imi place ce a iesit in cele din urma, consider ca este un proiect care rezuma bine semestrul acesta la PM si care chiar s-ar putea implementa in realitate, nefiind ceva foarte complicat si devenind chiar util pentru pietoni in conditii de vreme neprielnica.
Download
Jurnal
3 mai: alegere tema proiect
5 mai: documentatie initiala
17 mai: legare si testare componente hardware
21 mai: adaugare schema circuit si schema electrica
23 mai: update schema circuit si schema electrica (schimbare pin digital buton de pe pinul 12 pe pinul 2 si senzor de pe A1 pe A0)
28 mai: update documentatie: adaugare software design, videoclip, concluzii, arhiva proiect, update jurnal, bibliografie
Bibliografie/Resurse