MIT App Inventor: Zweistellige Zahl in einem Serial Read

Hallo Miteinander,

das ist das erste mal das ich in einem Forum eine Frage stelle, ich hoffe ich kann meine Frage möglichst verständlich formulieren.

Mein Projekt:
Mit dem MIT App Inventor möchte ich eine App Programmieren in welcher ich mit dem TimePicker Modul eine Uhrzeit festlegen kann (ähnlich einem Wecker auf Android stellen). Diese Uhrzeit soll über eine Bluetooth Verbindung und einem HC05-Modul an den Arduino gesendet werden.

Neben dem BT-Modul ist noch ein RTC Modul am Arduino. Wenn die in der App festgelegte Zeit mit der im RTC-Modul übereinstimmt soll der Alarm angehen. (Relais mit Glühbirne - Hier keine Probleme).

Mein Problem:
Der Arduino empfängt die Werte von der App über die Serial.Read() - Funktion und weiß zum Beispiel nicht ob es sich um Stunden oder Minuten handelt. Deshalb arbeite ich mit einer Zählervariable damit beim TouchDown des Bestätigen Knopfes die Stunden und beim TouchUp die Minuten gesendet werden.
Das klappt auch ganz gut, jedoch nur mit einstelligen Werten. Ich kann also einen Wecker mit 6:09 Uhr problemlos einstellen aber 6:30 Uhr funktioniert nicht, weil der Serial Read() immer nur eine Zahl nimmt.

Nun meine Frage, wie kann ich am BlockCode im Inventor oder in der Arduino IDE passende Änderungen vornehmen. Hat jemand eine Idee ? Bin schon sehr lange auf der Suche und wirklich ratlos.

Hier der Code

bt1-0.ino (1.7 KB)

Um Stunden, Minuten und das Ende insgesamt zu erkennen, muss mehr als insgesamt zwei Zeichen übertragen werden. Bei einer Uhrzeit bietet sich da ein ':' und ein '\n' an. ( Oder so )

Da wir hier im Arduino-Forum sind, teste es doch der Einfachheit halber mit dem SerialMonitor der IDE.
Wenn das funktioniert, kannst du ja versuchen, dass der AppInventor das gleiche macht.

Mehrstellige vorzeichenlose Zahlen gehen fast so einfach wie einstellige.

wert = wert*10 + (Serial.read() - '0');

Das StandardWerk :slight_smile: hierzu
Ohne Startzeichen muss man rechtzeitig wert wieder zurücksetzen.