Wpis z mikrobloga

Cześć, od pewnego czasu bawię się Arduino, doszedłem do prostej 'stacji pogodowej' (wszystko z wish albo bg ( ͡° ͜ʖ ͡°) ) i oczywiście wykorzystuję tam komendę delay(). Już kilka razy słyszałem że to niedobrze i chciałbym się zapytać w jaki sposób prawidłowo to zrobić?

Mam zamiar zrobić prosty sterownik do akwarium (temp, różne światła, karmnik, dolewanie wody). I tu też pytanie - jak zrobię funkcję dla silniczka (3 sekundy obrotu) to przez cały ten czas będzie tylko to robił (a nie sprawdzał resztę). I ten sposób jest też podobno jest zły. W jaki sposób to powinno się dobrze zrobić? (jakieś linki, ogólne założenia)

#arduino
nonamed2 - Cześć, od pewnego czasu bawię się Arduino, doszedłem do prostej 'stacji po...

źródło: comment_lbBniJ7JCxEjA5H5kdOUwh7oPnH5MNNl.jpg

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@nonamed2: 1) przed odpaleniem silniczka sprawdz timestamp i przypisz go do zmiennej
2) w main loopie sprawdzaj timestamp, jesli roznica tego timestampu i timestamp'u z pkt 1 bedzie rowna lub wieksza 3 sek - zatrzymaj silnik
  • Odpowiedz
@nonamed2: Widzę że masz moduł z DS1307, moduł ten ma wyjście zegara 1Hz, możesz na external interruptach zliczać te impulsy, i między pierwszym a czwartym odnotowanym impulsem będzie równo 3 sekundy.
  • Odpowiedz
@Logmach: Bt to temperatura barometru a J - 'jasność' - fotorezystor, nie miałem pomysłu co jeszcze podłączyć więc dałem to :)

@xerxes931: a dało by radę jakoś jaśniej? Z tego co rozumiem, to moduł komunikuje się po I2C, któreś z (innych) wyjść daje impulsy czy jakoś licząc sygnały odbierane przez I2C?
  • Odpowiedz