Arduino, tælle tryk indenfor 5 sekunder (Læst 2374x)

Offline martinbjerre

  • Jordet Basic
  • **
  • Indlæg: 151
  • Antal brugbare Indlæg: 10
    • Vis profil
Arduino, tælle tryk indenfor 5 sekunder
« Dato: Februar 01, 2015, 14:11:34 »
Hej med jer.
Nu troede jeg lige at jeg havde styr på koden til mit projekt, men ak.....

Formålet er at tælle antal tryk på en knap, og ved 3 tryk indenfor 5 sekunder, skal en udgang aktiveres.
Senere skal en timer funktion tilføjes, og en "nulstilling" af tælleren ved flere eller færre tryk, men ligenu skal jeg have første del til at fungere. Koden er :

int buttonPin = 7;
int ledPin = 10;
void setup() {
pinMode(ledPin, OUTPUT);     
pinMode(buttonPin, INPUT);     
}
void loop()
{
unsigned long startTime = millis();
int cnt = 0;
while(millis() - startTime < 5000)
{
if(digitalRead(buttonPin) == HIGH)
cnt++;
delay(10);
}

if(cnt == 3)

{
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
}
else
{
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
}
}


 

Offline gerd

  • Administrator
  • µProcessoren
  • *****
  • Indlæg: 915
  • Antal brugbare Indlæg: 97
    • Vis profil
    • Hjemmeside med nogle af mine projekter
Sv: Arduino, tælle tryk indenfor 5 sekunder
« Svar #1 Dato: Februar 01, 2015, 14:36:28 »
Hej Martin,

det her tæller hvor længe du trykker på knappen:
Kode:
if(digitalRead(buttonPin) == HIGH)
        cnt++;

Og det her hvor mage gange:
Kode:
   int button = 0;
   int button_old = 0;
   while(millis() - startTime < 5000)
   {
      button = digitalRead(buttonPin);

      if ( button == HIGH && button_old == LOW)
         cnt++;

      button_old = button;

      delay(10);
    }