Conversie naar INT gaat fout

Arduino specifieke Software
Berichten: 4
Geregistreerd: 04 Feb 2018, 16:09

Conversie naar INT gaat fout

Berichtdoor gharryh » 08 Jan 2023, 22:30

Dit projectje ontvangt twee getallen als string via de seriële poort (b.v. 1234,5678)
De scheiding tussen de twee getallen is een komma.
Voor de conversie gebruik ik 'toInt()' als ik het resultaat print is de waarde niet 1234 maar 12345.

Zit er nu een denkfout in de code of gebruik ik toInt niet correct

Alvast bedankt voor de hulp
Code: Alles selecteren

String inData;
float flXvalue;
float flYvalue;
int intXvalue;
int intYvalue;
//******************************************************************************
void setup() {
  Serial.begin(9600);
  //                1234567890123456
  Serial.println("DC-Test_23008v00");
  //         1234567890123456
  }

void loop() {
  while (Serial.available() > 0)
  {
    char recieved = Serial.read();
    if (recieved != ',' && recieved != '.' && recieved != '\n')
    {
      inData += recieved;
      Serial.println(inData);
    }
    if (recieved == ',') {
      Serial.print("First value: ");
      Serial.print(inData);
      Serial.print(" - ");
      intXvalue = inData.toInt();
      Serial.print(intXvalue);
      inData = "";
    }
    if (recieved == '\n') {
      Serial.print("Second value: ");
      Serial.print(inData);
      Serial.print(" - ");
      intYvalue = inData.toInt();
      Serial.print(intYvalue);
     inData = "";
    }
  }
}

Advertisement

Berichten: 80
Geregistreerd: 02 Nov 2022, 13:03

Re: Conversie naar INT gaat fout

Berichtdoor ThHe » 09 Jan 2023, 12:55

De toInt doet het prima maar je test programma de niet goed:
Serial.print(intXvalue); moet zijn Serial.println(intXvalue); (PRINTLN) en dan zie je dat de 5 de eerst volgende character is die achter de 1234 komt en dus het resultaat 12345 geeft.

Berichten: 4
Geregistreerd: 04 Feb 2018, 16:09

Re: Conversie naar INT gaat fout

Berichtdoor gharryh » 09 Jan 2023, 18:04

Bedankt, stom hé

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Google [Bot], lumsefocloto en 24 gasten