This is an old revision of the document!


Pet Water Fountain

Introducere

Descriere proiect:

  • Mini fântână cu apă pentru animale - atunci când senzorul detectează mișcare în apropierea fânânii, pompa va porni apa, iar pe LCD va apărea un mesaj.
  • Scopul - protejarea sănătății animalelor de companie prin asigurarea consumului de apă de calitate.
  • Ideea acestui proiect a pornit de la pasiunea motanului meu de a bea apa care curge de la robinet.
  • Proiectul este util pentru toți părinții animăluțelor care refuză să bea apă din bolul lor.

Descriere generală

Pet water fountain va fi un dispozitiv ce se va ocupa cu distribuirea apei unui animal de companie astfel:

La apasarea unui buton se va declanșa o întrerupere, iar pompa se va porni și va elibera apă prin furtun. De asemenea, voi adăuga un senzor de mișcare pentru animalul de companie astfel încât dispozitivul să pornească apa când animalul este în apropiere.

Voi atașa un LCD pe care va afișa textul “Oski is drinking”.

Hardware Design

Schema bloc

Componente

Voi folosi următoarele componente de bază, cu posibilitatea de a mai adăuga și altele pentru a realiza funcționalități noi:

  • Arduino Uno
  • Fire
  • Boton
  • Pompă apă
  • Buton
  • Senzor ultrasonic
  • LCD
  • Modul l298n
  • Baterie 9V
Schema Arduino

Software Design

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.

Rezultate Obţinute

Circuit real

pwf_fg.jpg

Motanul fericit

oski_drinking_water.jpeg

Concluzii

Download

== Arhiva == gorincioi_felicia.zip

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2023/alexau/pet-water-fountain.1685135991.txt.gz · Last modified: 2023/05/27 00:19 by felicia.gorincioi
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0