
Witam! Przedstawiam projekt uniwersalnego sterownika kotłowni. Układ w założeniach ma być maksymalnie uniwersalny i posiadać różne funkcje przydatne w realizacji projektu automatyki domowej. Podstawową funkcją ma być sterowanie urządzeniami małej kotłowni (kocioł, panel słoneczny, pompy, CWU, podłogówka). Sterowanie funkcjami układu ma się odbywać przez dedykowaną magistralę (preferencyjnie RS485, ale można dowolną). Sterowanie urządzeniami kotłowni poprzez magistrale eBUS (kotły Vaillant) i GeniBUS (pompy elektroniczne Grundfoss). Rola komputera ogranicza się tylko do wygodnego interfejsu użytkownika, w którym wybiera się ustawienia, których wprowadzenie za pomocą prostego interfejsu urządzenia jest niewygodne. Można w ten sposób też zrobić np. backup ustawień. Samo urządzenie posiada interfejs komunikacji z użytkownikiem – kolorowy graficzny LCD + enkoder do wyboru ustawień. Założeniem było, aby całość mieściła się w standardowej obudowie na szynę DIN. Przy konieczności wykorzystania większej ilości IO (np. wiecej urządzeń 230V) łatwe rozszerzenie układu o proste płytki ekspanderów – też na szynę DIN.
Opis konstrukcji:
- serce to procesor ATMega128 taktowany zegarem 16MHz,
- zegar RTC oparty na układzie PCF8563, podtrzymywanie za pomocą SuperCap,
- 2x interfejs RS485,
- 1x interfejs RS232 (z konwerterem poziomów),
- 6x DAC (6 bitów, 0-10V),
- dodatkowo 2 wolne miejsca na pamięć I2C (obsługiwane są pamięci FRAM i EEPROM) – mogą przechowywać logi urządzenia,
- 8xADC (10 bitowe) – obsługa termometrów analogowych, np. LM35,
- 1x 1-wire – obsługa m.in. termometrów DS18B20 i pochodnych, zasilanie zabezpieczone bezpiecznikiem polimerowym 0,5A,
- 1x wyjście PWM optoizolowane – np. do sterowania kotłem,
- 8 x wyjście 230V – na zdjęciu nie są wlutowane triaki, sygnalizacja włączenia na płytce za pomocą LED, wspólne zabezpieczenie przeciążeniowe bezpiecznikiem rurkowym,
- 1x wyjście rozszerzenia – wyprowadziłem na nie główne sygnały – I2C, dodatkowe ADC i DAC, napięcia zasilające do dodatkowych modułów i pare linii IO do ogólnego użycia,
- slot do podłączenia płytki interfejsu LCD i enkodera (opis poniżej),
- slot JTAG do programowania i debuggowania,
- zasilanie – 10-24V – 5V do zasilania części cyfrowej otrzymywane jest z przetwornicy impulsowej, 10V do zasilania DAC ze stabilizatora liniowego (możliwość sterowania nim on/off dla oszczędzania energii). Zasilanie zabezpieczone bezpiecznikiem polimerowym, możliwość zasilania z gniazda lub szyny eBUS stosowanej do komunikacji z kotłami.
Płytka sterownika LCD:
- wszystko co niezbędne do podłączenia LCD z S65 (132*176px, 64k kolorów) + enkodera:
- przetwornica sterowana z PWM do podświetlenia LED – napięcie wyjściowe jest kontrolowane przez procesor – możliwość regulacji intensywności i wyłączenia dla oszczędzania energii
- LDO 5V0->3V0 do zasilania LCD – napięcie można wyłączyć dla oszczędzania energii
- konwerter poziomów 5V->3V jako interfejs pomiędzy płytą główną a LCD (aktywny, na 74LVC125)
- gniazdo do podłączenia enkodera cyfrowego z funkcją przycisku
Płytkę LCD montuje się „na grzbiecie” płyty głównej, całość pasuje do obudowy DIN. Istnieje możliwość zmiany płytki w celu dostosowania do innego LCD.
Podsumowanie: urządzenie w 100% spełniło moje założenia, jednak nie ustrzegłem się małych błędów. Np. gniazdo JTAG umieściłem pod płytką LCD, bardzo trudno więc podłączyć jednocześnie płytkę LCD i JTAG, trochę mało jest też miejsca na kondensator filtrujący zasilanie. Zapomniałem też o interfejsie termopary dla monitorowania np. temperatury spalin w kominie. Błędy te poprawie w PCB 3.0.
Z uruchomieniem miałem ciekawy problem – po zmontowaniu zasilacza i sprawdzeniu napięć wlutowałem procesor, podłączyłem JTAG i… zonk - brak komunikacji. Po 1000-krotnym sprawdzeniu połączeń znalazłem przyczynę, która okazała się być wredna i perfidna – oznaczenie pinu 1 na chipie. Na ATMedze sa dwa większe i jedno mniejsze kółko na obudowie. Błędnie zasugerowałem się większym i orientacja napisu z oznaczeniem chipu – w efekcie wlutowałem go przekręcony o 90 stopni. Po tym reszta poszła z górki. Program sterujący napisałem dla przejrzystości w C++, do tego zrobiłem całe zorientowane obiektowo GUI – na ekranie wyświetlane są okna, przyciski, slidery itd. Także sterowanie w pełni okienkowe. Ta część zajęła najwięcej czasu.
Koszty – płytki ok. 50zł, LCD ok. 40zł, reszta części nie więcej niż 150zł, całość myślę, że zamknęła się w 250zł.



Czekam na komentarze i sugestie co jeszcze byłoby potrzebne w takim urządzeniu.
Cool? Ranking DIY