Αυτό το παράδειγμα χρησιμοποιεί την βιβλιοθήκη του πληκτρολογίου. Ουσιαστικά, μας δίνεται η δυνατότητα να ανοίξουμε ένα νέο παράθυρο που περιέχει τον εκτελέσιμο κώδικα λογισμικού του Arduino (IDE). Στην συνέχεια, μπορούμε πλέον να στείλουμε τις εντολές του πληκτρολογίου που χρησιμοποιούνται στο παράδειγμα του αναβοσβησίματος. Επίσης, μας δίνεται η δυνατότητα να επαναπρογραμματίσουμε την πλακέτα μας. Το πρόγραμμα του αναβοσβησίματος θα εμπεριέχεται στην πλακέτα μας, εάν πρώτα εκτελέσουμε τον παρακάτω κώδικα και συνδέσουμε τον ακροδέκτη 2 με την γείωση. Αυτή η σύνδεση μπορεί να υλοποιηθεί με την βοήθεια ενός στιγμιαίου μπουτόν.
Αποσαφήνιση: Να έχετε υπόψη σας ότι όταν χρησιμοποιείτε την εντολή Keyboard.print(), τότε το Arduino θα πάρει τον έλεγχο του πληκτρολογίου σας. Έτσι, πρώτα από όλα, βεβαιωθείτε ότι δεν θα χάσετε τον έλεγχο του υπολογιστή σας κατά την εκτέλεση κώδικα που εμπεριέχει αυτήν την συνάρτηση. Αυτό μπορεί να πραγματοποιηθεί αν δημιουργήσετε ένα αξιόπιστο σύστημα ελέγχου, προτού να καλέσετε την συνάρτηση Keyboard.print(). Ο συγκεκριμένος κώδικας έχει σχεδιαστεί να λειτουργεί μόνο κατά την αποστολή εντολών από το πληκτρολόγιο. Όπως αναφέραμε, αυτό μπορεί να υλοποιηθεί αφού πρώτα έχετε γειώσει τον ακροδέκτη 2.
Απαιτούμενος εξοπλισμός
– Πλακέτα του Arduino Leonardo, Micro ή Due.
– Στιγμιαίο μπουτόν.
– Καλώδια σύνδεσης.
– Breadboard.
Απαιτούμενο λογισμικό
Εκτέλεση του παραθύρου της σειριακής οθόνης του λογισμικού του Arduino (IDE).
Κύκλωμα

Σχηματικά

Κώδικας
Συνδέστε την πλακέτα σας με την θύρα του USB. Στην συνέχεια, πατήστε το μπουτόν για να συνδεθεί το D2 με την γείωση και να ξεκινήσει η εκτέλεση του κώδικα εξομοίωσης του πατήματος των πλήκτρων του πληκτρολογίου. Όμως, πρώτα από όλα, μην ξεχνάτε να έχετε επιλεγμένο το παράθυρο λογισμικού του Arduino (IDE).
/*
Arduino Programs Blink
This sketch demonstrates the Keyboard library.
For Leonardo and Due boards only.
When you connect pin 2 to ground, it creates a new
window with a key combination (CTRL-N),
then types in the Blink sketch, then auto-formats the text
using another key combination (CTRL-T), then
uploads the sketch to the currently selected Arduino using
a final key combination (CTRL-U).
Circuit:
* Arduino Leonardo, Micro, Due, LilyPad USB, or Yún
* wire to connect D2 to ground.
created 5 Mar 2012
modified 29 Mar 2012
by Tom Igoe
modified 3 May 2014
by Scott Fitzgerald
This example is in the public domain
http://www.arduino.cc/en/Tutorial/KeyboardReprogram
*/
#include "Keyboard.h"
// use this option for OSX.
// Comment it out if using Windows or Linux:
char ctrlKey = KEY_LEFT_GUI;
// use this option for Windows and Linux.
// leave commented out if using OSX:
// char ctrlKey = KEY_LEFT_CTRL;
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);
// initialize control over the keyboard:
Keyboard.begin();
}
void loop() {
while (digitalRead(2) == HIGH) {
// do nothing until pin 2 goes low
delay(500);
}
delay(1000);
// new document:
Keyboard.press(ctrlKey);
Keyboard.press('n');
delay(100);
Keyboard.releaseAll();
// wait for new window to open:
delay(1000);
// versions of the Arduino IDE after 1.5 pre-populate
// new sketches with setup() and loop() functions
// let's clear the window before typing anything new
// select all
Keyboard.press(ctrlKey);
Keyboard.press('a');
delay(500);
Keyboard.releaseAll();
// delete the selected text
Keyboard.write(KEY_BACKSPACE);
delay(500);
// Type out "blink":
Keyboard.println("void setup() {");
Keyboard.println("pinMode(13, OUTPUT);");
Keyboard.println("}");
Keyboard.println();
Keyboard.println("void loop() {");
Keyboard.println("digitalWrite(13, HIGH);");
Keyboard.print("delay(3000);");
// 3000 ms is too long. Delete it:
for (int keystrokes = 0; keystrokes < 6; keystrokes++) {
delay(500);
Keyboard.write(KEY_BACKSPACE);
}
// make it 1000 instead:
Keyboard.println("1000);");
Keyboard.println("digitalWrite(13, LOW);");
Keyboard.println("delay(1000);");
Keyboard.println("}");
// tidy up:
Keyboard.press(ctrlKey);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
delay(3000);
// upload code:
Keyboard.press(ctrlKey);
Keyboard.press('u');
delay(100);
Keyboard.releaseAll();
// wait for the sweet oblivion of reprogramming:
while (true);
}
Επιστροφή στην σελίδα Παραπομπές Γλώσσας
