Witam kolegów.
Mam w samochodzie ogrzewanie postojowe eberspaecher, zapragnąłem uruchamiać je zdalnie.
Do tego celu zbudowałem prosty sterownik (na razie tylko na płytce stykowej).
Założenia:
- współpraca z zestawem zdalnego sterowania typu ZDS-3K
- uruchamianie dmuchawy gdy temperatura osiągnie zadaną wartość, po to aby obieg cieczy szybciej sie nagrzewał, gdyż teraz dmuchawa działa od razu, nawet gdy temperatura cieczy w obiegu wynosi -10
- współpraca z oryginalnym zegarem eberspaecher
-sygnalizacja braku komunikacji z ds18b20
Mini zegar który oryginalnie steruje eberem uruchamia go podając 12V na wyjście. Ja w swoim układzie zastosowałem dzielnik aby z tych 12 zrobić około 4,5V jako logiczne 1 dla atmegi. W ten sposób uC sprawdza czy ogrzewanie działa czy nie.
Podlutowałem się także pod pin uC w oryginalnym sterowniku aby za pomocą logicznego 0 uruchamiać bądź wyłączać ogrzewanie. Także jeżeli wcisnę przycisk na pilocie to sterownik odbiera to jak fizycznie naciśniecie przycisku.
Układ działa i spełnia swoje zadanie, ale czasami np muszę nacisnąć klawisz pilota dwa lub trzy razy aby zareagował, z tym że przekaźnik w module zdalnego sterowania reaguje za każdym razem.
Czasami też w momencie resetu procka, dotknięcia czegokolwiek w układzie bądź przy podłączeniu zasilania ogrzewanie się uruchamia, jak tego uniknąć?
Diody prostownicze zastosowałem bo pojawiały się napięcia "błądzące" w momencie gdy któryś z układów był odpięty od zasilania to drugi zasilał się jakby od tego pierwszego.
Dodam ze jest to mój pierwszy "poważny" program, więc proszę Was o przeanalizowanie kodu, wskazanie błędów i podpowiedź jak je wyeliminować, bądź jak zoptymalizować ten kod aby działał szybciej i niezawodniej. Jestem otwarty na wszelkie propozycje i sugestie i z góry dziękuję za pomoc i opinie, szczególnie te krytyczne.
Na schemacie oraz w kodzie występuje wyświetlacz LCD, jest on tylko tymczasowo, docelowo gdy już wszystko dopracuje na 100% usunę z kodu wszystko co związane z LCD.
Elementy:
R1 - 3k
R2 ,R4 - 460
R3 - 270
R5, R7 - 1,2k
D1,D2,D3- 1N4007
jako czujnika temperatury użyłem DS18B20
oto program:

Mam w samochodzie ogrzewanie postojowe eberspaecher, zapragnąłem uruchamiać je zdalnie.
Do tego celu zbudowałem prosty sterownik (na razie tylko na płytce stykowej).
Założenia:
- współpraca z zestawem zdalnego sterowania typu ZDS-3K
- uruchamianie dmuchawy gdy temperatura osiągnie zadaną wartość, po to aby obieg cieczy szybciej sie nagrzewał, gdyż teraz dmuchawa działa od razu, nawet gdy temperatura cieczy w obiegu wynosi -10
- współpraca z oryginalnym zegarem eberspaecher
-sygnalizacja braku komunikacji z ds18b20
Mini zegar który oryginalnie steruje eberem uruchamia go podając 12V na wyjście. Ja w swoim układzie zastosowałem dzielnik aby z tych 12 zrobić około 4,5V jako logiczne 1 dla atmegi. W ten sposób uC sprawdza czy ogrzewanie działa czy nie.
Podlutowałem się także pod pin uC w oryginalnym sterowniku aby za pomocą logicznego 0 uruchamiać bądź wyłączać ogrzewanie. Także jeżeli wcisnę przycisk na pilocie to sterownik odbiera to jak fizycznie naciśniecie przycisku.
Układ działa i spełnia swoje zadanie, ale czasami np muszę nacisnąć klawisz pilota dwa lub trzy razy aby zareagował, z tym że przekaźnik w module zdalnego sterowania reaguje za każdym razem.
Czasami też w momencie resetu procka, dotknięcia czegokolwiek w układzie bądź przy podłączeniu zasilania ogrzewanie się uruchamia, jak tego uniknąć?
Diody prostownicze zastosowałem bo pojawiały się napięcia "błądzące" w momencie gdy któryś z układów był odpięty od zasilania to drugi zasilał się jakby od tego pierwszego.
Dodam ze jest to mój pierwszy "poważny" program, więc proszę Was o przeanalizowanie kodu, wskazanie błędów i podpowiedź jak je wyeliminować, bądź jak zoptymalizować ten kod aby działał szybciej i niezawodniej. Jestem otwarty na wszelkie propozycje i sugestie i z góry dziękuję za pomoc i opinie, szczególnie te krytyczne.
Na schemacie oraz w kodzie występuje wyświetlacz LCD, jest on tylko tymczasowo, docelowo gdy już wszystko dopracuje na 100% usunę z kodu wszystko co związane z LCD.
Elementy:
R1 - 3k
R2 ,R4 - 460
R3 - 270
R5, R7 - 1,2k
D1,D2,D3- 1N4007
jako czujnika temperatury użyłem DS18B20
oto program:
Kod: text
