This shows you the differences between two versions of the page.
pm:prj2021:abirlica:sistem_de_iluminare [2021/04/26 17:42] daniel.baruta created |
pm:prj2021:abirlica:sistem_de_iluminare [2021/05/30 22:37] (current) daniel.baruta |
||
---|---|---|---|
Line 2: | Line 2: | ||
**Autor**: Baruta Daniel Mihail | **Autor**: Baruta Daniel Mihail | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Sistem de iluminare autonom bazat pe un senzor de miscare si unul de intensitate luminoasa. La detectarea unei persoane acesta va aprinde un led doar daca intensitatea luminoasa este sub un anumit nivel. Un timer va opri led-ul dupa 15 secunde daca senzorul nu mai detecteaza miscare. Poate fi comandat prin infrarosu cu urmatoarele comenzi: sa ramana mereu aprins, sau mereu stins. | + | Sistem de iluminare autonom bazat pe un senzor de miscare si unul de intensitate luminoasa. |
===== Descriere Generala ===== | ===== Descriere Generala ===== | ||
+ | La detectarea unei persoane acesta va aprinde un led doar daca intensitatea luminoasa este sub un anumit nivel. Un timer va opri led-ul dupa 7 secunde daca senzorul nu mai detecteaza miscare. Poate fi comandat prin infrarosu cu urmatoarele comenzi: sa ramana mereu aprins, sau mereu stins, mareste/micsoreaza intensitatea luminoasa a led-ului. | ||
+ | |||
+ | == Schema Bloc == | ||
+ | |||
+ | {{:pm:prj2021:abirlica:pm_diagrama.png?400|}} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Lista de piese: | Lista de piese: | ||
- | Arduino, breadboard, senzor miscare, senzor lumina, fire, led-uri, IR receiver | + | * Arduino UNO |
- | * Arduino | + | |
* Breadboard | * Breadboard | ||
- | * Senzor de miscare | + | * Senzor de miscare (PIR) |
- | * Senzor de lumina | + | * Senzor de lumina (Fotorezistor) |
- | * Receiver infrarosu | + | * Receptor infrarosu |
+ | * Telecomanda infrarosu | ||
* Fire jumper | * Fire jumper | ||
+ | * Rezistenta | ||
* LED-uri | * LED-uri | ||
+ | |||
+ | == Schema Tinkercad == | ||
+ | |||
+ | {{:pm:prj2021:abirlica:cool_turing.png?600|}} | ||
+ | |||
+ | == Schema Electrica Eagle == | ||
+ | |||
+ | {{:pm:prj2021:abirlica:schema_electrica_sistem_iluminare.png?600|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | == Mediu de Dezvoltare == | ||
- | ===== Rezultate Obtinure ===== | + | Pentru mediul de dezvoltare am ales Arduino IDE si Tinkercad, unde in cel din urma am simulat initial intreg proiectul. |
+ | |||
+ | **main.ino**: | ||
+ | * **bool isDark()** - printr-un pin analog se afla teensiunea pe fotorezistenta, iar daca aceasta este peste o anumita valoare inseamna ca este intuneric. De aseamenea flag-ul shouldLight este implicat. | ||
+ | * **void checkMotion()** - se verifica daca pinul digital corespunzator PIR-ului este HIGH(detecteaza miscare)/LOW(nu detecteaza miscare). Aici se seteaza flag-ul shouldLight si se reseteaza timer-ul. | ||
+ | * **ISR(TIMER1_COMPA_vect)** - intrerupere pentru timer-ul care opreste lumina | ||
+ | * **void setup()** - se seteaza timer0 pentru fast pwm, timer1 pentru contorizarea duratei de iluminare, se porneste receiver-ul de IR si USART-ul | ||
+ | * **void loop()** - pasii sunt urmatorii: se verifica daca se detecteaza miscare, se executa comenzile de la IR daca exista, se seteaza dutyCycle-ul pentru LED in functie de modul de iluminare | ||
+ | |||
+ | A fost nevoie sa hardcodez tastele venite de la telecomanda, pentru asta am folosit urmatoarele define-uri: | ||
+ | |||
+ | <html><pre class="code"> | ||
+ | #define VOLUME_UP 0xE0E0E01F | ||
+ | #define VOLUME_DOWN 0xE0E0D02F | ||
+ | #define ON 0xE0E020DF | ||
+ | #define OFF 0xE0E0A05F | ||
+ | #define NORMAL 0xE0E08877 | ||
+ | </pre></html> | ||
+ | |||
+ | == Biblioteci == | ||
+ | IRemote - pentru interactiunea telecomanda - senzor IR | ||
+ | |||
+ | |||
+ | == Organigrama == | ||
+ | |||
+ | {{:pm:prj2021:abirlica:pm_organigrama_sistem_iluminare.png?400|}} | ||
+ | |||
+ | ===== Rezultate ===== | ||
+ | |||
+ | {{:pm:prj2021:abirlica:poza_sistem_iluminare.jpg?600|}} | ||
+ | |||
+ | Demo: https://drive.google.com/file/d/1JiH8TtBK9nNhU0lMdJn_xoguoG8aJpXA/view?usp=sharing | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Am reusit sa implementez toata functionalitatea pe care le-am descris, astfel sistemul de iluminare reuseste ceea ce isi propune, si anume sa fie capabil sa preia comenzi prin infrarosu schimband modul de iluminare. De asemnea este capabil sa detecteze o persoana si sa aprinda sau nu lumina in functie de intensitatea luminoasa ambientala. | ||
+ | |||
+ | O parte dificila din implementare a fost reprezentata de configurarea PIR-ului. Implementarea software a fost rapida, necesitand consultarea ocazionala cu laboratoarele sau datasheet-ul pentru atmega. | ||
+ | |||
===== Download ===== | ===== Download ===== | ||
+ | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||
+ | Cod sursa: {{:pm:prj2021:abirlica:336cb_baruta_daniel_mihail_sistem_de_iluminare.zip|}} | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | https://www.makerguides.com/hc-sr501-arduino-tutorial/ | ||
+ | |||
+ | https://www.tinkercad.com/dashboard | ||
+ | https://ocw.cs.pub.ro/courses/_media/pm/atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf | ||