Zamieszczam projekt sterownika do wymiennika ciepła i pompy wymuszającej obieg wody w centralnym ogrzewaniu. To moje pierwsze użyteczne urządzonko zainspirowane zostało wymianą zbiornika do ciepłej wody.
Całość składa się z:
wyświetlacza alfanumerycznego bardzo znanego i łatwo dostępnego: WC1602A - 25zł
Atmega8 ( taktowana wewnętrznym kwarcem 8mhz ) - 8zł
2 przekaźników HFD27 - 2*3zł
transformatora trafo TS 5/002 6V-0,8A -14zł
stabilizatora L7805 - 5zł
2 czujników temperatury - LM35 2*5zł
Buzzera 5V - 3 zł
i garści drobnych elementów
Całość kosztowała poniżej 100zł a za to nie muszę biegać do piwnicy włączać pompki za każdym razem jak potrzebuje ciepłej wody.
Jako że elektronika to tylko moje hobby i dopiero "raczkuje", opisze trywialne elementy urządzonka (które dla mnie były za każdym razem wyzwaniem
Przekaźnik:
Zasilania:
Czujnik temperatury zastosowany to LM35. Mierzy on temperaturę od -55 do 150 i jako wynik podaje napięcie 10mV na 1° C co daje np: 1v przy 100 °C
Atmega skonfigurowana tak aby pobierała napięcie odniesienia 2V (dzielnik napięcia) przy końcówce AREF.
Oprogramowanie:
W pętli głównej pobierane są dane z przetwornika i sprawdzane warunki:
WyborKanalu(0);
temp1 = (int)((float)PomiarPortu16bit() * 0.1914);
WyborKanalu(1);
temp2 = (int)((float)PomiarPortu16bit() * 0.1914);
if( (int)temp1 -(int)temp2 > WlaczPompe1 )SET_POMPA1;
if( (int)temp1 -(int)temp2 < WylaczPompe1 )CLR_POMPA1;
if( (int)temp1 > WlaczPompe2 )SET_POMPA2;
else CLR_POMPA2;
if( ((int)temp1 < AlarmPonizej) | ((int)temp1 > AlarmPowyzej) )SET_BUZER;Z braku czasu powyższy kod wygląda jak wygląda
Timer0 pełni funkcje przerwania systemowego, jest wywoływany co ok 8ms, obsługuje on klawiaturę i menu.
Menu utworzone jest zgodnie z pomysłem Dave_Masters z tematu:
Link
A to kilka fotek i film pokazujący działanie menu:
Zapraszam do skomentowania
Fajne? Ranking DIY