This shows you the differences between two versions of the page.
pm:prj2021:abirlica:sistem_de_iluminare [2021/04/30 18:38] daniel.baruta |
pm:prj2021:abirlica:sistem_de_iluminare [2021/05/30 22:37] (current) daniel.baruta |
||
---|---|---|---|
Line 5: | Line 5: | ||
===== 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 15 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. | + | 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|}} | ||
- | {{:pm:prj2021:abirlica:cool_turing.png?200|}} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Lista de piese: | Lista de piese: | ||
- | * Arduino | + | * Arduino UNO |
* 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 | ||