Problema libreria arduino keypad in processing
ciao ragazzi ho acquistato un tastierino 4x4 e lo fatto funzionare in arduino. dato che devo scrivere su un "blocco note" devo utilizzare processing.
qui nasce il problema, non sò proprio come fare passare la libreria keypad di arduino in processing. questo è il mio codice in arduino:
qui nasce il problema, non sò proprio come fare passare la libreria keypad di arduino in processing. questo è il mio codice in arduino:
code: [select]
//definisce pin per comandare le luci
const int rele_1 = 13; // luce 1
const int rele_2 = 4; // luce 2
// definizione tastiera
#include <keypad.h>
const byte rows = 4; // quattro righe
const byte cols = 4; // quattro colonne
// definizione mappa della tastiera
char keys[rows][cols] = {
{'1','2','3','a'},
{'4','5','6','b'},
{'7','8','9','c'},
{'*','0','#','d'}
};
byte rowpins[rows] = {
8, 7, 6, 5 }; // connessione delle righe: riga0, riga1, riga2 e riga3 ai pins di arduino.
byte colpins[cols] = {
12, 11, 10, 9 }; // connessione delle colonne: colonna0, colonna1 , colonna2 e colonna3 ai pins di arduino.
keypad kpd = keypad( makekeymap(keys), rowpins, colpins, rows, cols ); // creazione della tastiera
void setup() {
// imposta pin digitali come uscite:
pinmode(rele_1, output);
pinmode(rele_2, output);
digitalwrite(rele_1, high);
digitalwrite(rele_2, high);
serial.begin(9600);
}
void loop()
{
char key = kpd.getkey();
if(key) // controlla che il valore sia valido.
{
switch (key)
{
case 48: //valore ascii del numero 0
digitalwrite(rele_1, high);
serial.println(0);
break;
case 49: //valore ascii del numero 1
digitalwrite(rele_1, high);
serial.println(1);
break;
case 50: //valore ascii di 2
digitalwrite(rele_2, high);
serial.println(2);
break;
case 51: //valore ascii di 3
digitalwrite(rele_2, high);
serial.println(3);
break;
case 52: //valore ascii del numero 4
digitalwrite(rele_1, low);
serial.println(4);
break;
case 53: //valore ascii del numero 5
digitalwrite(rele_2, low);
serial.println(5);
break;
case 54: //valore ascii del numero 6
digitalwrite(rele_2, low);
serial.println(6);
break;
case 55: //valore ascii del numero 7
digitalwrite(rele_2, low);
serial.println(7);
break;
case 56: //valore ascii del numero 8
digitalwrite(rele_2, low);
serial.println(8);
break;
case 57: //valore ascii del numero 9
digitalwrite(rele_2, low);
serial.println(9);
break;
}
}
}
in processing dovrai leggere la seriale e in base al carattere ricevuto sai che su arduino han premuto un certo tasto.
cerca nel forum è pieno di esempi in processing di lettura da seriale, ad esempio:
http://forum.arduino.cc/index.php?topic=170392.0
nello sketch arduino però modifica le varie
serial.println(4); // numero 4 che corrisponde un carattere non stampabile video e in più spedisci anche il fine riga quindi 2 char!!!
in
serial.write('4'); // 4 come un solo carattere '4'
cerca nel forum è pieno di esempi in processing di lettura da seriale, ad esempio:
http://forum.arduino.cc/index.php?topic=170392.0
nello sketch arduino però modifica le varie
serial.println(4); // numero 4 che corrisponde un carattere non stampabile video e in più spedisci anche il fine riga quindi 2 char!!!
in
serial.write('4'); // 4 come un solo carattere '4'
Arduino Forum > International > Italiano > Generale (Moderator: leo72) > Problema libreria arduino keypad in processing
arduino
Comments
Post a Comment