En cours Leonardo bootloader help...

jpbbricole
Compagnon
26 Mai 2016
1 903
Corsier-sur-Vevey (Vaud)
jpbbricole
Compagnon
26 Mai 2016
1 903
Corsier-sur-Vevey (Vaud)
Salut Gaston
Par contre pour le code, qu'en penses-tu ?
Je vais l'essayer, par contre, j'ai une question, as-tu mis des résistances de polarisation entre les entrées des boutons et le GND, si oui de quelle valeur.

Un peu plus tard (après la sieste :smt015)
J'ai testé le programme

il n'y a qu'une erreur:
#define <Keyboard.h>
au lieu de
#include <Keyboard.h>
ce qui empêche la compilation.

J'ai ajouté:
Serial.begin(9600);
while (!Serial) {}
Cette ligne, sur un Leonardo, doit être ajoutée, sans ça, si tu veux faire un Serial.print... rapidement après le Serial.begin, il risque de ne rien se passer.

Sur le fond du programme, le fait de tester si l'entrée == HIGH oblige de mettre, sur chaque entrée, une résistance pour "tirer" l'entrée ver le LOW.
Il est plus pratique de déclarer l'entrée pinMode(upButton, INPUT_PULLUP); et ainsi de profiter des résistances internes (PULL_UP "tirer" ver le haut) et de par là, mettre le commun des boutons au GND.

J'ai, un peu, réaménagé le programme, sinon les touches se répètent à toute vitesse. Le défaut actuel de ce programme, est qu'il faut changer de touche entre chaque pression pour que cela fonctionne.
Mais il serait très facile de faire évoluer tout ça.

Code:
#include <Keyboard.h>      

// set pin numbers for the five buttons:
const int upButton = 2;
const int downButton = 3;
const int leftButton = 4;
const int rightButton = 5;
const int mouseButton = 6;

char keyboardInputOld = ' ';     // Pour enregistrer la dernière touche pressée
char keyboardInputNew = ' ';     // Pour enregistrer la nouvelle touche pressée

void setup() { // initialize the buttons' inputs:
    pinMode(upButton, INPUT_PULLUP);
    pinMode(downButton, INPUT_PULLUP);
    pinMode(leftButton, INPUT_PULLUP);
    pinMode(rightButton, INPUT_PULLUP);
    pinMode(mouseButton, INPUT_PULLUP);

    Serial.begin(9600);
    while (!Serial) {}  

    Keyboard.begin();
}

void loop() {


    // use the pushbuttons to control the keyboard:
    if (digitalRead(upButton) == LOW) {
        keyboardInputNew = 'u';
    }
    if (digitalRead(downButton) == LOW) {
        keyboardInputNew = 'd';
    }
    if (digitalRead(leftButton) == LOW) {
        keyboardInputNew = 'l';
    }
    if (digitalRead(rightButton) == LOW) {
        keyboardInputNew = 'r';
    }
    if (digitalRead(mouseButton) == LOW) {
        keyboardInputNew = 'm';
    }
   
    if (keyboardInputNew != keyboardInputOld)     // Si la touche a changé pour éviter les répétitions
    {
        Keyboard.write(keyboardInputNew);
        keyboardInputOld = keyboardInputNew;
    }
}
A+
Cordialement
jpbbricole
 
Dernière édition:
gaston83
Compagnon
17 Février 2016
970
FR-71520
Bonsoir jpbbricole,

.... et merci pour ta patience et pour les modifications... comme on dit "il vaut mieux un qui sait que dix qui cherchent" :smt038

Maintenant, je vais attendre de recevoir la nouvelle carte car à priori elle est bel et bien vraquée.... pourquoi ???? j'en ai aucune idée.... le proc 32U4 est bien reconnu par ProgTool mais pas moyen de faire rentrer un quelconque bootloader, ma foi.....

J'ai bien la petite Pro Micro aussi à base de 32U4 mais là, j'ai la pétoche...

Je te tiens au courant...
Merci bon week
 

Dernières discussions

Haut