(01-12-2019, 16:20)Robson Kerman napisał(a): W normalnej sytuacji napisał bym: debuguj.
Ale programowanie Arduino nie stwarza normalnych sytuacji, więc najlepszym sposobem jest wypisanie zmiennych na serial w istotnych miejscach programu.
Ale zanim zaczniemy, to powinieneś sprawdzić, czy przepisałeś mój kod dokładnie, bo jeśli tak, to tam jest błąd.
Jest:
Kod:while (gpsBoard.available()) {
ReadString = Serial.readString();
}
Powinno być:
Kod:while (gpsBoard.available()) {
ReadString = gpsBoard.readString();
}
tak to zauważyłem i poprawiłem, niestety którejś pętli nie przechodzi, tak zrobiłem i nic :
#include <SoftwareSerial.h>
SoftwareSerial gpsBoard (2, 3, false);
String ReadString;
void setup() {
Serial.begin(115200);
gpsBoard.begin(9600);
}
void loop()
{
while (gpsBoard.available()) {
ReadString = gpsBoard.readString();
Serial.print(ReadString);
}
ReadString.trim(); // usuwamy spacje przed $
if (ReadString.startsWith("$GPVTG")) { // jeśli string zaczyna się znakami $GPVTG
for (int x = 0 ; x < 7; x++){ // usuń wszystko do siódmego przecinka
int pozycja=ReadString.indexOf(',');
ReadString.remove(0, pozycja+1);
}
char Speed[3];
for (int i=0; i < 3; i++){
Speed[i]=ReadString.charAt(i); // przeczytaj pięć pierwszych znaków
}
Serial.print(Speed);
}
}