Αυτό το παράδειγμα “αφουγκράζεται” τα εισερχόμενα byte της σειριακής θύρας. Δηλαδή, η πλακέτα του Arduino θα ενημερώνει τον υπολογιστή σας μέσω της αποστολής μιας ειδικής πληκτρολόγησης. Αυτό θα πραγματοποιείται με την κάθε παραλαβή των byte. Αξίζει να αναφέρουμε, ότι η αποσταλμένη πληκτρολόγηση είναι κατά μια τιμή μεγαλύτερη σε σχέση με την λαμβανόμενη. Πρακτικά, εάν στείλετε από την σειριακή οθόνη το γράμμα “a”, τότε η συνδεδεμένη πλακέτα με τον υπολογιστή σας, θα λάβει το γράμμα “b”. Επίσης, η αποστολή του αριθμού “1”, θα γίνει “2” κατά την παραλαβή και ούτω καθεξής.
Αποσαφήνιση: Να έχετε υπόψη σας ότι όταν χρησιμοποιείτε την εντολή Keyboard.print(), τότε η πλακέτα του Arduino Leonardo, Micro ή Due θα πάρει τον έλεγχο του πληκτρολογίου σας. Έτσι, πρώτα από όλα, βεβαιωθείτε ότι δεν θα χάσετε τον έλεγχο του υπολογιστή σας κατά την εκτέλεση κώδικα που εμπεριέχει αυτήν την συνάρτηση. Αυτό μπορεί να πραγματοποιηθεί αν δημιουργήσετε ένα αξιόπιστο σύστημα ελέγχου, προτού να καλέσετε την συνάρτηση Keyboard.print(). Ο συγκεκριμένος κώδικας, έχει σχεδιαστεί να λειτουργεί μόνο κατά την αποστολή εντολών από το πληκτρολόγιο, αφού πρώτα η πλακέτα σας έχει παραλάβει ένα byte μέσω της σειριακής θύρας.
Απαιτούμενος εξοπλισμός
– Πλακέτα του Arduino Leonardo, Micro ή Due.
Κύκλωμα
Συνδέστε την πλακέτα σας με τον υπολογιστή μέσω ενός καλωδίου micro-USB.
Μόλις τελειώσετε με τον προγραμματισμό της πλακέτας, ανοίξτε την σειριακή οθόνη και στείλτε ένα byte. Η πλακέτα θα απαντήσει με τον τρόπο που αναφέραμε παραπάνω. Δηλαδή, το πατημένο πλήκτρο θα εμφανιστεί αυξημένο κατά ένα.

Κώδικας
/*
Keyboard test
For the Arduino Leonardo, Micro or Due
Reads a byte from the serial port, sends a keystroke back.
The sent keystroke is one higher than what's received, e.g.
if you send a, you get b, send A you get B, and so forth.
The circuit:
* none
created 21 Oct 2011
modified 27 Mar 2012
by Tom Igoe
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/KeyboardSerial
*/
#include "Keyboard.h"
void setup() {
// open the serial port:
Serial.begin(9600);
// initialize control over the keyboard:
Keyboard.begin();
}
void loop() {
// check for incoming serial data:
if (Serial.available() > 0) {
// read incoming serial data:
char inChar = Serial.read();
// Type the next ASCII value from what you received:
Keyboard.write(inChar + 1);
}
}
Επιστροφή στην σελίδα Παραπομπές Γλώσσας
