Hallo zusammen,
ich bastle gerade mit einem Arduino Mega und einem Vorprogrammierten Atmega328 rum um ein OBD-Display für mein Auto zu bauen.
Vorweg ich bin blutiger Anfänger ;).
Die kommunikation mit dem Chip funktioniert soweit, allerdings habe ich ein Problem damit die zurückgegebenen Werte weiterzuverarbeiten.
Sende ich dem Chip an Hardware-Port 3 "ata0" gibt er mir den AD-Wert von einem Pin zurück.
Bsp: 0426 \r >
Um mir das Ergebnis im seriellen Monitor anzeigen zu lassen habe ich folgenden Code entwickelt.
Die Anfrage wird nur ausgeführt, wenn ich im seriellen Monitor eine 1 eingebe (der die if-Bedingung mit der Check-Variable)
String H = "ata0";
if(Serial.available() > 0)
{
check = Serial.read();
}
delay(10);
if(check == 49)
{
Serial3.print(H);
Serial3.print("\r");
}
if(Serial3.available() > 0)
{
B = Serial3.parseInt();
Serial.println(B);
delay(10);
}
Allerdings bekomme ich als Output immer den eigentlichen Wert, dann ein CR und eine Null.
Z.B.
426
0
Gibt es eine Möglichkeit das ganze etwas eleganter zu lösen? Muss die Variablen ja hinterher weiterverarbeiten.
Vielen dank und ich hoffe die Frage ist nicht zu dämlich. Bin wie gesagt noch Anfänger auf dem Gebiet.
Gruß
Malte