Arduino - Tastaturabmeldung
In diesem Beispiel wird die Tastaturbibliothek verwendet, um Sie von Ihrer Benutzersitzung auf Ihrem Computer abzumelden, wenn Pin 2 des ARDUINO UNO auf Masse gezogen wird. Die Skizze simuliert den Tastendruck in der Reihenfolge von zwei oder drei Tasten gleichzeitig und gibt sie nach einer kurzen Verzögerung frei.
Warning - Wenn Sie die Keyboard.print()Befehl übernimmt Arduino die Tastatur Ihres Computers. Richten Sie ein zuverlässiges Steuerungssystem ein, bevor Sie Keyboard.print () aufrufen, um sicherzustellen, dass Sie beim Ausführen einer Skizze mit dieser Funktion nicht die Kontrolle über Ihren Computer verlieren. Diese Skizze soll nur einen Tastaturbefehl senden, nachdem ein Stift auf den Boden gezogen wurde.
Erforderliche Komponenten
Sie benötigen folgende Komponenten:
- 1 × Steckbrett
- 1 × Arduino Leonardo, Micro oder Due Board
- 1 × Drucktaste
- 1 × Jumper
Verfahren
Befolgen Sie den Schaltplan und schließen Sie die Komponenten wie in der Abbildung unten gezeigt am Steckbrett an.
Skizzieren
Öffnen Sie die Arduino IDE-Software auf Ihrem Computer. Die Codierung in der Arduino-Sprache steuert Ihre Schaltung. Öffnen Sie eine neue Skizzendatei, indem Sie auf Neu klicken.
In diesem Beispiel müssen Sie Arduino IDE 1.6.7 verwenden
Note- Sie müssen die Tastaturbibliothek in Ihre Arduino-Bibliotheksdatei aufnehmen. Kopieren Sie die Tastaturbibliotheksdatei und fügen Sie sie in die Datei mit den Namensbibliotheken (hervorgehoben) ein, wie im folgenden Screenshot gezeigt.
Arduino Code
/*
Keyboard logout
This sketch demonstrates the Keyboard library.
When you connect pin 2 to ground, it performs a logout.
It uses keyboard combinations to do this, as follows:
On Windows, CTRL-ALT-DEL followed by ALT-l
On Ubuntu, CTRL-ALT-DEL, and ENTER
On OSX, CMD-SHIFT-q
To wake: Spacebar.
Circuit:
* Arduino Leonardo or Micro
* wire to connect D2 to ground.
*/
#define OSX 0
#define WINDOWS 1
#define UBUNTU 2
#include "Keyboard.h"
// change this to match your platform:
int platform = WINDOWS;
void setup() {
// make pin 2 an input and turn on the
// pullup resistor so it goes high unless
// connected to ground:
pinMode(2, INPUT_PULLUP);
Keyboard.begin();
}
void loop() {
while (digitalRead(2) == HIGH) {
// do nothing until pin 2 goes low
delay(500);
}
delay(1000);
switch (platform) {
case OSX:
Keyboard.press(KEY_LEFT_GUI);
// Shift-Q logs out:
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press('Q');
delay(100);
// enter:
Keyboard.write(KEY_RETURN);
break;
case WINDOWS:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(100);
Keyboard.releaseAll();
//ALT-l:
delay(2000);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press('l');
Keyboard.releaseAll();
break;
case UBUNTU:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(1000);
Keyboard.releaseAll();
// Enter to confirm logout:
Keyboard.write(KEY_RETURN);
break;
}
// do nothing:
while (true);
}
Keyboard.releaseAll();
// enter:
Keyboard.write(KEY_RETURN);
break;
case WINDOWS:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(100);
Keyboard.releaseAll();
//ALT-l:
delay(2000);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press('l');
Keyboard.releaseAll();
break;
case UBUNTU:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(1000);
Keyboard.releaseAll();
// Enter to confirm logout:
Keyboard.write(KEY_RETURN);
break;
}
// do nothing:
while (true);
}
Zu beachtender Code
Stellen Sie vor dem Hochladen des Programms auf Ihr Board sicher, dass Sie der Plattformvariablen das richtige Betriebssystem zuweisen, das Sie derzeit verwenden.
Während die Skizze ausgeführt wird, wird durch Drücken der Taste Pin 2 mit Masse verbunden und die Karte sendet die Abmeldesequenz an den über USB angeschlossenen PC.
Ergebnis
Wenn Sie Pin 2 mit Masse verbinden, wird ein Abmeldevorgang ausgeführt.
Zum Abmelden werden die folgenden Tastaturkombinationen verwendet:
Auf Windows, STRG-ALT-ENTF, gefolgt von ALT-1
Auf Ubuntu, STRG-ALT-ENTF und EINGABE
Auf OSX, CMD-SHIFT-q