logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega8 - Sterownik, ogrzewania postojowego, termostat-pytania

ducker1 26 Sty 2013 23:07 2370 2
  • #1 11846297
    ducker1
    Poziom 26  
    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
    Atmega8 - Sterownik, ogrzewania postojowego, termostat-pytania
    oto program:

    Kod: text
    Zaloguj się, aby zobaczyć kod
    Atmega8 - Sterownik, ogrzewania postojowego, termostat-pytania
  • #2 11846811
    dondu
    Moderator na urlopie...
    Witaj,

    ducker1 napisał:
    Czasami też w momencie resetu procka, dotknięcia czegokolwiek w układzie bądź przy podłączeniu zasilania ogrzewanie się uruchamia, jak tego uniknąć?

    Samochody to wredne środowisko dla mikrokontrolerów i trzeba w szczególności zabać o Zasilanie i eliminację zakłóceń.
    Poczytaj dokładnie nie spiesz się i wprowadź odpowiednie modyfikacje w tym zakresie.

    Gdy pokazujesz schemat, to zamieszczaj na nim wartości elementów, bo to utrudnia i wydłuża czas sprawdzania schematu, a każdy z nas ma go ograniczoną ilość :) Dodatkowo nie podałeś w opisie wartości kondensatorów. Poza tym wrzucaj je w formie pliku graficznego, a nie PDF.

    Kodu nie sprawdzałem, bo BASCOM to nie moja działka :)
  • #3 11847075
    netotron
    Poziom 26  
    Witam
    Odkłucanie wejść RC, jeśli sprawdzasz stan "Stan = Pind.7" po wystąpieniu, odczekaj 10...100ms i sprawdź ponownie.
    Porządne kondensatory na zasilaniu uC, jak najbliżej nóżek +/- (100uF i 1uF stały)
    Nie zaszkodzi dławik kilkanaście uH na plusie zasilania uC
    Fusebit ustaw z opcją - Start-up time: 6 CK + 64 ms
    To tak na wstępie.
REKLAMA