Hallo Community.
Ich würde gern mit einem Uno, an welchem 12 Taster angeschlossen sind, nach Betätigung eines Tasters ein Zeichen per Serial.write() an einen Raspberry Pi übertragen, der dann abhängig vom empfangenen Zeichen unterschiedliche Aktionen ausführen soll.
Zum Zwecke der Übersichtlichkeit habe ich dafür verschiedene Arrays angelegt. Da ich bisher noch nie mit Arrays gearbeitet habe und mich jetzt daran versuchen wollte wäre es mir eine große Hilfe, wenn jemand über den Code schauen könnte bis mein neuer Arduino irgendwann nächste Woche hier eintrifft.
void setup(){
const byte pins[12] = {2;3;4;5;6;7;8;9;10;11;12;13}; //Array für Pins
char serial[12] = {'a';'b';'c';'d';'e';'f';'g';'h';'i';'j';'k';'l'}; //Zeichen für serielle Übertragung
const byte bstate[12] = {1;1;1;1;1;1;1;1;1;1;1;1}; //aktueller Pin-Status (High, weil Pullup und active Low)
const byte bstatealt[12] = {1;1;1;1;1;1;1;1;1;1;1;1}; //alter Pin-Status
Serial.begin(9600);
for (byte i=0; i < 12; i++) { //Pins setzen als Input, interner Pullup aktiv
pinMode(pins[i]; INPUT_PULLUP);
}
void loop(){
for (byte a = 0; a < 12; a++) { //Pin-Status in bstate schreiben
bstate = digitalRead(pins[a]);
if (bstate[a] == 0 && bstate[a] != bstatealt[a]) { //wenn Pin-Status Low und vorher High, dann Serial.write()
Serial.write(serial[a]);
bstatealt[a] = bstate[a]; //alter Status = neuer Status
}
else {
bstatealt[a] = bstate[a];
}
}
Dies ist wie gesagt mein erster Versuch mit Arrays. Auch beim Serial.write bin ich mir nicht sicher, ob es so richtig ist (die ' im Array). Es soll der jeweils entsprechende Buchstabe, nicht der Wert übertragen werden (habe gelesen, dass A auch 66 sein kann, wenn nicht richtig definiert).
Vielen Dank im Voraus
Dominik