Wpadł mi w ręce uszkodzony tuner TV-Sat Echostar DSB-717 i postanowiłem jakoś go wykorzystać. A właściwie nie cały, tylko płytkę z wyświetlaczami i mikrokontrolerem ATTiny2313.
Układ mierzy temperaturę w 6 punktach z wykorzystaniem czujników Dallas DS18B20 przy rozdzielaczu co na podłogówkę i grzejniki.
Mierzę temperatury:
- zasilania i powrotu z podłogówki
- zasilania i powrotu z grzejników
- zewnętrzną i wewnętrzną w pomieszczeniu
Dodatkowo spełnia role prostej automatyki:
- załącza pompę obiegową podłogówki, kiedy różnica temperatur zasilania i powrotu jest większa od zadanego progu załączenia oraz wyłącza ją, gdy różnica spadnie poniżej
zadanego progu wyłączenia (zawsze wkurzało mnie, że ta pompa chodzi 24h przez 7 dni w tygodniu pompując bezdurno wodę, która niczego nie grzeje)
- załącza na żądanie pompę obiegową cw na wybrany czas - ta chodząca 24h pompa też mnie wkurzała, bo cw krążące w obiegu stygnie w pomieszczeniach rzadko używanych
a więc słabiej grzanych i kocioł włącza się kilkanaście razy na dobę, aby ją podgrzać. Kiedyś dorobiłem wyłącznik, ale jak to zwykle bywa - o włączeniu to się pamięta, o wyłączeniu już jakby rzadziej.
Schemat płytki wyświetlacza znalazłem na stronie www.grylewicz.pl - już ktoś kiedyś wpadł na podobny pomysł.
Podobny temat to: https://www.elektroda.pl/rtvforum/topic1761227.html
Z tej pierwszej strony pobrałem kod programu - wykorzystałem go jako punkt startowy i znacznie przerobiłem.
Opis dotyczy co prawda płytki z tunera DSB-616, ale w 717 jest ona praktycznie identyczna, tylko przyciski, diody LED i odbiornik IR są na tej samej płytce, a nie oddzielnej.
Przeróbka płytki - opisana na w/w stronie. Dodatkowo wylutowałem odbiornik IR i rezystory polaryzujące,
zostawiłem tylko rezystor 4k7 podciągający do VCC - wykorzystałem go do podciągnięcia linii 1wire do plusa.
Wylutowałem też kondensatory gaszące przyciski - w założeniu miały stanowić element filtrujący stan przycisku,
ale w przyjętym sposobie sterowanie we/wy powodowały tylko problemy.
Wlutowałem drugą diodę LED (w oryginale jest 1 dwukolorowa, dioda SIGNAL nie została wlutowana z oszczędności).
Diody LED mają wspólne anody na VCC, katody są wyprowadzone na dłuższe złącze. Na to samo złącze wyprowadzone
są przyciski - wspólna masa i oddzielne piny dla każdego. Schemat podłączenia przycisków i diod do pinów we/wy
mikrokontrolera jest tak prosty, że nie warto go rysować:
- na anodę diody podane VCC, katoda przez rezystor 3k3 podana na gorący koniec przycisku i pin we/wy
mikrokontrolera, zimny koniec przycisku na GND.
Taki sposób podłączenia jest trochę niebezpieczny - zabronione jest ustawienie pinu jako wyjścia w stanie 1,
bo wtedy naciśnięcie przycisku zwiera plus do masy przez wyjście mikrokontrolera.
Sterowanie diodą trzeba zrealizować inaczej:
- na samym początku ustawić kierunek pinu jako wyjście
- ustawić pin wyjściowy w stan 0 i zapomnieć o jakichkolwiek zmianach stanu
- przestawić kierunek pinu w stan high-z czyli jako wejście.
W tym stanie dioda jest zgaszona, można czytać stan przycisku. Przy zwolnionym wejście jest podciągnięte do VCC
przez rezystor 3k3 i diodę led, naciśnięcie przycisku podaje 0 na pin mikrokontrolera i dodatkowo zapala diodę
- to efekt uboczny.
Aby zapalic diodę, trzeba ustawić kierunek pinu ponownie jako wyjście - ponieważ wyjście jest w stanie 0,
dioda zapali się. W tym stanie naciśnięcie przycisku niczego nie zmienia i niczym nie grozi (zwieramy mase do masy).
Funkcje:
- pomiar i wyświetlanie temperatury z kontrolą crc
- cykliczne lub ręczne przełączanie czujnika
- wygaszanie ekranu po predefiniowanym czasie z możliwością wyłączenia
- ustawianie czasu timera i załączanie pompy cyrkulacji cw z możliwością przerwania odliczania w dowolnym momencie
- ustawianie progów zał i wył rożnicy temperatur do załączania pompy obiegowej podłogówki
Załączanie cyrkulacji powinno być uproszczone do minimum - po naciśnięciu przycisku ON timer ustawia się na
predefiniowany czas 20minut i przez kilkanaście sekund czeka na zmianę tego czasu. Kolejne naciśnięcia dodają
10 minut do czasu timera, po przekroczeniu 90 minut timer ustawia się na 0 itd. Brak naciśięcia klawisza przez
kilkanaście sekund uruchamia wyjście i odliczanie timera. Naciśniecie przycisku ON wyłacza wyjście i zeruje timer.
Sterowane układy zasilane są z sieci energetycznej - do załączania wykorzystałem przekaźniki półprzewodnikowe. Całość w oryginalnej obudowie, zasilacz to typowy zasilacz impulsowy 5V.
Szczegóły i co jeszcze - w załączonym kodzie programu - starałem się go obkomentować dość szczegółowo.
Program kompilowany pod Eclipse z parametrem -Os (optymalizacja rozmiaru) zajmuje pełne 2048bajtów flasha,
Niestety nie mogę zrobić fotek - telefon mi poległ
Dołączę jak kupię nowy lub naprawię ten.
Pozdrawiam
Kod programu w załączeniu
EDIT:
Załączam fotki, które w międzyczasie udało mi się zrobić:
Do podłączenia czujników użyłem gniazdek telefonicznych, wklejonych na epidian w obudowę. Przy pierwszym podejściu epidian wlał mi się do wnętrza gniazdkek i zablokował ruch sprężynowych styków, musiałem wkleić nowe.
Pierwsza fotka - ustawianie timera, druga - praca timera.
Na pierwszym wyświetlaczu pokazuję nr czujnika - biegający w kółko segment a, b, c, d, e, f.
Na pierwszej fotce widać sygnalizację błędu crc wybranego czujnika, druga - normalne wskazanie termometru, trzecia - wskazanie temperatury > 100 stopni -
wygaszona najstarsza cyfra, znak "=" na ostatnim wyświetlaczu oznacza przekroczenie 100 stopni, czyli sensor zmierzył 113 stopni.
Jak to zwykle bywa, z "laboratorium" wszystko działało jak należy, po podłączeniu czujników na długich przewodach zaczęły pojawiać się błędy crc.
Pomogło dodanie rezystora 15k równolegle z istniejącym 4k7 pomiędzy linię 1wire a VCC.
Przy okazji wyszły błędy w programie - błąd crc na czujniku 0 lub 1 powodował niekontrolowane załączanie/wyłączanie wyjścia pompy cyrkulacji co.
I drugi - ustawienie stałego wyświetlania temperatury z jednego czujnika blokowało automat załączania pompy.
Program zmieniony, błędy poprawione, nowa wersja w załączniku.
Układ mierzy temperaturę w 6 punktach z wykorzystaniem czujników Dallas DS18B20 przy rozdzielaczu co na podłogówkę i grzejniki.
Mierzę temperatury:
- zasilania i powrotu z podłogówki
- zasilania i powrotu z grzejników
- zewnętrzną i wewnętrzną w pomieszczeniu
Dodatkowo spełnia role prostej automatyki:
- załącza pompę obiegową podłogówki, kiedy różnica temperatur zasilania i powrotu jest większa od zadanego progu załączenia oraz wyłącza ją, gdy różnica spadnie poniżej
zadanego progu wyłączenia (zawsze wkurzało mnie, że ta pompa chodzi 24h przez 7 dni w tygodniu pompując bezdurno wodę, która niczego nie grzeje)
- załącza na żądanie pompę obiegową cw na wybrany czas - ta chodząca 24h pompa też mnie wkurzała, bo cw krążące w obiegu stygnie w pomieszczeniach rzadko używanych
a więc słabiej grzanych i kocioł włącza się kilkanaście razy na dobę, aby ją podgrzać. Kiedyś dorobiłem wyłącznik, ale jak to zwykle bywa - o włączeniu to się pamięta, o wyłączeniu już jakby rzadziej.
Schemat płytki wyświetlacza znalazłem na stronie www.grylewicz.pl - już ktoś kiedyś wpadł na podobny pomysł.
Podobny temat to: https://www.elektroda.pl/rtvforum/topic1761227.html
Z tej pierwszej strony pobrałem kod programu - wykorzystałem go jako punkt startowy i znacznie przerobiłem.
Opis dotyczy co prawda płytki z tunera DSB-616, ale w 717 jest ona praktycznie identyczna, tylko przyciski, diody LED i odbiornik IR są na tej samej płytce, a nie oddzielnej.
Przeróbka płytki - opisana na w/w stronie. Dodatkowo wylutowałem odbiornik IR i rezystory polaryzujące,
zostawiłem tylko rezystor 4k7 podciągający do VCC - wykorzystałem go do podciągnięcia linii 1wire do plusa.
Wylutowałem też kondensatory gaszące przyciski - w założeniu miały stanowić element filtrujący stan przycisku,
ale w przyjętym sposobie sterowanie we/wy powodowały tylko problemy.
Wlutowałem drugą diodę LED (w oryginale jest 1 dwukolorowa, dioda SIGNAL nie została wlutowana z oszczędności).
Diody LED mają wspólne anody na VCC, katody są wyprowadzone na dłuższe złącze. Na to samo złącze wyprowadzone
są przyciski - wspólna masa i oddzielne piny dla każdego. Schemat podłączenia przycisków i diod do pinów we/wy
mikrokontrolera jest tak prosty, że nie warto go rysować:
- na anodę diody podane VCC, katoda przez rezystor 3k3 podana na gorący koniec przycisku i pin we/wy
mikrokontrolera, zimny koniec przycisku na GND.
Taki sposób podłączenia jest trochę niebezpieczny - zabronione jest ustawienie pinu jako wyjścia w stanie 1,
bo wtedy naciśnięcie przycisku zwiera plus do masy przez wyjście mikrokontrolera.
Sterowanie diodą trzeba zrealizować inaczej:
- na samym początku ustawić kierunek pinu jako wyjście
- ustawić pin wyjściowy w stan 0 i zapomnieć o jakichkolwiek zmianach stanu
- przestawić kierunek pinu w stan high-z czyli jako wejście.
W tym stanie dioda jest zgaszona, można czytać stan przycisku. Przy zwolnionym wejście jest podciągnięte do VCC
przez rezystor 3k3 i diodę led, naciśnięcie przycisku podaje 0 na pin mikrokontrolera i dodatkowo zapala diodę
- to efekt uboczny.
Aby zapalic diodę, trzeba ustawić kierunek pinu ponownie jako wyjście - ponieważ wyjście jest w stanie 0,
dioda zapali się. W tym stanie naciśnięcie przycisku niczego nie zmienia i niczym nie grozi (zwieramy mase do masy).
Funkcje:
- pomiar i wyświetlanie temperatury z kontrolą crc
- cykliczne lub ręczne przełączanie czujnika
- wygaszanie ekranu po predefiniowanym czasie z możliwością wyłączenia
- ustawianie czasu timera i załączanie pompy cyrkulacji cw z możliwością przerwania odliczania w dowolnym momencie
- ustawianie progów zał i wył rożnicy temperatur do załączania pompy obiegowej podłogówki
Załączanie cyrkulacji powinno być uproszczone do minimum - po naciśnięciu przycisku ON timer ustawia się na
predefiniowany czas 20minut i przez kilkanaście sekund czeka na zmianę tego czasu. Kolejne naciśnięcia dodają
10 minut do czasu timera, po przekroczeniu 90 minut timer ustawia się na 0 itd. Brak naciśięcia klawisza przez
kilkanaście sekund uruchamia wyjście i odliczanie timera. Naciśniecie przycisku ON wyłacza wyjście i zeruje timer.
Sterowane układy zasilane są z sieci energetycznej - do załączania wykorzystałem przekaźniki półprzewodnikowe. Całość w oryginalnej obudowie, zasilacz to typowy zasilacz impulsowy 5V.
Szczegóły i co jeszcze - w załączonym kodzie programu - starałem się go obkomentować dość szczegółowo.
Program kompilowany pod Eclipse z parametrem -Os (optymalizacja rozmiaru) zajmuje pełne 2048bajtów flasha,
Niestety nie mogę zrobić fotek - telefon mi poległ

Dołączę jak kupię nowy lub naprawię ten.
Pozdrawiam
Kod programu w załączeniu
EDIT:
Załączam fotki, które w międzyczasie udało mi się zrobić:



Do podłączenia czujników użyłem gniazdek telefonicznych, wklejonych na epidian w obudowę. Przy pierwszym podejściu epidian wlał mi się do wnętrza gniazdkek i zablokował ruch sprężynowych styków, musiałem wkleić nowe.


Pierwsza fotka - ustawianie timera, druga - praca timera.



Na pierwszym wyświetlaczu pokazuję nr czujnika - biegający w kółko segment a, b, c, d, e, f.
Na pierwszej fotce widać sygnalizację błędu crc wybranego czujnika, druga - normalne wskazanie termometru, trzecia - wskazanie temperatury > 100 stopni -
wygaszona najstarsza cyfra, znak "=" na ostatnim wyświetlaczu oznacza przekroczenie 100 stopni, czyli sensor zmierzył 113 stopni.
Jak to zwykle bywa, z "laboratorium" wszystko działało jak należy, po podłączeniu czujników na długich przewodach zaczęły pojawiać się błędy crc.
Pomogło dodanie rezystora 15k równolegle z istniejącym 4k7 pomiędzy linię 1wire a VCC.
Przy okazji wyszły błędy w programie - błąd crc na czujniku 0 lub 1 powodował niekontrolowane załączanie/wyłączanie wyjścia pompy cyrkulacji co.
I drugi - ustawienie stałego wyświetlania temperatury z jednego czujnika blokowało automat załączania pompy.
Program zmieniony, błędy poprawione, nowa wersja w załączniku.
Cool? Ranking DIY