Ich komm gleich mal zur Sache.
Mein Problem liegt darin, Zahlen die ich über die Serielle Schnittstelle mit einem Arduino übergebe als String beim Raspberry ankommen, ich möchte aber am Raspberry gerne mit diesen Zahlen weiterarbeiten können.
Alle Daten bzw Zahlen kommen an, soweit so gut.
Wie bekomm ich es nun hin den String in eine "int" bzw "float" Variable umzuwandeln?
Ich bekomme es beim besten Willen nicht auf die Reihe.
Hab mich auch durch diverse Seiten gesucht und auch hier im Forum bisschen was gefunden, leider half mir kein Lösungsansatz.
Vielleicht stehe ich auch einfach nur gewaltig auf der Leitung Wenn dem so ist, verzeiht mir bitte schon im Voraus
Code hänge ich natürlich an.
Arduino Code:
Senden von einfachen Zahlen zu Testzwecken.
Code: Alles auswählen
int daten[3] = {0,0,0};
const int potipin = A3;
int taster = 1;
int poti = 125;
int poti2 = 300;
void setup(){
Serial.begin(9600);
pinMode(potipin, INPUT);
}
void loop(){
poti = map(analogRead(potipin), 0, 1023, 1000, 3000);
daten[0] = taster;
daten[1] = poti;
daten[2] = poti2;
for(int i = 0; i<3; i++){
Serial.print(daten[i]);
Serial.print(",");
delay(100);
}
Serial.println();
}
Raspberry Code:
Empfang und Ausgabe via Terminal
Code: Alles auswählen
import serial
import time
verbindung = serial.Serial('/dev/ttyACM0', 9600)
verbindung.isOpen()
print('Verbindung wird aufgebaut...')
time.sleep(5)
x=1
try:
while True:
# antwort = verbindung.readline()
#print(antwort)
#time.sleep(1)
while (verbindung.inWaiting() == 0):
pass
arduinoString = verbindung.readline()
dataArray = arduinoString.split(b',')
taster = (dataArray[0])
poti = (dataArray[1])
poti2 = (dataArray[2])
print("Taster=*")
print(taster)
print("Poti=")
print(poti)
print('Poti2=')
print(poti2)
except KeyboardInterrupt:
verbindung.close()