This shows you the differences between two versions of the page.
pm:prj2022:avaduva:matei.barbu1905 [2022/04/20 11:34] matei.barbu1905 |
pm:prj2022:avaduva:matei.barbu1905 [2022/06/02 15:26] (current) matei.barbu1905 |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== MusicClock ====== | + | ====== MotorHelper ====== |
- | O cutie neagră care după selecția unui mod poate prinde post de radio, cânta o melodie de pe un card SD și afișa date despre zi/oră. În plus poate fi configurat ca un ceas deșteptător. +- temperatura | + | ===== Introducere ===== |
- | Interfață: | + | Proiectul constă în implementarea unui sistem de reglaj a turației unui motor în funcție de temperatura ambientală. |
- | * Două butoane rotative | + | ===== Descriere generală ===== |
- | - SELECT | + | |
- | - VOLUME | + | |
- | * Un push-button pentru MODE | + | |
- | * Radio | + | |
- | * SD Card music player | + | |
- | * Alarm Clock configuration | + | |
- | ==== Exemplu mod de funcționare ==== | + | === Funcționalitate === |
- | Dispozitivul pornește în modul CEAS. Avem pe ecran afișate informații despre zi și oră. Rotația butonului SELECT configurează luminozitatea. Apăsarea pe acest buton, ne duce în modul de configurație a timpului/datei afișate. | + | Motorul DC este conectat la pini expuși de un Arduino Nano. Acesta folosește Pulse-Width-Modulation pentru a schimba turația motorului, prin intermediul unei punți H (L293D). |
- | Apăsând pe butonul MODE putem selecta unul dintre cele 3 meniuri anterior menționate. | + | În aceiași încăpere cu motorul se află un senzor de temperatură (DHT11), iar în funcție de valoarea citită de la senzor se vor executa una din următoarele acțiuni: |
+ | * va aprinde un LED verde | ||
+ | * va aprinde un LED galben și va comanda un buzzer să atenționeze de trei | ||
+ | * va aprinde un LED roșu și va declanșa buzzerul să atenționeze încontinuu | ||
- | În modul Radio butonul select schimbă frecvența prin rotație, iar apăsarea lui caută automat următorul post de radio. În modul Alarm Clock Configuration apăsarea butonul select ne duce pe poziția orei pe care o putem schimba prin rotație. Încă o apăsare ne duce pe poziția minutului. Încă o apăsare ne duce pe poziția minutului. Încă o apăsare ne duce în meniul de configurare a sursei melodiei pentru alarmă (SD sau Radio). | + | ===== Hardware design ===== |
- | ===== Piese ===== | + | Am utilizat următoarele componente: |
+ | * [[http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf|Arduino Nano]] | ||
+ | * [[https://www.alldatasheet.com/datasheet-pdf/pdf/17881/PHILIPS/LM293D.html|L293D]] | ||
+ | * Motor DC | ||
+ | * [[https://components101.com/asset/sites/default/files/component_datasheet/2N2222%20NPN-transistor%20datasheet.PDF|2N2222]] | ||
+ | * Buzzer | ||
+ | * [[https://media.digikey.com/pdf/Data%20Sheets/Adafruit%20PDFs/DHT11_Humidity_TempSensor.pdf|DHT11]] | ||
+ | * [[https://adafru.it/4440|Ecran]] | ||
+ | * [[https://adafru.it/3295|Real-Time-Clock]] | ||
+ | * Rezistențe | ||
+ | * Cabluri | ||
+ | * LED-uri | ||
+ | * Breadboard-uri | ||
+ | |||
+ | Toate componentele sunt alimentate la 5V, direct din pinul de power al microcontrollerului. Cu toate acestea comanda și citirea se face prin intermediul piniilor GPIO, care lucrează la 3.3V. | ||
+ | |||
+ | Schemă: | ||
+ | {{ :pm:prj2022:avaduva:schematic_matei_barbu.png?600 |}} | ||
+ | |||
+ | Piese: | ||
* Microprocessor (RP2040) | * Microprocessor (RP2040) | ||
- | * [[https://ro.mouser.com/ProductDetail/474-BOB-11083|SI4703]] | + | * [[https://ro.mouser.com/ProductDetail/485-3678|I2S DAC]] |
- | * Amplificator Audio [[https://ro.mouser.com/ProductDetail/485-1712|TPA2016]] | + | * [[https://ro.mouser.com/ProductDetail/485-1712|Amplificator Audio TPA2016]] |
- | * [[https://ro.mouser.com/ProductDetail/485-377|Shaft Encoder]] | + | * [[https://ro.mouser.com/ProductDetail/485-377|Shaft Encoder]] x2 |
- | * Ecran (sau) | + | * [[https://ro.mouser.com/ProductDetail/485-4440|Ecran]] + pin headers |
- | * [[https://ro.mouser.com/ProductDetail/474-LCD-17153|1]] | + | * [[https://ro.mouser.com/ProductDetail/485-4682|SDIO Card Breakout Board]] |
- | * [[https://ro.mouser.com/ProductDetail/485-4440|2]] - I2C | + | * [[https://ro.mouser.com/ProductDetail/485-3295|Real-Time-Clock]] |
- | * [[https://ro.mouser.com/ProductDetail/485-3678|I2S DAC]] - I2C | + | * [[https://ro.mouser.com/ProductDetail/700-MAX4762EUB|Multiplexer]] |
+ | * [[https://ro.mouser.com/ProductDetail/474-BOB-11083|Radio Receiver]] | ||
+ | * [[https://ro.mouser.com/ProductDetail/474-BOB-11570|TRRS 3.55mm Jack Breakout]] | ||
* [[https://ro.mouser.com/ProductDetail/485-2165|LDO]] | * [[https://ro.mouser.com/ProductDetail/485-2165|LDO]] | ||
- | * [[https://ro.mouser.com/ProductDetail/474-BOB-13906|Multiplexor]] - I2C | ||
- | * [[https://ro.mouser.com/ProductDetail/485-4682|SDIO Card Breakout Board]] - SPI | ||
- | * Real-Time-Clock | ||
- | * intern | ||
- | * [[https://ro.mouser.com/ProductDetail/485-3295|extern]] | ||
- | * [[https://ro.mouser.com/ProductDetail/485-1609|Cablaj de test]] | ||
* jummper cables | * jummper cables | ||
* jack cable | * jack cable | ||
+ | * pin headers | ||
+ | * qwiic cable | ||
+ | * Cablaj de test | ||
+ | |||
+ | |||
+ | ===== Software Design ===== | ||
+ | |||
+ | Vezi {{ :pm:prj2022:avaduva:proiect_barbu_matei.zip }} | ||
+ | |||
+ | Am folosit doar bibliotecile Adafruit din Arduino IDE. | ||
+ | |||
+ | ===== Rezultate Obţinute ===== | ||
+ | |||
+ | {{ :pm:prj2022:avaduva:poza_barbu_matei.jpg?600 |}} | ||
+ | |||
+ | ===== Concluzii ===== | ||
+ | |||
+ | În concluzie, consumă mult mai puțin curent decât [[https://github.com/mateibarbu19/data-acquisition|fostul experiment]] ce folosea un Rasbery Pi 4B. | ||
+ | |||
+ | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> |