Alina-Maria DAN (78271) - BR RC

Autorul poate fi contactat la adresa: alina_maria.dan@stud.acs.upb.ro

Introducere

Aș vrea să ne gândim împreună cât de bine sună o zi de vară, cu un soare fierbinte, un aer cald care te sufocă și o băutură caldă lângă
tine…
Glumesc, căci mie nu îmi sună bine și sunt convinsă că nici ție. Amândoi ne dorim o băutură rece și niciunul dintre noi nu vrea să transporte cu el un frigider.

BR RC sau pentru cei ce nu au citit “la rece”, BeRe ReCe este o cutie mică și magică, ce îți va răci o sticlă de bere la temperatura dorită.
Nu te-am captivat încă? Oook, pentru tine, îl pot redenumi CocaCola ReCe.
Poate răci orice, tu va trebui doar să setezi temperatura la care îți dorești băutura!
De restul se ocupă el și te va ține la curent cu evoluția temperaturii, prin intermediul display-ului său LCD.

Descriere generală

diagrama_pm.jpg

Oricare dintre noi poate fi actorul, cel ce va selecta temperatura de referință până la care se va realiza răcirea cutiei magice.
Temperatura se va alege folosind două butoane, de incrementare sau decrementare a temperaturii actual setate ca referință.
În funcție de diferența dintre temperatura dorită și cea măsurată de senzorul de temperatură din interiorul cutiei, se va alege un mod de lucru
ce va asigura răcirea corespunzătoare. Răcirea va fi datorată efectului Peltier.
Microprocesorul va afișa pe ecranul LCD informații referitoare la cele două temperaturi și variația acestora.

Hardware Design

Listă de piese

  • Placă de bază și componente de bază
  • 2 X Modul Termoelectric de Racire Peltier TEC1-12706
  • Cooler JAMICON JF0510B1M, 12V(DC)
  • Cooler Sharkoon S602540P-3, 12V(DC), 170 mA
  • LCD Nokia 5110
  • Sursă 12V-3.5A
  • Linear Voltage Regulator LM-7805-CT (Vin - 12 V, Vout - 5V)
  • Voltage Regulator LP2950ACZ33 (alimentare extra 3.3V)
  • Mufă mamă alimentare 12V
  • Senzor de temperatură LM335A
  • 2 X Butoane
  • TrenchMOS tranzistor PHP45N03LT
  • Diode
  • Condesatori pentru alimentare 12V (47uF, 0.1uF)
  • Condesator pentru alimentare extra 3.3V (10uF)
  • Rezistențe (47 Kohm, 4.7 Kohm, 1 Kohm)
  • 2 X Rezistență buton (2 Kohm)
  • Fire mamă-mamă
  • Header pini tată
  • Cablaj de test, textolit 6cm X 7.5cm
  • Cablu usb de imprimantă

Schemă electrică

brrc_schema.jpg

Extra

Față de ceea ce oferă placa de bază, am adăugat:

  • Alimentare 12 V, pentru că am avut nevoie ca ventilatoarele să fie alimentate la această tensiune. Am lipit + si - ventilatoarelor pe spatele plăcuței, în punctele mufei mamă de alimentare 12 V corespunzătoare. Ele funcționează mereu.
  • Alimentare extra de 3.3V, pentru LCD-ul Nokia 5110.

Software Design

Codul a fost scris în Sublime Text, pe Ubuntu. Tot acolo am realizat și Makefile-ul, care generează fisierul main.hex în urma rulării comenzii “make”. Îl găsiți în arhiva
atașată. Pentru a încărca fișierul .hex, am trecut pe Windows 8. (A fost imposibil ca Ubuntu să îmi detecteze placuța sau Windows să îmi genereze fișierul hex.)
Am folosit arhiva de aici http://cs.curs.pub.ro/wiki/pm/tutorial/bootloader, folosind \bootloader_2015\bootloadHID.2014-03-29\gui\HIDBootFlash am testat continuu ceea ce scriam în cod. Am folosit librăria de Nokia5110, pe care au folosit-o și colegii din anii mai mari. Codul funcțiilor de Analog-to-digital converter sunt cele din laborator http://cs.curs.pub.ro/wiki/pm/lab/lab6 . Bibliotecile folosite în codul sursă sunt <avr/io.h>, <util/delay.h>, <stdlib.h>, <stdio.h>, <avr/interrupt.h>.

Senzorul analogic de temperatură a fost pus pe pinul PA0, deoarece pe portul A se află convertorul analog-digital.
Valoarea analogică citită de pe pin, am considerat-o în Volți initial. Apoi, am realizat un set mare de citiri de date de pe termometru (grade Celsius) și de pe lcd a valorii citite de senzor (Volți), am plotat aceste date și am aflat ecuația dreptei care determină dependența dintre acestea. S-a dovedit a fi cea mai precisă metodă.
Deoarece executarea while(1) era foarte rapidă, valorile senzorului nu puteau fi citite de pe lcd dacă le afișam în fiecare ciclu. Astfel, le-am afișat mai rar, afișând o dată la 100 de cicluri while, valoarea medie. Tot în ciclul în care fac scrierea pe lcd, realizez și comparația cu valoarea de referință a temperaturii și iau decizia de a porni/opri elementele Peltier.

Pe lcd am afișat 4 linii, cu funcția LCD_write_string(x , y, buffer), din bibliotecă.

Pentru butoane am folosit rezistențe de pull-up, atunci când butonul nu era apăsat pinul de intrare avea valoarea 1, iar pentru butonul apăsat acesta avea valoarea 0. Același comportament se putea obține și dacă pe pin se scria valoarea 1 (pentru input este activarea rezistențelor de pull-up) și nu se mai punea partea de rezistență pe placă.
Evenimentul de apăsare a butoanelor a fost tratat ca o întrerupere. La fiecare apăsare se modifica valoarea temperaturii de referință, dorite, cu 0.2 grade Celsius. La incrementare se aprinde led-ul LED de pe placa de bază, iar la decrementare se stinge.

Rezultate Obţinute

1brrc.jpg 2brrc.jpg 3.jpg 4.jpg 5brrc.jpg 6brrc.jpg

Concluzii

Proiectul este unul complet funcțional. Mi-a redeschis apetitul pentru partea de electronică și m-a făcut să imi doresc să continui cu astfel de idei utile pentru casă și călătorie.

Îmbunătățiri posibile:

  • Pe viitor vreau să înlocuiesc sursa de 12 V cu una mai mare, pentru a ajunge la o temperatură mai redusă (sub 0 grade Celsius) în interiorul cutiuței magice.

Download

Arhiva conține :

  • Makefile, cu care am compilat și generat main.hex pe care l-am încărcat în microcontroller.
  • Folderul Nokia5110, unde sunt fișiere header și sursă folosite pentru a scrie pe lcd.
  • Fișierul header adc.h, unde se găsesc funcțiile necesare pentru a citi o valoare analogică de pe un pin al portului A.
  • Fișierul sursă main.c, unde este implementată logica programului.
  • Schema realizată în Eagle.

336cc_dan_alina_maria_brrc.zip

Bibliografie/Resurse

pm/prj2018/aandreica/78271.txt · Last modified: 2021/04/14 17:07 (external edit)
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