Erreur keyboard introuvable

Bonjour, j'ai une erreur dans mon programme arduino. La bibliothèque keyboard.h est introuvable.

Voci mon code:

#include <Keyboard.h>

#define IN1   11
#define IN2   10
#define IN3   9
#define IN4   8

int Steps = 0;
int Direction = 0;
int number_steps = 512; // = 2048/4
bool aPressed = false;
bool bPressed = false;

void setup()
{
  Serial.begin(9600);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  Keyboard.begin();
}

void loop()
{
  if (Keyboard.available()) {
    char key = Keyboard.read();
    if (key == 'a') {
      aPressed = true;
      bPressed = false;
      Direction = 1;
    } else if (key == 'b') {
      aPressed = false;
      bPressed = true;
      Direction = -1;
    } else {
      aPressed = false;
      bPressed = false;
      Direction = 0;
    }
  }

  if (aPressed) {
    stepper(number_steps, Direction);
  } else if (bPressed) {
    stepper(-number_steps, Direction);
  } else {
    // moteur est arrêté
  }

  delay(10);
}

void stepper(int steps, int dir) {
  int step_delay = 2; // ajustez le délai pour régler la vitesse du moteur

  for (int i = 0; i < abs(steps); i++) {
    if (dir > 0) {
      Step_Counter();
    } else {
      Step_Counter2();
    }
    delay(step_delay);
  }
}

void Step_Counter() {
  Steps++;
  if (Steps == 1) {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
  } else if (Steps == 2) {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
  } else if (Steps == 3) {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
  } else if (Steps == 4) {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, HIGH);
    Steps = 0;
  }
}

void Step_Counter2() {
  Steps--;
  if (Steps == 4) {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, HIGH);
  } else if (Steps == 3) {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
  } else if (Steps == 2) {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
  } else if (Steps == 1) {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    digitalWrite(IN3, LOW);
    digitalWrite(IN4, LOW);
    Steps = 5;
  }
}

et j'ai l'erreur "'Keyboard' introuvable. Est-ce que votre croquis inclut la ligne '#include <Keyboard.h>' ?"
J'ai bien installer la librairie keyboard.h (la dernière version) et je controle une carte ARDUINO UNO R3 BOARD par cable usb.
Le codage fonctionne bien lorsque je veux juste tourner mon moteur sans le controler avec mon clavier donc normalement tout devrait être bon.

Bonjour @broonss et Bienvenue sur ce forum !

La bibliothèque Keyboard n'est pas compatible avec les cartes pourvues d'un ATMega328 comme la carte UNO

Utilser pour cela une carte dont le microcontromeur dispose d'un USB 'natif' : Leonardo, Pro Micro.......

Voir ici : https://www.arduino.cc/reference/en/language/functions/usb/keyboard/

Notes and Warnings

These core libraries allow the 32u4 and SAMD based boards (Leonardo, Esplora, Zero, Due and MKR Family) to appear as a native Mouse and/or Keyboard to a connected computer.

Où on peut aussi reprogrammer il me semble le micro-contrôleur qui se charge de la communication avec l'ordinateur par USB... Mais ça me semble compliqué et je n'ai pas trouvé grand chose dessus.

Une autre manière est de créer un petit script sur l'ordinateur qui permettra de lire le texte reçu sur le Moniteur Série et écrit les ordres donnés pas l'Arduino Uno.

@techvij cette modification de la carte UNO est faisable .....si la carte UNO en mains dipose d'un 16u2 ...

En installant un profil HID dans le 16u2 on perd le flashage par bootloader , pas très confortable pour la mise au point si on n'a pas de quoi flasher par ISP

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.