Guten Tag, ich bin gerade dabei eine Taste (LINK) zu bauen und zu programmieren. Diese soll den einfachen Befehl „Enter“ ausführen. Dazu habe ich folgende Programmierung gefunden und umgeschrieben: (LINK)
Habe noch keine Möglichkeit den Befehl zu testen daher bitte ich um eure mithilfe, Danke im Vorraus. PS: bin absoluter neulich was das betrifft
#include <Keyboard.h>
const int buttonPin = 2;
const char lockSequence[] = {
KEY_INSERT
'q'
};
void setup() {
// put your setup code here, to run once:
pinMode(buttonPin, INPUT_PULLUP);
digitalWrite(buttonPin, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
if (LOW == digitalRead(buttonPin)) {
for (int i = 0; i < 3; i++) {
Keyboard.press(lockSequence[i]);
}
delay(1000);
Keyboard.releaseAll();
}
delay(500);
}
pinMode(buttonPin, INPUT_PULLUP);
hier liegt nämlich schon die erste Herausforderung - nicht jeder Arduino besitzt einen INPUT_PULLUP - es könnte auch nur ein INPUT_PULLDOWN sein - oder gar nur ein INPUT - dazu vom Prozessor des Arduino das Datenblatt lesen - anschließend wirst Du wohl die Hardware anpassen müssen
digitalWrite(buttonPin, HIGH);
warum auch immer hier auf einem Eingangspin ein Ausgangsignal gegeben wird, ist mir völlig unklar - keine Ahnung was der Arduino hier macht - im schlimmsten Fall produzierst Du dadurch einen Kurzschluß - neuen Arduino kaufen
for (int i = 0; i < 3; i++) {
Keyboard.press(lockSequence[i]);
}
wenn Du nur Enter drücken willst, dann ist mir unklar wieso Du hier versuchst eine komplette Sequence für drei Tasten zu senden - liest dazu nochmal die API vom Arduino
abgesehen davon - keine Ahnung was auf Deinem Rechner passiert, da du hier am Ende irgendwas an den Rechner sendest - allerdings sollte der HID-Treiber im PC das entsprechend abfangen
zumindest entprellst Du den Button durch die beiden delays(...) - ich vermute aber, das dies Zufall ist