Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Jak poprawić działanie kodu? Automatyczne otwieranie rolet.

Szybki946 03 Jun 2017 11:07 972 3
  • #1
    Szybki946
    Level 7  
    Wiat mam problem z programem do otwieranie rolet okiennych.Chodzi o to ze program jest zrobiony na godzine otwierania i zamykania (DS1307) do tego jest dodane sterowanie HC06 (telefonem).Mam problem bo w loopie jest otwieranie czasowe i wyłącznik czasowy (krańcowy) , silnik w tym czasie skacze bo są 2 czynności włącznie przez czas i wyłączenie przez wyłącznik.

    Code: c
    Log in, to see the code
  • #2
    roxio
    Level 24  
    czy dodanie do IF godz && min jeszcze jednego warunku && end_1d == LOW dla otwierania a && end_1g == LOW dla zamykania nie załatwi sprawy?
  • #3
    emarcus
    Level 38  
    roxio wrote:
    czy dodanie do IF godz && min jeszcze jednego warunku && end_1d == LOW dla otwierania a && end_1g == LOW dla zamykania nie załatwi sprawy?


    Prawdopodobnie NIE..
    Jeżeli załóżmy zatrzyma silnik w dowolnym/przypadkowym miejscu (pomiędzy wyłącznikami krańcowymi) sterując z serial comm. i wybierając opcję: State = ‘2’ - to kolejne załączenie napędu nie będzie możliwe w żadnym kierunku.

    Wystarczy popatrzec na ten fragment kodu:
    Code: c
    Log in, to see the code

    Warunek ten będzie spełniany przez całą minutę podczas kolejnych rotacji pętli loop();
    i powodował załączanie silnika, mimo że wyłacznik krańcowy wyłączajacy silnik może już miec stan=0; - proces ten będzie obserwowany dla przypadków gdy czas otwierania/zamykania rolety bedzie krótszy niż 1 min.
    Wystarczyłoby do warunku ‘if ( ) ’ dopisac odczyt sekund, powiedzmy && SEC =< 10, co da 10- sekundowe okno akywności warunku na czas pracy, zaczym nastąpi aktualne wyłączenie silnika przez wyłącznik krańcowy, lub wartośc tą dobrac doświadczalnie.

    e marcus
  • #4
    elkopyto
    Level 12  
    Dodaj jeszcze jedną zmienną mówiącą o starcie otwierania wynikającego z czasu:
    Code: c
    Log in, to see the code

    W czasie pasującej minuty otwieranie załączy się tylko raz przy pierwszym obiegu pętli.