ARDUINO LEONARDO COME KEYBOARD
buongiono,
premetto che sono nuovo da queste parti e quindi mi scuso anticipatamente se scriverò qualche belinata come dicono genova.
ho un arduino leonardo dove fino ad oggi e' stato usato come emulatore di tastiera semplice ,mi spego meglio,ai suoi ingressi digitali ho dei pulsanti n/a che quando vengono premuti l'arduino genera delle lettere e dei numeri come se fosse una tastiera di un pc.
lo skech che uso è' il seguente:
fino qui tutto ok ,poi mi servivano funzioni generate dall'arduino piu' complicate tipo (shift+a,ctrl+e ecc.) e ho trovato sul sito di arduino il seguente sketch:
lo sketch funziona ma solo con il pulsante 0 se sullo sketch volessi inserire tutti gli ingressi come faccio?
io ho provato in tutti modi per esempio come segue ma non mi funziona correttamente per far scrivere l'arduino devo in seguenza pigiare prima il pulsante 0 poi 1 poi 2 poi 0 ,1 ,2 e così via,
cioe' se io volessi pigiare per prima il pulsante 2 devo iniziare dal 1 cmq.
lo skech che ho provato e' il seguente :
lo skech dovrebbe generare sul puls n° 0 ctrl+m sul pulsante n° 1 ctrl+n e sul pulsante n° 2 ctrl +o.
potete cortesemente darmi una soluzione
ciao e grz in anticipo
premetto che sono nuovo da queste parti e quindi mi scuso anticipatamente se scriverò qualche belinata come dicono genova.
ho un arduino leonardo dove fino ad oggi e' stato usato come emulatore di tastiera semplice ,mi spego meglio,ai suoi ingressi digitali ho dei pulsanti n/a che quando vengono premuti l'arduino genera delle lettere e dei numeri come se fosse una tastiera di un pc.
lo skech che uso è' il seguente:
code: [select]
#include <keyboard.h>
void setup() {
pinmode(0, input_pullup);
pinmode(1, input_pullup);
pinmode(2, input_pullup);
keyboard.begin();
}
void loop() {
int statopulsante0 = digitalread(0);
int statopulsante1 = digitalread(1);
int statopulsante2 = digitalread(2);
if (statopulsante0 == low) {keyboard.press(97);}
else {keyboard.release(97);}
if (statopulsante1 == low) {keyboard.press(98);}
else {keyboard.release(98);}
if (statopulsante2 == low) {keyboard.press(99);}
else {keyboard.release(99);}
}
fino qui tutto ok ,poi mi servivano funzioni generate dall'arduino piu' complicate tipo (shift+a,ctrl+e ecc.) e ho trovato sul sito di arduino il seguente sketch:
code: [select]
#include <keyboard.h>
char ctrlkey = key_left_ctrl;
void setup() {
pinmode(0, input_pullup);
keyboard.begin();
}
void loop() {
int statopulsante0 = digitalread(0);
while (digitalread(0) == high) {
delay(50); }
delay(10);
keyboard.press(ctrlkey);
keyboard.press('m');
delay(20);
keyboard.release('m');
keyboard.release(ctrlkey);
delay(20);
delay(10);
}
lo sketch funziona ma solo con il pulsante 0 se sullo sketch volessi inserire tutti gli ingressi come faccio?
io ho provato in tutti modi per esempio come segue ma non mi funziona correttamente per far scrivere l'arduino devo in seguenza pigiare prima il pulsante 0 poi 1 poi 2 poi 0 ,1 ,2 e così via,
cioe' se io volessi pigiare per prima il pulsante 2 devo iniziare dal 1 cmq.
lo skech che ho provato e' il seguente :
lo skech dovrebbe generare sul puls n° 0 ctrl+m sul pulsante n° 1 ctrl+n e sul pulsante n° 2 ctrl +o.
potete cortesemente darmi una soluzione
ciao e grz in anticipo
code: [select]
#include <keyboard.h>
char ctrlkey = key_left_ctrl;
void setup() {
pinmode(0, input_pullup);
pinmode(1, input_pullup);
pinmode(2, input_pullup);
keyboard.begin();
}
void loop() {
int statopulsante0 = digitalread(0);
int statopulsante1 = digitalread(1);
int statopulsante2 = digitalread(2);
while (digitalread(0) == high) {
delay(50); }
delay(10);
keyboard.press(ctrlkey);
keyboard.press('m');
delay(20);
keyboard.release('m');
keyboard.release(ctrlkey);
delay(20);
delay(10);
while (digitalread(1) == high) {
delay(50); }
delay(10);
keyboard.press(ctrlkey);
keyboard.press('n');
delay(20);
keyboard.release('n');
keyboard.release(ctrlkey);
delay(20);
delay(10);
while (digitalread(2) == high) {
delay(50); }
delay(10);
keyboard.press(ctrlkey);
keyboard.press('o');
delay(20);
keyboard.release('o');
keyboard.release(ctrlkey);
delay(20);
delay(10);
}
ti invitiamo presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: presentazioni
e leggere il regolamento se non lo hai già fatto: regolamento
qui una serie di link utili, non inerenti al tuo problema:
- qui una serie di schede xxxpighi per collegamenti elettronici vari: abc - arduino basic connections
- qui le pinout delle varie schede xxxpighi: pinout
- qui una serie di link generali utili: link utili
il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.
e leggere il regolamento se non lo hai già fatto: regolamento
qui una serie di link utili, non inerenti al tuo problema:
- qui una serie di schede xxxpighi per collegamenti elettronici vari: abc - arduino basic connections
- qui le pinout delle varie schede xxxpighi: pinout
- qui una serie di link generali utili: link utili
il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.
Arduino Forum > International > Italiano > Generale (Moderator: leo72) > ARDUINO LEONARDO COME KEYBOARD
arduino
Comments
Post a Comment