Hallo
bin ganz neu hier und suche wie viele Hilfe bei einem Projekt für meinen behinderten Neffen. Er ist körperlich behindert und kann nicht sprechen aber er kann mit dem Daumen eine Tastatur bedienen aber nur sehr langsam.
Ich will ihm eine Tastatur ( USB ) mit einen kleinen Display bauen auf dem einfach nur die Zahlen Buchstaben angezeit werden die er nacheinander getipp hat .So könnte man mit Ihm kommuniziern .
ich habe einen Nano hier schon liegenund ein Display bei Youtube gibt es auch einen Beitrag der das genau so macht ( Doktor Volt) ich habe auch so alles aufgebaut der Couser blinkt aber ich bekomme keine Daten von der Tastatur ( denke ich zumindest ) habe so gut wie eine ahnung von dem Arduino .
Wie kann ich testen ob ich daten empfang von der Tastatur sollte doch im Serial Monitor angezeigt werden oder .
Vielleicht könnte mir da jemand weiter helfen oder hat einen ganz anderen Ansatz ich hätte auch noch einen Mega mit einen 4 x 20 Display der läuft bzw da kann ich text darstellen aber ich weis nicht wie da das Programm schreiben muss um di Tastatur zu integrieren
hier der Sketch von Doctor Volt ich hoffe das darf man so machen der auf dem Nano laufen soll bei mir leider nicht. Freue michüber jede Hilfe wäre echt eine tolle sache wenn ich das hinbekommen könnten, und man auf disem weg mit ihm sprechen könnte.
#define CLOCK 6 //D-
#define DATA 7 //D+
#include <LiquidCrystal.h> //Best imported by library manager
const char keymap[] = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, '`', 0,
0, 0 , 0 , 0, 0, 'q','1', 0,
0, 0, 'z','s','a','w','2', 0,
0,'c','x','d','e','4','3', 0,
0,' ','v','f','t','r','5', 0,
0,'n','b','h','g','y','6', 0,
0, 0, 'm','j','u','7','8', 0,
0,',','k','i','o','0','9', 0,
0,'.','/','l',';','p','-', 0,
0, 0,'\'', 0,'[', '=', 0, 0,
0, 0,13, ']', 0, '\\', 0, 0,
0, 0, 0, 0, 0, 0, 127, 0,
0,'1', 0,'4','7', 0, 0, 0,
'0','.','2','5','6','8', 0, 0,
0,'+','3','-','*','9', 0, 0,
0, 0, 0, 0 };
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup()
{
Serial.begin(115200);
pinMode(CLOCK, INPUT_PULLUP); //For most keyboards the builtin pullups are sufficient, so the 10k pullups can be omitted
pinMode(DATA, INPUT_PULLUP);
pinMode(13, OUTPUT);
lcd.begin(20, 4);
lcd.cursor();
lcd.blink();
bitSet(PCICR, PCIE2); // Enable pin change interrupts on pin D0-D7
bitSet(PCMSK2, CLOCK); // Pin change interrupt on Clock pin
}
uint8_t lastscan;
uint8_t line = 0, col = 0;
ISR(PCINT2_vect)
{
uint16_t scanval = 0;
for(int i = 0; i<11; i++)
{
while(digitalRead(CLOCK));
scanval |= digitalRead(DATA) << i;
while(!digitalRead(CLOCK));
}
scanval >>= 1;
scanval &= 0xFF;
Serial.println(scanval, HEX);
if(lastscan != 0xF0 && scanval != 0xF0)
switch(scanval)
{
case 0x5A: //Enter
lcd.setCursor(0, ++line & 0x03);
col = 0;
break;
case 0x66: //Backspace
lcd.setCursor(--col, line);
lcd.write(' ');
lcd.setCursor(col, line);
break;
default:
lcd.write(keymap[scanval]);
col++;
}
lastscan = scanval;
bitSet(PCIFR, PCIF2);
}
void loop()
{
/*digitalWrite(13, LOW);
delay(500);
digitalWrite(13, HIGH);
delay(500);*/
}
Vielen Dank




