• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zmiana diody przyciskiem. Wiele funkcji przycisku .
#1
Witajcie, mam problem z kodem. 
Potrzebuje aby po wciśnięciu swicha zapalała się dioda 1 , po kolejnym wciśnięciu gasiła się 1 a zapalała 2 , kolejne gasi się 2 a zapala 3 itd. Oprócz tego w dowolnym momencie przytrzymanie przycisku powoduje reset arduino . Doszedłem do tego momentu gdzie sekcja pierwsza (z diodami) działa poprawnie. Ale dłuższe przytrzymanie nie działa . Znaczy działa ale dopiero kiedy sekwencja diód jest na końcu ( musi przejść cały program). Możecie zerknąć i coś podpowiedzieć ? Korzystam z biblioteki OneButton
Kod:
#include <OneButton.h>


OneButton button(2, true);                         //attach a button on pin A1 to the library




void setup() {
digitalWrite(12,HIGH);
  pinMode(3, OUTPUT);                              // sets the digital pin as output
  pinMode(4, OUTPUT);                              // sets the digital pin as output
  pinMode(5, OUTPUT);                              // sets the digital pin as output
  pinMode(12, OUTPUT);

     
  button.attachDoubleClick(doubleclick);            // link the function to be called on a doubleclick event.
  button.attachClick(singleclick);                  // link the function to be called on a singleclick event.
  button.attachLongPressStop(longclick);            // link the function to be called on a longpress event.
 
}
 


void loop() {

  button.tick();                                    // check the status of the button


  delay(10);                                        // a short wait between checking the button
} // loop



void doubleclick() {                                // what happens when button is double-clicked
digitalWrite(3,HIGH);                             
delay(1000);                                       
digitalWrite(3,LOW);                             
}

void singleclick(){                                 // what happens when the button is clicked


  digitalWrite(3, LOW); //Czerwona
  digitalWrite(4, LOW); //Pomarańczowa
  digitalWrite(5, HIGH); //Zielona

  delay(2000);
  while (digitalRead(2) == HIGH) {} //Czekaj na wciśnięcie przycisku
 
  digitalWrite(3, LOW); //Czerwona
  digitalWrite(4, HIGH); //Pomarańczowa
  digitalWrite(5, LOW); //Zielona

  delay(2000);
  while (digitalRead(2) == HIGH) {} //Czekaj na wciśnięcie przycisku
 
  digitalWrite(3, HIGH); //Czerwona
  digitalWrite(4, LOW); //Pomarańczowa
  digitalWrite(5, LOW); //Zielona

  delay(2000);
  while (digitalRead(2) == HIGH) {} //Czekaj na wciśnięcie przycisku
 
  digitalWrite(3, HIGH); //Czerwona
  digitalWrite(4, HIGH); //Pomarańczowa
  digitalWrite(5, LOW); //Zielona

  delay(2000);
  while (digitalRead(2) == HIGH) {} //Czekaj na wciśnięcie przycisku
}

void longclick(){                                   
digitalWrite(12,LOW);                           
delay(1000);                                       
digitalWrite(12,HIGH);     
}
 
Odpowiedź
  


Wiadomości w tym wątku
Zmiana diody przyciskiem. Wiele funkcji przycisku . - przez pioter994 - 15-12-2021, 00:14

Skocz do:


Przeglądający: 1 gości