Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Attiny13A - Moduł komfortu dachu cabrio 307CC Attiny13

adamza 26 Lip 2016 08:59 1236 11
  • #1 26 Lip 2016 08:59
    adamza
    Poziom 12  

    Witam,

    Naszła mnie taka myśl ażeby zrobić moduł komfortowego otwierania dachu w moim 307CC. W tej chwili muszę trzymać przycisk dachu do całkowitego otwarcia około 20 sekund. Chciałbym wykonać układ który po przyciśnięciu przycisku na np 2 sekundy podtrzyma niejako przyciśniecie przycisku do pełnego otwarcia dachu.
    Nie chce kombinować z czujnikami w aucie wiec założenie jest takie ze oryginalny przycisk (dwu-pozycyjny) będzie podłączony do układu a przerzutniki na wyjściu będą obsługiwały resztę.
    Ze schematem sobie poradziłem niestety moja wiedza programistyczna jest znikoma.
    Zatem prośba do Was Panie i Panowie abyście mnie poprowadzili za "rękę".
    Schemat wygląda tak:

    Attiny13A - Moduł komfortu dachu cabrio 307CC Attiny13roof.jpg Download (78 kB)

    Pierwsze pytanie zanim zacznę dalej kombinować czy zacząłem dobrze.
    Założenie jest takie: przycisk wciśnięty przez 2 sekundy (IN1) włącza się przekaźnik SW1 na 20sekund, układ monituje nadal czy nie wciśnięto przypadkiem IN2 na 2 sekundy. Jeżeli tak wyłączą przekaźnik SW1 i załącza SW2 na 20 sekund i na odwrót. Po tych 20 sekundach przechodzi w stan czuwania i monituje czy nie wciśnięto któregoś przycisku.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 11
  • #2 26 Lip 2016 10:21
    excray
    Poziom 39  

    Po pierwsze zmień trochę schemat. Zastosuj stabilizator o jak najmniejszym własnym poborze prądu. Nie wiem, z jakiej linii będziesz to zasilać, ale oszczędność prądu to podstawa wszędzie i zawsze. Po drugie proponuje na wstępie skonfigurować uC do pracy z przerwaniem od watchdoga-WD co 0,125s, uruchomić tryb power down i w pętli głównej cały czas usypiać - a cały kod zrobić w przerwaniu od WD. Uważaj na zmienne - w większości będą static. Przerwanie co 0,125s załatwia nam praktycznie debouncing. Sprawdzasz przyciski - jeśli wcześniej nie było nic wciśnięte (zmienna powiedzmy stan która nam to powie, lub sprawdzenie PORTB:3,4) to uruchamiasz odpowiedni przekaźnik. Jeśli klawisz jest przyciśnięty >2s to blokujesz ten przekaźnik na kolejne X sekund, nawet jeśli zostanie później puszczony przycisk. Jeśli zostanie wciśnięty drugi przycisk, to zwalniasz przekaźnik i czekasz aż zostanie puszczony. Wszystko robisz oczywiście w sposób nie blokujący przerwanie.

    0
  • #3 26 Lip 2016 10:30
    adamza
    Poziom 12  

    Zasilanie będzie z aku auta (12V) wiec jakiejś mega oszczędności prądu nie potrzebuje.
    Po drugie nie wiem czy przeczytałeś dokładnie mojego posta nie mam za bardzo pojęcia o programowaniu, a to co napisałeś to dla mnie czarna magia. Ale i tak dzięki za posta ;)
    Chyba będę się musiał do kogoś uśmiechnąć bo sam sobie z tym nie poradzę. Na początku myślałem ze to będzie prostsze :(

    0
  • #4 26 Lip 2016 10:44
    excray
    Poziom 39  

    adamza napisał:
    Zasilanie będzie z aku auta (12V) wiec jakiejś mega oszczędności prądu nie potrzebuje.

    Zdziwisz się, jeśli zostawisz auto na dłuższy weekend z podłączonym takim modułem który żre 10-20mA.
    adamza napisał:
    Na początku myślałem ze to będzie prostsze

    To standard myślowy. Zdanie "Ile!?! Panie, to przecież 2 linijki kodu będzie!" zna każdy informatyk :-)

    1
  • #5 26 Lip 2016 10:51
    adamza
    Poziom 12  

    Hehe, chciałem spróbować własnymi siłami zanim zlecę to komuś. Ponadto to urządzenie dla mnie nie na sprzedaż i raczej dla wygody wiec mogę bez niego żyć :) Myślałem ze forum jest po to żeby sobie pomagać i tak tez je traktuje nie jako bazar ;)

    Jeżeli chodzi o zasilanie to będzie ono po zapłonie wiec nie ma problemu.

    BTW napisałem już jeden mały programik na ATTiny i działa ale ten jest nieco trudniejszy.

    0
  • #6 26 Lip 2016 10:55
    excray
    Poziom 39  

    adamza napisał:
    Myślałem ze forum jest po to żeby sobie pomagać

    A, że ja niby Ci kłody pod nogi rzucam?
    Ja Ci nie każę zlecać tego komuś. Po prostu chciałeś propozycji algorytmu to ja Ci zaproponowałem swoją wizję. Chcesz robić inaczej? Wolna, wola, rób jak chcesz.

    0
  • #8 26 Lip 2016 14:48
    hajy
    Poziom 19  

    Witam
    A i nie zapomnij dodać opcji by można było w każdej chwili zatrzymać ten mechanizm i odwrócić jego działanie. Na przykład jak ktoś postanowi włożyć palce i mu je przytnie. Dla bezpieczeństwa ten przełącznik jest tak zrobiony, by trzeba było go cały czas trzymać podczas działania mechanizmu.
    Pozdrawiam Romek

    0
  • #9 26 Lip 2016 15:10
    adamza
    Poziom 12  

    Odwrócić tak (po 2 sekundach) zatrzymać raczej nie ma takiej opcji.
    Myślę ze miedzy innymi dlatego trzeba trzymać przycisk przez cały czas otwierania / zamykania dachu.
    Jedyna opcja żeby zatrzymać proces to wyciągnąć kluczyk ze stacyjki.

    0
  • #10 26 Lip 2016 18:13
    yokoon
    Poziom 28  

    Witam.
    Autor postu napisał: F_CPU 1000000

    Nowa ATtiny 13 pracuje na wewnętrznym oscylatorze 9,6 MHz i włączonym bicie CKDIV8.

    Czyli fabrycznie jest ustawiona na 1200000 Hz.

    0