Arduino programmerbara knappen Panel som tangentbord (3 / 6 steg)
Steg 3: Lägga till en debouncer
Några knappar är inte mycket exakt och kan ge falska press signaler. Du kommer att märka felet när du trycker på en knapp och utdata åtgärder utlöses två gånger. Detta fenomen kallas studsar, och metoden för att undvika det kallas debouncing.
Vi kommer att inrätta en variabel för att registrera tid i millisekunder och sedan jämföra varje tryck signal förändring, att vet om har mer än 50 millisekunder mellan dem. Om it´s varit mindre än så, då är säkert, en falsk push signal, och skriptet måste ignorera det.
#include "Keyboard.h"
CONST int buttonPin = 2; int buttonState = 0; int prevButtonState = hög;
lång lastDebounceTime = 0;
lång debounceDelay = 50;
void setup() {
pinMode (buttonPin, INPUT_PULLUP);
digitalWrite (buttonPin, hög);
Keyboard.BEGIN();
}
void loop() {
buttonState = digitalRead(buttonPin);
om ((buttonState! = prevButtonState) & & (buttonState == hög)) {
Här startar åtgärden utgång
Keyboard.Press(KEY_LEFT_GUI); Kommando i Mac, använda KEY_LEFT_CTRL för Pc
Keyboard.Press('v');
Delay(100);
Keyboard.releaseAll(); Detta är viktigt efter varje Keyboard.press kommer också att pressas
}
prevButtonState = buttonState;
}