So wie ich das sehe, hast du bei der rechten Spule positive Werte. Du solltest die Anschlüsse der Spule einmal tauschen um auch hier einen negativen Wert zu bekommen.
Ok krass, nein das hatt er bei mir noch ni gemacht!!! Also bei dir sind beide minus oder plus. Sehr interessant... aber wie gesagt, sind bei mir beide starr in Der appBei mir sieht es so im Betrieb aus.
Ok aber es scheint ja als hätte ich evtl. Ein Problem in der TeensyFirmware!?Beide sollten negativ anzeigen!
Am besten ist es wenn du dass mit der Hardware machst. Nur wenn sich eine Spule außerhalb befindet, wird der Wert positiv.
Nein alles clean!! Keine Meldungen keine errors!?Was sagt deine Konsole? Hast du da Meldungen von Watchdog? Wenn ja, dann vermute ich Fehler in der I2C Schnittstelle.
Ja das geht gut! Danke. Hast du die letzte aktuelle Version von TeensyMower?Auf jeden Fall müssen beide Werte negativ sein, sonst denkt der Mäher dass er mit der positiven Spule außerhalb ist, und versucht wieder in das negative Feld zu gelangen.
Wenn es softwaretechnisch klappt, versuche es. (Z.b. mit Swap coil polarity)
Ok ich schau morgen mal, ich danke dir erstmalIch habe zur Zeit 1.483
I don't understand the Smag variation with the mag fix value on the setting page (avoid to read on plot page, code can have some bug)Ok ich schau morgen mal, ich danke dir erstmal
hello bernard,I don't understand the Smag variation with the mag fix value on the setting page (avoid to read on plot page, code can have some bug)
Mag value need to change each 500ms (each time arduremote refresh the page).
I can take a look at code ,but it's really strange ,can you test with mower in the middle of area to see if the mag also freeze on small value (near -1000 or less) to be sure it's not a code variable overload.
Did the mower work in auto mode ??
if (millis() >= nextTimeInfo) {
if ((millis() - nextTimeInfo > 250)) {
if (developerActive) {
ShowMessage("------ LOOP NOT OK DUE IS OVERLOAD -- Over 1 sec ");
ShowMessageln((millis() - nextTimeInfo));
}
}
nextTimeInfo = millis() + 1000; //1000
Serial.print(perimeterMagLeft);
Serial.print(" / ");
Serial.println(perimeterMagRight);
printInfo(Serial);
checkErrorCounter();
//if (stateCurr == STATE_REMOTE) printRemote();
loopsPerSec = loopsPerSecCounter;
loopsPerSecCounter = 0;
}
I will check this later, many thanks bernardInto robot.cpp line 2307 etc...
Add
Serial.print(perimeterMagLeft);
Serial.print(" / ");
Serial.println(perimeterMagRight);
and connect the arduino ide serial monitor to check the real value each second.
Code:if (millis() >= nextTimeInfo) { if ((millis() - nextTimeInfo > 250)) { if (developerActive) { ShowMessage("------ LOOP NOT OK DUE IS OVERLOAD -- Over 1 sec "); ShowMessageln((millis() - nextTimeInfo)); } } nextTimeInfo = millis() + 1000; //1000 Serial.print(perimeterMagLeft); Serial.print(" / "); Serial.println(perimeterMagRight); printInfo(Serial); checkErrorCounter(); //if (stateCurr == STATE_REMOTE) printRemote(); loopsPerSec = loopsPerSecCounter; loopsPerSecCounter = 0; }