Popularny post dkradke Napisano Styczeń 13, 2019 Popularny post Udostępnij Napisano Styczeń 13, 2019 (edytowany) Kolega modernizując u siebie w mieszkaniu system ogrzewania poprosił mnie o wykonanie jakiegoś sterownika do pieca CO wraz ze sterowaniem dmuchawy. Tak powstał niewielki regulator, który miał mieć na celu prostotę i czytelność. Główne elementy użyte do budowy sterownika to: LCD 2x16 HD44780 ATMEGA8 - zastosowany procesor DS18B20 - czujnik mierzący temperaturę na piecu przekaźnik na 5V taki jak tutaj: przekaźnik Głównym zadaniem jest uruchamianie pompy obiegowej na podstawie zadanej temperatury na piecu. Dodatkową funkcją jest tryb rozpalania, który w początkowej fazie uruchamia dmuchawę. Jest to bardzo przydatna opcja, przyspieszająca proces rozpalania w piecu. Sterowanie jest bardzo proste, odbywa się z wykorzystaniem tylko trzech przycisków. W podstawowym widoku regulujemy zadaną temperaturę na piecu, która decyduje o tym czy pompa ma zacząć pracować czy nie. Regulator jest prostą nastawą z histerezą. Po wejściu w menu możemy dodatkowo zmienić: temperaturę wyłączenia dmuchawy. Jeżeli piec jest zimny i włączymy opcję rozpalania to po osiągnięciu już stosunkowo niewielkiej temperatury dmuchawa zostanie wyłączona histerezę pracy regulatora maksymalne czasy pracy pompy i dmuchawy Wszystko zostało zamknięte w obudowie natynkowej, a sterownik umieszczony obok pieca w pomieszczeniu gospodarczym. Układ składa się z dwóch płytek rozdzielając część wysokiego napięcia i sterowania. Zdecydowałem się na umieszczenie kompletnego zasilania w urządzeniu, transformator, bezpiecznik i kilka dodatkowych elementów. Powodem tego było to, że sterownik jest używany przez kogoś innego a dołączany zasilacz może się zgubić i wtedy nie mam kontroli na tym jaki zamiennik zostanie użyty. Tutaj jest pokazany schemat i wzór płytki: Płytka została wykonana w domowych warunkach metodą żelazkową. Dla poprawy czytelności wykorzystałem możliwość definiowania własnych znaków co pozwoliło uzyskać duże cyfry widoczne z daleka. Niżej pokazuje jak uzyskać takie efekt. - najpierw musimy zdefiniować poszczególne elementy cyfr i ładujemy je do pamięci wyświetlacza uint8_t BigDigitDefChar[][8] = { {15,7,32,32,32,32,3,7}, {32,32,32,32,32,32,7,15}, {28,30,30,30,30,30,30,28}, {7,15,15,15,15,15,15,7}, {31,31,32,32,32,32,32,32}, {32,32,32,32,32,32,31,31}, {31,31,32,32,32,32,31,31}, {30,28,32,32,32,32,24,28} }; for(uint8_t i=0;i<8;i++) lcd_defchar(i,BigDigitDefChar[i]); - następnie tworzymy tablicę która poskleja nam te segmenty w cyfry char* BigDigit[][2]={ {"\x83\x84\x82","\x83\x85\x82"}, //0 {" \x82"," \x82"}, //1 {"\x80\x86\x82","\x83\x85\x85"}, //2 {"\x80\x86\x82","\x81\x85\x82"}, //3 {"\x83\x85\x82"," \x82"}, //4 {"\x83\x86\x87","\x81\x85\x82"}, //5 {"\x83\x86\x87","\x83\x85\x82"}, //6 {"\x83\x84\x82"," \x82"}, //7 {"\x83\x86\x82","\x83\x85\x82"}, //8 {"\x83\x86\x82","\x81\x85\x82"} //9 }; - teraz już tylko wystarczy użyć odpowiedniej funkcji do wyświetlania. Funkcja ta korzysta z obsługi R/W i odczytuje stan busy flag co pozwala na odczytanie pozycji kursora. Jeśli ktoś będzie chciał podłączyć R/W do GND to musi przerobić tą funkcję tak aby przekazać do niej pozycję kursora void lcd_big_int(int val) { uint8_t pp,x,y; char bufor[17]; char *wsk=itoa(val, bufor, 10); //zamieniamy całą liczbę na pojedyncze znaki ACSII np. 1234 -> '1','2','3','4' register uint8_t znak; while ( (znak=*(wsk++)) ) //pętla jest powtarzana po wszystkich indeksach tablicy bufor, aż napotka '\0' { pp = check_BF() & 0b01111111; //odczytujemy aktualną pozycję kursora - busy flag wyświetlacza y = pp & 0xF0; //wyodrębniamy nr wiersza x = pp & 0x0F; //wyodrębniamy pozycję x znak -= 0x30; //zamieniamy kod ascii na rzeczywistą wartość dziesiętną np '7' -> 7; będzie to nasz indeks do tablicy lcd_str(BigDigit[znak][0]); //ładujemy na wyświetlacz górną część cyfry lcd_write_cmd( (0x80 + y + 0x40 + x) ); //wracamy kursorem na domyślną pozycję x, ale o jeden wiersz niżej lcd_str(BigDigit[znak][1]); //ładujemy na wyświetlacz dolną część cyfry lcd_write_cmd( (0x80 + y + x + 0x03) ); //ustawiamy kursor zaraz za cyfrą w wierszu domyślnym, czyli takim w którym wywołano funkcję } } uint8_t check_BF(void) { CLR_RS; return _lcd_read_byte(); } Jest to prosty sposób na bardzo fajne wyświetlanie liczb, które są widoczne z daleka. Edytowano Styczeń 16, 2019 przez Treker Poprawiłem formatowanie. 4 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Styczeń 16, 2019 Udostępnij Styczeń 16, 2019 @dkradke, właśnie zaakceptowałem opis. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum 😉 Cytuj Link do komentarza Share on other sites More sharing options...
mmuha Styczeń 17, 2019 Udostępnij Styczeń 17, 2019 Bardzo fajne rozwiązanie z tymi dużymi cyframi. A jak przymocowałeś płytkę z wyświetlaczem do przedniego panelu? Czy jest przykręcona? I jeszcze mam pytanie o ten nadruk na frontowym panelu - na czym to jest zrobione - bo pewnie musi być nieco sztywne? 2 Cytuj Link do komentarza Share on other sites More sharing options...
Popularny post dkradke Styczeń 17, 2019 Autor tematu Popularny post Udostępnij Styczeń 17, 2019 Na zdjęciu gdzie jest LCD widać wystające śruby M3, przykleiłem je do przedniego panelu jakimś mocniejszym klejem. Płytkę można zdemontować odkręcając nakrętki. Wszystko jest w pełni rozbieralne. Przedni panel to zwykły wydruk na papierze i zalaminowane, przyciski wystają minimalnie ponad plastik obudowy, tak że ten nadruk fajnie się opiera o nie, efekt trochę jak przy membranowych przyciskach. 3 Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
miastek Czerwiec 6, 2021 Udostępnij Czerwiec 6, 2021 Witam, zainteresował mnie temat sterownika. W tej chwili korzystam z fabrycznego dołączonego do pieca, lecz bardzo mi brakuje komunikacji z Home Assistant. Zastanawiam się nad zbudowaniem sterownika opartego o rozwiązanie ESP32 i oprogramowanie ESPHome, tak aby łatwo było to spiąć z HomeAssistant właśnie, i oczywiście aby urządzenie również pracowało jako niezależne (kiedy np zerwie się komunikacja z serwerem HA) Niestety dopiero zaczynam przygodę z ESP32 i z HomeAssistant. Jeśli znalazły by się osoby chętne do podjęcia zbudowania sterownika wspólnymi siłami to mógłby powstać bardzo ciekawy i rozwojowy projekt. Cytuj Link do komentarza Share on other sites More sharing options...
_LM_ Czerwiec 7, 2021 Udostępnij Czerwiec 7, 2021 Fajnie wykonany projekt, podoba mi się że chciało ci się zrobić płytkę a nie zamawiać z chin. Kilka uwag co do projektu: wyjście aref powinno być zablokowane kondensatorem 100n do masy. Oraz taki niuans jeśli chodzi o oprogramowanie. Tablicę stałych można pobierać bezpośrednio z pamięci programu przez makra pgmreadbyte... Cytuj Link do komentarza Share on other sites More sharing options...
pokornom Październik 8, 2022 Udostępnij Październik 8, 2022 Wszystko super. Tylko jedna uwaga. Sterownik kotła a nie pieca! Kocioł to takie urządzenie, które podgrzewa wodę. A piec nie! Cytuj Link do komentarza Share on other sites More sharing options...
BlackJack Październik 11, 2022 Udostępnij Październik 11, 2022 WoW, poczułem się znowu jak w późnych latach 90 XX wieku, kiedy takie i nie tylko rzeczy się na ATMegach8 stawiało. Natomiast 2022, chyba można już, legalnie nazwać powrotem do przeszłości patrząc co, się dzieje na rynku, nie tylko elektroniki. Co do projektu. Spartańsko prosty, ale jak działa, to jest OK. Cytuj Link do komentarza Share on other sites More sharing options...
darex120 6 stycznia Udostępnij 6 stycznia Witam , fajny projekcik a macie może wsad do procesora Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!