ZS-X12H Treiber und Sunray

Du musst aufpassen da läuft noch nichts vernünftig, Gear Motoren machen komische Sachen, ich vermute der LoopCall kommt zu schnell hintereinander, Mähmotor dreht gut. Shutdown ungetestet, Spannung-Strommessung funktioniert gut, Buzzer piept irgendwie nicht mehr, hat aber schon mal funktioniert
ok, danke für die Warnung. Gucke ich mir an und werde berichten. Ich habe in meinem Code die RP2040_PWM-Library anstelle von AnalogWrite verwendet. Das funktioniert ganz brauchbar.
 
So lange ich auf dem Laborplatz Einzel die Befehle schicke funktioniert es auch besser, sobald das Ding in echter mower Umgebung ist passieren komische Sachen. Aber wie gesagt einfach noch nicht tief genug mit der FW mich beschäftigt.

Wenn du was rausfindest, dann gerne Bescheid geben.

Ach und noch was, in der 2.x Version habe ich folgende Erkenntnis bzgl. Brake Eingang. Der reagiert nicht linear und wenn überhaupt der Stellnereich ist sehr klein. Man braucht einen eigenen PID für den Brake Eingang mit eigenen Parametern und Grenzen. Aber die Logik wie welche Regler eingreift habe ich der 2.x Version bereits testen können, das funktioniert.
 
Ach und noch was, in der 2.x Version habe ich folgende Erkenntnis bzgl. Brake Eingang. Der reagiert nicht linear und wenn überhaupt der Stellnereich ist sehr klein. Man braucht einen eigenen PID für den Brake Eingang mit eigenen Parametern und Grenzen. Aber die Logik wie welche Regler eingreift habe ich der 2.x Version bereits testen können, das funktioniert.
Brake-Eingang habe ich noch nicht getestet. Ich hänge aktuell noch an der Drehrichtung der Motoren. Aktuell geht es bei mir nur vorwärts.
positiveDirection ist immer true... habe jetzt als workaround erstmal
positiveDirection = setPoint > 0;
eingefügt. Damit geht es auch rückwärts. Gucke ich mir morgen mal genauer an. Steige da heute Abend nicht mehr durch.
 
habe jetzt als workaround erstmal
eingefügt. Damit geht es auch rückwärts. Gucke ich mir morgen mal genauer an. Steige da heute Abend nicht mehr durch.
Ja, schon möglich, ich wäre froh wenn ich die Motoren geradeaus ohne zu stottern und ohne Verzögerung zum Laufen hinbekäme, der Rest danach. (Meine große C Erfahrungen liegen 20 Jahre zurück, C++ habe ich noch nie eigene Projekte gemacht)

Ich habe gesehen, dass ich lokal noch uncommitted Änderungen hatte, das habe ich noch gestern hochgepusht… und Buzzer repariert
 
Zuletzt bearbeitet:
Ich kämpfe aktuell damit, dass der Motor anläuft, wenn der Pico noch nicht hochgelaufen ist. Das Problem wird offensichtlich durch den DIR- und den 5V-Pin verursacht. Der Levelshifter schiebt diese Spannung direkt auf den PWM-Pin rüber und der Motor dreht mit voller Drehzahl. 4k7-Widerstände auf der 3.3V und der 5V-Seite gegen GND reduzieren die Spannung am PWM-Pin. Damit dreht der Motor aber auch nur langsamer. Ist das bei dir genauso? Ansonsten muss ich mal weiterforschen.
 
Meine große C Erfahrungen liegen 20 Jahre zurück, C++ habe ich noch nie eigene Projekte gemacht
Habe mir C/C++ selbst beigebracht und tue mich da sicherlich schwerer als du, aber am Ende kommt da trotzdem was brauchbares raus. Ist nur nicht so professionell wie bei dir und dauert auch länger, bis das Ergebnis passt.
 
Ich kämpfe aktuell damit, dass der Motor anläuft, wenn der Pico noch nicht hochgelaufen ist.
Nein das habe ich nicht, nur wenn ich über den Hauptschalter ausschalte gibt ein kleines Zucken der Motoren, da der Pico in undefinierten Zustand wechselt, aber wirklich nichts wildes, vernachlässigbar klein.

Welche Treiber hast du? Wie sind diese verdrahtet
 
Welche Treiber hast du? Wie sind diese verdrahtet
ich nutze den ZS-X11D1 und habe PWM am seitlichen Eingang (neben dem Impulsausgang) dran. Die Brücke neben dem Kondesator habe ich geschlossen und das Poti auf 0 gedreht. PWM, IMP, DIR, BRAKE, GND und 5V auf die HIGH-Seite vom Levelshifter. Anders, als bei deiner Platine habe ich die 5V aber wegen konkurrierender Spannungsquellen nicht mit dem Pico/Pi verbunden.

Die LOW-Seite vom Levelshifter ist dann mit dem Pico verbunden. GND von LOW und HIGH-Seite sind ebenfalls verbunden.

Vielleicht sollten wir dazu mal ein neues Thema aufmachen. Hat ja nichts mit dem ZS-X12H zu tun.
 
auch wenn ich einen anderen Controller verwende, schreibe ich trotzdem hier weiter, da es mir letzendlich um das Thema Brake geht. Und das scheint bei beiden Controllern gleich zu sein. Ich habe ein bisschen gebraucht zunächst einen stabilen Aufbau zu bekommen. Letzendlich habe ich mich dazu entschieden, den Levelshifter rauszuschmeißen, da dieser bei mir nicht nachvollziehbare Probleme erzeugt hat. Mein Aufbau sieht jetzt ganz einfach aus:
1748712307238.png
...und funktioniert absolut stabil. Die Diode am DIR-Pin habe ich eingefügt, da der Pico den Controller über den DIR-Pin gespeist hat (zu erkennen am leichten glimmen der LED auf dem Controller), wenn der Controller noch keine 24V hatte, der Pico aber schon läuft.

Mit diesem Aufbau habe ich dann den PID eingestellt. Da habe ich mich am Anfang sehr schwer mit getan. Das Ergebnis sieht aber ganz gut aus.
kleine Sprünge werden so beantwortet,
1748712673906.png

und große Sprünge so
1748712703501.png

Als Softwarebasis habe ich den Landrumower von @EinEinfach genommen. Ganz großen Dank an dieser Stelle. Das hat meinen Einstieg deutlich beschleunigt.

Nachdem das so ganz gut lief, habe ich mich an die BRAKE-Funktion gemacht und zunächst den Aufbau von @bernard nachgebaut
1748712881287.jpegund dann die Bremse in die Software integriert und lange, lange mit diversen Optionen experimentiert:
  • Ansteuerung der Bremse im PWM funktioniert nicht. Die Bremse ist eine reine Feststellbremse und reagiert ausschließlich mit blockiert/nicht blockiert.
  • Ansteuerung der Bremse als Stotterbremse mittels digitalWrite funktioniert leider auch nicht. Offensichtlich hat der Controller einen Tiefpass drin, der die Bremse nur sehr verzögert öffnet und schließt.
  • Ansteuerung über den TRACTION-Pin mittels PWM entgegen der Fahrtrichtung reagiert wie die Ansteuerung des BRAKE-Pins.
Da stehe ich jetzt und habe keine Lösung. Da ich auf meinem Grundstück 4m Höhenunterschied habe, kann ich auf eine geregelte Bremse nicht verzichten. Hat jemand da mehr Erfolg wie ich? Was muss ich verändern? Oder gibt es einen besseren Controller für das Thema?
 
Ansteuerung der Bremse im PWM funktioniert nicht. Die Bremse ist eine reine Feststellbremse und reagiert ausschließlich mit blockiert/nicht blockiert.
Das hatte ich in meinen wenigen Versuchen auch gesehen, allerdings dachte ich, das der Stellbereich einfach sehr klein und nicht linear ist. Weiter habe ich noch nicht gemacht, da ich ein andere Problem mit meiner Sunray Version habe, für das ich zum Lösen sehr viel Zeit brauche, was mir aktuell fehlt
 

JYQD_YL01D​

nachdem ich verstanden habe, wonach ich suchen muss, habe ich wahrscheinlich den richtigen Treiber jetzt gefunden. Der JYQD_YL01D eignet sich für bürstenlose Motoren bis 15A bei einem Spannungsbereich von 12-48V. Es lassen sich Zugkraft und Bremskraft per PWM regeln.
Hier mal ein Link auf die Herstellerseite

und der Anschlussplan
1748798755355.png

Kennt jemand diesen Controller und kann hier über Erfahrungen berichten?

Weiß jemand, wo man das Ding kaufen kann? Bei Alibaba habe ich den Controller gefunden, das ist aber meines Wissens nichts für Privatpersonen, oder?
 
Ja hatte ich gesehen. Die liefern aber nicht nach Deutschland. 😭
Frankreich, Polen, Belgien,… alles kein Problem. 😖
 
Zuletzt bearbeitet:
auch wenn ich einen anderen Controller verwende, schreibe ich trotzdem hier weiter, da es mir letzendlich um das Thema Brake geht. Und das scheint bei beiden Controllern gleich zu sein. Ich habe ein bisschen gebraucht zunächst einen stabilen Aufbau zu bekommen. Letzendlich habe ich mich dazu entschieden, den Levelshifter rauszuschmeißen, da dieser bei mir nicht nachvollziehbare Probleme erzeugt hat. Mein Aufbau sieht jetzt ganz einfach aus:
Anhang anzeigen 8012
...und funktioniert absolut stabil. Die Diode am DIR-Pin habe ich eingefügt, da der Pico den Controller über den DIR-Pin gespeist hat (zu erkennen am leichten glimmen der LED auf dem Controller), wenn der Controller noch keine 24V hatte, der Pico aber schon läuft.

Mit diesem Aufbau habe ich dann den PID eingestellt. Da habe ich mich am Anfang sehr schwer mit getan. Das Ergebnis sieht aber ganz gut aus.
kleine Sprünge werden so beantwortet,
Anhang anzeigen 8013

und große Sprünge so
Anhang anzeigen 8014

Als Softwarebasis habe ich den Landrumower von @EinEinfach genommen. Ganz großen Dank an dieser Stelle. Das hat meinen Einstieg deutlich beschleunigt.

Nachdem das so ganz gut lief, habe ich mich an die BRAKE-Funktion gemacht und zunächst den Aufbau von @bernard nachgebaut
Anhang anzeigen 8015und dann die Bremse in die Software integriert und lange, lange mit diversen Optionen experimentiert:
  • Ansteuerung der Bremse im PWM funktioniert nicht. Die Bremse ist eine reine Feststellbremse und reagiert ausschließlich mit blockiert/nicht blockiert.
  • Ansteuerung der Bremse als Stotterbremse mittels digitalWrite funktioniert leider auch nicht. Offensichtlich hat der Controller einen Tiefpass drin, der die Bremse nur sehr verzögert öffnet und schließt.
  • Ansteuerung über den TRACTION-Pin mittels PWM entgegen der Fahrtrichtung reagiert wie die Ansteuerung des BRAKE-Pins.
Da stehe ich jetzt und habe keine Lösung. Da ich auf meinem Grundstück 4m Höhenunterschied habe, kann ich auf eine geregelte Bremse nicht verzichten. Hat jemand da mehr Erfolg wie ich? Was muss ich verändern? Oder gibt es einen besseren Controller für das Thema?
I think you need to first test with a simple 3.3V MCU ESP32 or ESP8266.
You also need to add a Pull down or Pull up resistor on the brake line .
If i remember my test : pwm on brake was OK.
 
Oben