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