Kurze Zusammenfassung, um sicher zu gehen, dass Ich deine Problem
richtig verstanden habe:
1. Du gibst am PC im Arduino Terminal die Zahl 12 ein.
2. Der Arduino empfängt eine 1
3. Der Arduino empfängt eine 2
4. Du willst jetzt in der Variable 'in' wieder eine 12 abgespeichert
haben.
Soweit richtig?
Ein möglicher Lösungsanasatz:
Was du als erstes brauchst ist eine Möglichkeit verschiedene Zahlen zu
unterscheiden. Wenn du 12,12,12 sendest, woher weiß der Arduino, dass du
12,12,12 meinst und nicht 121212 oder 121,212?
Sinnvollerweise würde ich hierfür das Absatzzeichen "\n" nehmen. Wenn
ein Absatz kommt, ist die Zahl zu ende und eine neue Zahl fängt an.
Um die Zahl selbst einzulesen, erst ein kurzer Rückblick auf das
Dezimalsystem. Die Zahl 123 ist effektiv eine kurze Schreibweise für
1 * 100
+ 2 * 10
+ 3 * 1
bzw.
1 * 10^2
+ 2 * 10^1
+ 3 * 10^0
Wenn du jetzt deine Zahl einliesst, kannst du nach folgenden Muster
vorgehen:
1 | 1 : tempZahl = 0;
|
2 | 2 : ergebnis = 0;
|
3 | 3 :
|
4 | 4 : loop:
|
5 | 5 : aktuellesZeichen = leseZeichenVonSerial();
|
6 | 6 : wenn aktuellesZeichen == '\n':
|
7 | 7 : ergebnis = tempZahl;
|
8 | 8 : tempZahl = 0;
|
9 | 9 : sonst:
|
10 | 10: tempZahl = tempZahl * 10;
|
11 | 11: tempZahl = tempZahl + wandeleZuZahl(aktuellesZeichen);
|
Spiel dieses Beispiel mal mit ein paar verschiedenen Eingaben durch, und
implementier das dann in richtigem C++.