Autorul poate fi contactat la adresa: alina_maria.dan@stud.acs.upb.ro
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.
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.
Listă de piese
Schemă electrică
Extra
Față de ceea ce oferă placa de bază, am adăugat:
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.
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:
Arhiva conține :