Wie bekomme ich mit der Bts7960b H-Bridge die richtige Ausgangsspannung?

Ich verwende eine NodeMCU, um einen BTS7960b-Motortreiber zu steuern . (Datenblatt des BTS7960) Dieser Treiber steuert einen 12-V-Gleichstrommotor. Dieses Bild zeigt meine Verkabelung (ohne das Display und die Tasten und mit einer NodeMCU anstelle des Arduino nano).

Mein Problem ist, wenn der Treiber auf maximale Geschwindigkeit eingestellt ist (die Pins L_EN und R_EN auf High, sowie entweder LPWM oder RPWN auf 255 [ Pin-Bezeichnung auf dieser Seite sichtbar ]), ist die Ausgangsspannung zum Motor konstant nur 3V statt 12v . Aus diesem Grund läuft mein 180 U / min High Torque Motor nur mit etwa ~42 U / min. Eine Verringerung der Geschwindigkeit verringert auch die Ausgangsspannung. Wenn Sie beispielsweise die Geschwindigkeit auf 150 einstellen, wird die Spannung auf ~1,8 V verringert. Dabei spielt es keine Rolle, in welche Richtung der Motor dreht.

Der Motor, die NodeMCU und der Treiber werden von derselben Stromversorgung mit einem Abwärtswandler gespeist. Ich bekomme das gleiche Verhalten mit 3,3 V und 5 V auf der NodeMCU und dem Treiber. Was mache ich falsch?

Danke für die Hilfe! :)

Ist es nur ein Problem, wenn Sie versuchen, den Motor mit voller Geschwindigkeit laufen zu lassen? Kannst du den Motor mit 1/2 Geschwindigkeit laufen lassen? Kann es in beide Richtungen laufen?
@PeterKarlsen Wenn ich die Geschwindigkeit verringere, sinkt auch die Ausgangsspannung. Wenn Sie zB die Geschwindigkeit auf 150 einstellen, beträgt die Spannung ~ 1,8 V und es läuft mit ~ 20 U / min. Ich kann es in beide Richtungen drehen lassen, indem ich den LPWN- oder RPWN-Pin auf einen Wert zwischen 1 und 255 setze. Ich habe die ursprüngliche Frage entsprechend aktualisiert.
Sie müssen die Ursache des Problems isolieren. Ist es ein Problem mit der Stromversorgung, der Software oder etwas anderem? Versuchen Sie, die LPWM- und RPWM-Pins in normale GPIOs zu ändern. Stellen Sie einen auf hoch und den anderen auf niedrig. Damit sollte dein Motor auf Hochtouren laufen. Wenn es funktioniert, liegt das Problem wahrscheinlich in Ihren PWM-Signalen. Hast du sie mit einem Oszilloskop gemessen?
Danke für die Hinweise @PeterKarlsen. Ich habe es herausgefunden. (Siehe meine Antwort)

Antworten (1)

Dank der Hinweise von @Peter Karlsen habe ich es herausgefunden:

Ich war an die 8-Bit-Auflösung für PMW der Arduino-Boards gewöhnt. Aber da meine NodeMCU einen ESP8266-Chip verwendet, beträgt die PMW-Auflösung 10 Bit [ Referenz ]. Der Maximalwert ist also nicht 255, sondern 1023.

Das Ändern der Werte in meinem Code löste das Problem.