Probleme mit Programmcode für Türschloßprojekt

... was Datentypen sind. Dann überlegst du, ob du unbedingt mit char arbeiten möchtest, oder ob du einfach byte bzw. int Variablen benutzt. Mit letzteren kann man rechnen und Bitopperationen durchführen

circuit99 hat Recht, nur oben erwähnter Satz ist evtl. missverständlich.
byte und char ist fast dasselbe, bis auf das Vorzeichen. Du meinst sicher den Unterschied zwischen

#define KEY_0 '0' // 0x30
#define KEY_0 0 // 0x00

Beides kann sowohl in byte wie auch in char Variablen verwendet werden.

Ersteres kann gleich angezeigt werden, das zweite ist leichter zum Rechnen. Der Unterschied ist aber minimal ( '0' dazuaddieren bzw. abziehen, oder auch bitweise ein/ausblenden)

int brauchst du nur für mehrstellige codes ( long wenns über 4 Stellen sein können ). Ein 8 bit Arduino arbeitet lieber mit bytes.


#define KEY_star 'stern'
#define KEY_hash 'raute'

ist sehr verwirrend. Schade, dass der Compiler das überhaupt zulässt.

#define KEY_star '*'    // ist übrigens kleiner als '0'

oder

#define KEY_star 10  // oder irgendein Wert > 9

Muss in jedem Fall bei der Berechnung abgefangen werden ( was z.Zt. fehlt und zu Tobias' "Reise nach Jerusalem" führt )