This shows you the differences between two versions of the page.
pm:prj2023:alexau:pet-water-fountain [2023/05/26 23:47] felicia.gorincioi [Software Design] |
pm:prj2023:alexau:pet-water-fountain [2023/05/28 23:38] (current) felicia.gorincioi [Download] |
||
---|---|---|---|
Line 33: | Line 33: | ||
* Senzor ultrasonic | * Senzor ultrasonic | ||
* LCD | * LCD | ||
+ | * Modul l298n | ||
+ | * Baterie 9V | ||
== Schema Arduino == | == Schema Arduino == | ||
Line 41: | Line 43: | ||
== Biblioteci utilizate == | == Biblioteci utilizate == | ||
+ | * #include <Wire.h> | ||
+ | * #include <LiquidCrystal_I2C.h> | ||
+ | |||
+ | == Implementare in Arduino == | ||
+ | * Funcția setup() realizează inițializarea și configurarea inițială a sistemului. Aceasta include inițializarea LCD-ului, setarea pinilor ca ieșiri sau intrări, configurarea registrelor pentru modul PWM și setarea întreruperilor. | ||
+ | * Funcția loop() rulează într-o buclă continuă și se ocupă de logica principală a programului. Aceasta măsoară distanța folosind un senzor ultrasonic și decide dacă pompa trebuie să fie pornită sau oprită în funcție de distanța măsurată și starea butonului. De asemenea, afișează mesaje corespunzătoare pe LCD. | ||
+ | * Funcția ISR(PCINT2_vect) este o rutină de tratare a întreruperilor și se activează când se produce o întrerupere pe pinul asociat butonului. Aceasta verifică starea butonului și comută starea pompei în consecință. | ||
+ | * Funcția pump_is_on() setează valoarea corespunzătoare în registrul OCR0B pentru a porni pompa. | ||
+ | * Funcția pump_is_off() setează valoarea corespunzătoare în registrul OCR0B pentru a opri pompa. | ||
+ | * Funcția measureDistance() realizează măsurarea distanței folosind un senzor ultrasonic. Aceasta declanșează senzorul, măsoară durata pulsului de revenire și calculează distanța corespunzătoare în centimetri. | ||
+ | * Funcția print_on_lcd() setează cursorul LCD la poziția corespunzătoare și afișează mesajul "Oski is drinking" pe LCD. | ||
+ | * Funcția setup_interrupts() dezactivează întreruperile, configurează pinul asociat butonului ca intrare, activează rezistența de pull-up pentru buton, activează întreruperile PCINT2 și configurează întreruperile pentru buton. Apoi, re-activează întreruperile. | ||
+ | |||
+ | |||
- | #include <Wire.h> | ||
- | #include <LiquidCrystal_I2C.h> | ||
Line 52: | Line 66: | ||
{{ :pm:prj2023:alexau:pwf_fg.jpg?300 }} | {{ :pm:prj2023:alexau:pwf_fg.jpg?300 }} | ||
+ | |||
+ | == Motanul fericit == | ||
+ | |||
+ | {{ :pm:prj2023:alexau:oski_drinking_water.jpeg?300 }} | ||
+ | |||
+ | == Sistemul in forma finala == | ||
+ | {{ :pm:prj2023:alexau:sistemfinal_fg.jpeg?300 }} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | Ideea de proiect a venit practic instant. Știam că vreau o astfel de fântână automată pentru motanul meu, dar îmi făceam griji că proiectul va fi prea dificil. Din fericire, nu a fost imposibil :-D |
- | <note warning> | + | Pe lângă aspectele tehnice, am dezvoltat și abilități practice precum montarea și conectarea componentelor hardware și depanarea problemelor întâmpinate pe parcursul dezvoltării. |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | Proiectul la PM a fost o experiență valoroasă, în care am dobândit cunoștințe tehnice și abilități practice. Am reușit să integrez atât componentele hardware, cât și software-ul pentru a crea un sistem funcțional și util. |
- | </note> | + | |
- | ===== Jurnal ===== | + | Totuși, nu știu cât este de safe să las motanul cu această fântână în absența mea, din motiv că nu am reușit să izolez eficient circuitul în așa mod încât să nu pătrundă apă. Cu toate acestea, a fost mult mai fun să fac proiectul pentru că produsul final este ceva ce ar avea aplicabilitate în viața mea. |
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
- | ===== Bibliografie/Resurse ===== | + | |
+ | |||
+ | |||
+ | |||
+ | ===== Download ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | Arhiva ce conține codul sursa, README, video cu funcționalitatea sistemului: |
+ | * {{ :pm:prj2023:alexau:gorincioi_felicia_proiectpm.zip }} | ||
</note> | </note> | ||
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | |