Arduino & push button

Programovacie jazyky, rady, poradňa...
cheeseburger
Light Star
Light Star
Príspevky: 235
Registrovaný: 21 máj 2013, 18:49

Arduino & push button

Príspevok od používateľa cheeseburger »

Ahojte, potrebujem nakodit klasicky push button, ktory je pripojeny k arduinu sposobom, ze ked ho stlacim (popripade drzim) posle sa na seriovku raz ON, a nasledne ked ho znova stlacim posle sa OFF. Neviem na to vobec prist, podarilo sa mi vymysliet kedy mi to donekonecna posiela ONONONONON resp OFFOFFOFF. Ale aby to fungovalo tak, ze to posle len raz, na to nedokazem prist. Nenasiel by sa niekto, kto by ma nejak nakopol? Dakujem.
ado130
Expert
Expert
Používateľov profilový obrázok
Príspevky: 163
Registrovaný: 01 aug 2012, 12:36

Re: Arduino & push button

Príspevok od používateľa ado130 »

Ukáž kód, čo si skúsil doteraz a kam je tlačidlo pripojené (klasický pin alebo na prerušenie).
cheeseburger
Light Star
Light Star
Príspevky: 235
Registrovaný: 21 máj 2013, 18:49

Re: Arduino & push button

Príspevok od používateľa cheeseburger »

Ahoj, podarilo sa mi to docielit, ze som tam dal prazdny while cyklus, ale urcite to ide nejak elegantnejsie, ci nie?

Kód: Vybrať všetko

buttonState = digitalRead(button);

  if (buttonState == HIGH && previousButtonState == LOW && millis() - timeX > debounceDelay){
    if (timeState== 0){
      Serial.write("111");
      while( digitalRead(button) == HIGH){
      }
    }
    else{
      Serial.write("110");
      while( digitalRead(button) == HIGH){
      }
    }
    timeX = millis();
  }
ado130
Expert
Expert
Používateľov profilový obrázok
Príspevky: 163
Registrovaný: 01 aug 2012, 12:36

Re: Arduino & push button

Príspevok od používateľa ado130 »

Tamto je celkom dobré riešenie, čakáš, kým sa tlačidlo pustí, nevýhodou je, že počas toho ako čakáš, MCU nerobí nič iné, takže si tým mierne zasekáš program. Ak ide o niečo jednoduché, že ti tamtá nevýhoda neprekáža, v poriadku, no pozri sa ešte na túto funkciu https://www.arduino.cc/en/Reference/AttachInterrupt.
Napísať odpoveď