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.

Sterownik trawiarki - jak dodać funkcję przycisku sterującego załącz/ wyłącz

barti879 06 Sty 2014 12:19 882 1
  • #1 06 Sty 2014 12:19
    barti879
    Poziom 18  

    Witam! Niedawno zacząłem przygodę z mikrokontrolerami AVR. Jak wiadomo początki są zawsze bardzo trudne, dlatego mam problem. Napisałem prosty program do sterownika trawiarki PCB, jednak chciałbym dopisać do niego jeszcze jedną funkcję z którą nie umiem sobie poradzić. Chciałbym żeby przycisk podłączony do jednego z portów Atmegi (PB3) przy przyciśnięciu włączał i wyłączał daną funkcję, tzn. jeśli trawiarka jest w stanie "włączona ale program termostatu nie jest realizowany" na LCD wyświetlana jest tylko temperatura oraz nastawa, a po przyciśnięciu przycisku wchodziła w stan "aktywny" i wyświetlała na LCD temperaturę oraz nastawę i realizowała funkcję termostatu. Po ponownym przyciśnięciu sterownik znowu byłby w stanie "włączony ale program termostatu nie jest realizowany".

    Próbowałem zrobić to w funkcji if. Nie działało to jednak poprawnie (włączanie działało, wyłączanie czasem nie zadziałało, czasem na chwilę wyłączyło po czym znów załączało termostat).

    Dodam tylko, że jestem naprawdę początkujący i nie doświadczenia w programowaniu. Jak rozwiązać ten problem? Czy ktoś jest w stanie mi pomóc? Z góry dziękuję.



    W załączniku znajduje sie wersja skrócona programu z przyciskiem (pod nazwą przykład) oraz cały program do sterownika bez przycisku (pod nazwą termometr).


    Pozdrawiam!

    0 1
  • #2 07 Sty 2014 09:45
    perlon
    Poziom 19  

    To że się włącza i wyłącza prawdopodobnie związane jest z tzw. drganiami styków. W twoim programie brak jest eliminacji drgań styków przycisku. Tematów z tym związanych jest na elce dużo. Ponadto stosowanie delay w pętli głównej nie należy do dobrego stylu programowania. Zamiast tego należy użyć timerów i tzw. maszyny stanów. Zdaję sobie sprawę, że to ogólniki ale trzeba o tym trochę poczytać.

    0