• 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
KeyPad + on/off
#1
no czuję się jak debil już, myśląc ile ścisłych umysłów tu siedzi.. ale jak widać nie jest to mi pisane

próbuję ustawić na przyciśku 3 w keypad 4x1 zwyłky, najprostszy switch on/off,
czyli pierwsze naciśniecię Serial.println("pierwsza"); , drugie Serial.println("druga");

czy ktoś pomoże debilowi co robię źle?

Kod:
const int buttonPin[] = {9, 10, 11, 12};
// const int ledPin =  13;
int buttonState = 0;
int ledState = -1;
long lastDebounceTime = 0;
long debounceDelay = 50;    



void setup() {
 Serial.begin(9600);
 // put your setup code here, to run once:

//   pinMode(ledPin, OUTPUT);

 for (int x = 0; x < 2; x++)
 {
   pinMode(buttonPin[x], INPUT_PULLUP);
 }

}

void loop() {
 // put your main code here, to run repeatedly:

 for (int x = 0; x < 2; x++)
 {
   buttonState = digitalRead(buttonPin[x]);

   if (buttonState == HIGH && (ledState < 0))
   { delay(500);


     Serial.println("pierwsza");
     ledState = -ledState;
     lastDebounceTime = millis();

   }
   else if (buttonState == HIGH  && (ledState > 0)) {
     { delay(500);

       Serial.println("druga");
       ledState = -ledState;
       lastDebounceTime = millis();
     }

   }
 }
}
 
Odpowiedź
#2
Wydaje mi się że obsługujesz tylko 2 przyciski
Kod:
for (int x = 0; x < 2; x++)

Powinno być
Kod:
for (int x = 0; x < 4; x++)
Dodatkowo przycisk 3 to chyba Pin[2].
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#3
Oczywiście namok ma racje, ale inna sprawa nadając PinMode(buttonPin[x], INPUT_PULLUP) ustawiasz stan wysoki na przycisku, więc w tych if'ach sprawdzaj if (buttonState == LOW && (ledState < 0))
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości