Bonjour, je rencontre un problème avec mon programme. Le but est simple c'est de pouvoir allumer une led depuis une touche de mon clavier.
Pouvez vous m'aider car sa fait 4 jours que je suis déçu...
#include <Keyboard.h>
const int LED_PIN = 13;
void setup() {
// Initialise la bibliothèque Keyboard
Keyboard.begin();
// Configure la broche de la LED en sortie
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// Si une touche a été appuyée sur le clavier
if (Keyboard.available()) {
// Lis la touche appuyée
char key = Keyboard.read();
// Si la touche est 'a', allume la LED
if (key == 'a') {
digitalWrite(LED_PIN, HIGH);
}
}
}
Et il me met comme Erreur :
C:\Users\Arthur\Desktop\clavier test\clavier test.ino: In function 'void setup()':
C:\Users\Arthur\Desktop\clavier test\clavier test.ino:7:3: error: 'Keyboard' was not declared in this scope
Keyboard.begin();
^~~~~~~~
C:\Users\Arthur\Desktop\clavier test\clavier test.ino: In function 'void loop()':
C:\Users\Arthur\Desktop\clavier test\clavier test.ino:15:7: error: 'Keyboard' was not declared in this scope
if (Keyboard.available()) {
^~~~~~~~
Plusieurs bibliothèque trouvées pour "Keyboard.h"
Utilisé: C:\Users\Arthur\Documents\Arduino\libraries\Keyboard
Non utilisé: C:\Users\Arthur\AppData\Local\Arduino15\libraries\Keyboard
exit status 1
Compilation error: 'Keyboard' not found. Does your sketch include the line '#include <Keyboard.h>'?
C:\Users\Arthur\Desktop\test clavier\test clavier.ino: In function 'void setup()':
C:\Users\Arthur\Desktop\test clavier\test clavier.ino:7:3: error: 'Keyboard' was not declared in this scope
Keyboard.begin();
^~~~~~~~
C:\Users\Arthur\Desktop\test clavier\test clavier.ino: In function 'void loop()':
C:\Users\Arthur\Desktop\test clavier\test clavier.ino:15:7: error: 'Keyboard' was not declared in this scope
if (Keyboard.available()) {
^~~~~~~~
exit status 1
Compilation error: 'Keyboard' not found. Does your sketch include the line '#include <Keyboard.h>'?
Par contre je ne suis pas sûre d'avoir compris ce que tu veux faire.
La librairie que tu précise est pour envoyer des touches claviers de ton Arduino à ton PC.
Toi tu veux faire le contraire?
Dans le titre du message il est fait état du clavier de l'ordinateur
Il faut donc :
-sur l'ordinateur un petit programme interceptant les frapes de touche pour envoyer un message à la carte Arduino
-sur la carte Arduino un petit programme re réception du message pour déclencher l'action d'allumage
La bibliothèque keyboard , comme indiqué par @terwal, joue un rôle totalement différent (contraire) , elle permet à certaines cartes Arduino de se comporter comme un clavier USB d'ordinateur.
Il faut un programme qui tourne sur le PC qui parle via la liaison série (par exemple) à votre arduino. Un petit programme en Python ou Java (via Processing) par exemple si vous ne maîtrisez pas le développement avec les API natives de Windows
On peut aussi faire du C#, VB avec Visual studio, mais c'est un peu lourd à installer pour envoyer 4 commandes
En parlant de Python, ne pas oublier son gros concurrent mais je n'ai jamais testé la liaison série en Javascript
Pour éteindre et allumer une led depuis le clavier je pense que ce petit code suffit
tu tapes ensuite "a" dans le port série la led s'allume, "e" elle s'eteint.
pas tout à fait, il faut mettre la pin de la led en sortie.
sinon pas besoin de variable globale (et autant aller un peu plus vite que 9600) et pas la peine de faire les test constamment, vous pourriez mettre la comparaison juste après le Serial.read() et un petit else serait bien aussi.
Sinon un truc comme cela avec un switch
const byte ledPin = 2;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
}
void loop() {
switch (Serial.read()) {
case 'a': digitalWrite(ledPin, HIGH); break;
case 'e': digitalWrite(ledPin, LOW); break;
default: break;
}
// ici on peut faire autre chose
}