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.

ARDUINO UNO, krańcówki, silniki, on/off

darex120 28 Lut 2018 21:17 303 3
  • #1 28 Lut 2018 21:17
    darex120
    Poziom 18  

    Witam Serdecznie , nie wiem czy dobrze w forum wybrałem, ale to się okaże, a więc napisałem taki program poniżej, i chodzi mi o to że mam 5 silników, i wyłącznik on/off, oraz przy każdym silniku wyłącznik krańcowy, teraz po naciśnięciu przycisku on/off startuje silnik pierwszy, następnie po dojechaniu do pewnego momentu załącza wyłącznik krańcowy, ten uruchamia następny silnik i tak aż do 5, 5 silnik ma cały czas pracować, teraz po naciśnięciu wyłącznika on/off, wszystko startuje ale w odwrotnej kolejności czyli silnik 4, 3, 2, 1 oraz na samym końcu staje silnik 5, silnikami steruje za pomocą mostka L293
    Oto kodzik (nie wiem czy tutaj się wstawia więc z góry przepraszam) jeśli chodzi o kurs oraz inne książki w temacie ARDUINO przerobiłem, ale jak na razie nic nie rozumiem.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Napisałem nowy kod, chodzi tak jak powinien, krańcówki działają, ale teraz mam jeszcze jeden problem jak w ten kod wstawić program aby uruchamiał mi 2 silniki co jakiś czas, czytałem artykuły na temat wielozadaniowości, ale jak na razie nie rozumiem, i jeszcze jedno co wstawić aby po naciśnięciu przycisku on/off mam go na 9 pinie rozpocząć start silników wszystkich ale w odwrotnym kierunku to jest kodzik i jak mogę w niego wpisać opóźnienie załączania danego silnika, rozumiem że delay odpada, zostaje mills
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Jeśli możecie dajcie jakieś wskazówki.

    0 3
  • #2 28 Lut 2018 22:30
    shadow0013
    Poziom 34  

    darex120 napisał:
    co jakiś czas

    Sam sobie odpowiedziałeś, użyj funkcji nie blokującej programu millis(), micros() lub jakiejś biblioteki obsługi timera do odliczania czasu. Po upływie określonego czasu załącz drugi silnik, a potem go wyłącz po określonym czasie albo w odpowiednim miejscu.

    0
  • #3 01 Mar 2018 06:20
    darex120
    Poziom 18  

    z tym że wlaśnie czytam i czytam lecz nie mam pojęcia jak to wpisać w program

    0
  • #4 01 Mar 2018 10:39
    shadow0013
    Poziom 34  

    Program jest wykonywany w kolejności jak jest napisany. jeśli chcesz dodatkowy silnik uruchamiać np. co 10 obiegów pętli razem z drugim silnikiem to wpisz odpowiedni warunek w if drugiego silnika i wyłącz go w odpowiednim miejscu zerując zliczanie obiegów pętli. Jeśli chcesz niezależnie np. co 30min, napisz odliczanie czasu chociażby z wykorzystaniem millis() i po upłynięciu 30min załącz silnik. Przykładów z millis() jest dużo. Użyj też if else.

    0
  Szukaj w 5mln produktów