This is an old revision of the document!


Lepinzean Stefan - Dozator automat pentru bauturi

Introducere

Prezentarea pe scurt a proiectului vostru:

  • Scopul proiectului este de a implementa un prototip de dozator care iti umple automat paharul cu o bautura.
  • Folosind senzori de proximitate si de greutate, tot ce trebuie sa faca utilizatorul este sa puna paharul in zona indicata si dozatorul se va ocupa de umplerea lui fara sa trebuiasca orice alta interactiune cu aparatul. Desi dozatorul va avea un ecran LCD si butoane pentru a putea modifca setarile predefinite, odata alese utilizatorul nu mai trebuie sa interactioneze cu aceasta interfata, totul fiind automat. Folosind senzorii de proximitate, aparatul va aproxima inaltimea paharului, astfel incat pahare de diferite marimi pot fi folosite fara a fi nevoie ca setarile sa fie schimbate.
  • Ideea acestui proiect a pornit de la dozatoarele comerciale pentru bauturi. M-am gandit ca ar fi interesant sa realizez un aparat care in loc sa umple un pahar cu o cantitate finita de lichid, cantitatea lichidului sa fie proportionala cu marimea paharului (Ex. vreau un pahar pe jumatate plin) iar aceasta actiune sa fie realizata indiferent de cat de mare este paharul.
  • Utilitatea produsului vine din simplitatea folosirii lui. De exemplu cand vreau un pahar de suc nu imi pasa neaparat sa am o cantitate exacta de suc in pahar, vreau ca paharul sa fie 80% plin. Acest dozator este gandit sa satisfaca aceasta problema.

Descriere generală

Lista pieselor:

  • Microcontroller Robotlinking Uno 3 (Cardituino)
  • Ecran (LCD1602) - Pe ecran se vor afisa mesaje legate de starea actuala a dispozitivului sau setarile selectate.
  • Butoane - Impreuna cu ecranul vor forma interfata prin care utilizatorul schimba setarile dispozitivului.
  • Senzor ultrasonic (HC-SR04) - Va fi atasat deasupra zonei unde se pune paharul, pentru a putea masura nivelul lichidului.
  • Celula de sarcina de 1 kg + modul ADC (HX711) - Masoara greutatea paharului pentru a ne asigura ca este plasat corespunzator.
  • Bara senzori IR (QTR-MD-16A) + Multiplexor Analogic - Vom masura inaltimea paharului dupa cat de multi senzori IR sunt activati.
  • Pompa pentru lichid
  • Adaptor alimentare 12V

Hardware Design

Aici puneţi tot ce ţine de hardware design:

Schema electrica: proiect_pm_v15.pdf

In schema respectiva am afisat cum sunt conectate componentele direct la pinii microcontrolerului Atmega328P din Arduino. Aceasta este schema completa a placutei Arduino, din care am folosit doar ilustratia microcontrolerului si a porturilor pentru jumpere: Arduino Uno R3

Componentele sunt conectate intre ele in modul urmator:

  • Senzorul ultrasonic este conectat la pinii PD3 si PB0, acesta avand nevoie doar de un pin de trigger si un pin care sa astepte semnalul de echo pentru a calcula diferenta de timp. Motivul pentru care folosesc PB0 pentru echo este ca acesta este pinul ICP1 (input capture pin), asa pot calcula cu acuratete mai mare distanta. Acesta este amplasat fix deasupra zonei unde va sta paharul pentru a putea masura nivelul lichidului din pahar.
  • Senzorul de greutate (celula de sarcina) este conectat mai intai la un ADC HX711 care transforma tensiunea foarte mica generata de celula intr-un semnal digital care este transmis intr-un mod serial pe pinul PD5 (PD4 va fi pinul care genereaza semnalul de ceas). Desi protoclul de comunicare este similar cu un fel de I2C, nu este la fel deoarece nu foloseste adresare…
  • Motorul este alimentat direct de la sursa de 12V. Pinul PD6 are rolul de a produce semnalul PWM care trece printr-un tranzistor N-MOS pentru a comanda motorul.
  • Bara de 16 senzori IR are toate iesirile conectate la un multiplexor analogic, iar pinii de CTRL EVEN/ODD sunt ambii conectati la pinul PB5 al microcontrolerului, astfel toti senzorii sunt activati si dezactivati simultan. Pinii PB[1:4] sunt folositi pentru a selecta ce senzor intra in multiplexor, iar semnalul analogic este transmis catre pinul PC0 pentru a fi convertit in ADC-ul intern.
  • Ecranul LCD1602 este conectat direct cu un modul care face conversia intre comunicarea paralela pe care o accepta ecranul ecranul in protocol I2C, acest modul este conectat la pinii PC4/PC5 care sunt designati pe microcontroler drept pinii SDA/SCL.
  • Cele 4 butoane sunt legate fiecare la un circuit RC separat cu scopul de a filtra bouncing-ul. Aici este list cu ce reprezinta fiecare buton:
    • Stop/Setting (conectat la pinul PD7) - are scopul general de a deschide meniul de setari pentru dozator, insa in timp ce un pahar este umplut, el poate fi folosit pentru a opri pompa.
    • Select (conectat la pinul PC1) - acest buton este folosit pentru a selecta valoarea curenta pentru a o putea modifica (de exemplu sa schimbi cat de plin vrei sa fie paharul).
    • Down/Up (conectati la pinul PC2 respectiv PC3) - folosite pentru a schimba valoarea curenta din setari.

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

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.

Jurnal

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

Am inceput proiectul cu aceste piese si cu un plan de atac pe jumatate gandit (dovada ca a trebuit sa schimb tranzistorul acela si rezistorii pentru ca nu incapeau pe pcb-ul final…).

Drept carcasa am gasit o cafetiera pe Altex si am distrus-o complet ca sa imi incapa toate componentele in ea. Am inceput cu partea de sus unde trebuiau puse butoanele si displayul LCD. am desprins capsula unde intra displayul original, au fost necesare modificari grele asupra ei intrucat displayul meu este dublu fata de cel gandit pentru aceasta cafetiera. Am scos toata electronica de era inauntru si am adaugat butoanele, lipite impreuna cu filtrele RC pe o placuta PCB de dezvoltare (pe care am luat-o la bomfaier ca sa incapa).

Apoi am inceput sa fac circuitul pentru pompa, care si acela a durat mai mult sa il fac decat as vrea sa recunosc…

Dupa multe lipituri (si multe degete parlite) am inceput sa prind incredere in letcon si m-am apucat sa lipesc si resul senzorilor si sa ii conectez pe placuta de dezvoltare care face legatura cu Arduino (Tin sa atentionez ca poza de mai jos are impact puternic emotional daca aveti OCD, o sa ma pun mai tarziu sa aranjez toate firele sa arate uman).

Bibliografie/Resurse

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

pm/prj2025/vstoica/stefan.lepinzean.1747812862.txt.gz · Last modified: 2025/05/21 10:34 by stefan.lepinzean
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