Probleme mit der H-Brücke (BTS7960)

Hallo Leute,

ich habe vor einen Motor mit Hilfe einer H-Brücke und einem Controllino anzusteuern, aber der Motor dreht sich leider nicht. Aus dem Grund wollte ich hier mal fragen, ob jemand weiß woran es liegen könnte :smiley:

H - Brücke: DC Motortreiber H-Brücke BTS7960 5,5V bis 27V 43A PWM | Roboter-Bausatz.de

Controllino: CONTROLLINO MAXI - Controllino Shop

Motor: GM49,6 24V: Getriebemotor 49,6 mm, 1:100, 24 V DC bei reichelt elektronik

Ich habe folgende Verkabelung, bei der meine Enable Pins immer High geschaltet sind:

und folgenden Code:

#include <BTS7960.h>

#include <Controllino.h>




int LPWM = CONTROLLINO_D0; 



int RPWM = CONTROLLINO_D5; 
 


void setup() { 
  Serial.begin (9600); 
  pinMode(LPWM, OUTPUT); 
  pinMode(RPWM, OUTPUT); 

  

  }

void loop() 
{
  stopp (); delay (1000);
  rechts (); delay (9000);
  stopp (); delay (1000);
  links (); delay (9000);
}


void stopp()

{
  analogWrite (RPWM, 0);
  analogWrite (LPWM, 0);

  
  Serial.println ("stopp");
}

void rechts()

{
  analogWrite (RPWM, 250);
  analogWrite (LPWM, 0);
  Serial.println ("rechts");
}

void links()

{
  analogWrite (RPWM, 0);
  analogWrite (LPWM, 250);

  Serial.println ("links");
}

Aber leider dreht sich nichts, obwohl hier ( BTS7960 Motor Driver.pdf (handsontec.com)) eine ähnliche Verdrahtung genutzt wurde.

Mit dieser Verkabelung bekomme ich an allen Verbindungen am Breadboard ca. 5V ( 4,51 V),
an dem Batterie Anschluss der Brücke 24V
an den PWM Pins 0V
an dem Motor Anschluss der H- Brücke leider auch 0V.

Der Controllino und die Brücke wurde austauscht aber leider dreht sich weiterhin nichts.

Auch mit folgender Verkabelung:


und diesem Code:

#include <BTS7960.h>

#include <Controllino.h>



#define R_PWM  CONTROLLINO_D5
#define PWM  CONTROLLINO_D1
#define L_PWM  CONTROLLINO_D0






void setup() 
{
  pinMode (R_PWM, OUTPUT);
  pinMode (L_PWM, OUTPUT);
  pinMode (PWM, OUTPUT);
}

void loop() 
{
  stopp (); delay (1000);
  rechts (); delay (9000);
  stopp (); delay (1000);
  links (); delay (9000);
}


void stopp()

{
  analogWrite (PWM, 0);
  digitalWrite (R_PWM, LOW);
  digitalWrite (L_PWM, LOW);
}

void rechts()

{
  analogWrite (PWM, 150);
  digitalWrite (R_PWM, HIGH);
  digitalWrite (L_PWM, LOW);
}

void links()

{
  analogWrite (PWM, 150);
  digitalWrite (R_PWM, LOW);
  digitalWrite (L_PWM, HIGH);
}

funktioniert es leider nicht. Kann mir da bitte einer weiterhelfen?

Viele Grüße
Aram

Mal ne schnelle Frage:
Warum benutzt du nicht die Ausgänge vom Maxi?

Ich wollt die Drehrichtung des Motors bei bedarf ändern. Kann der Controllino das auch ohne Brücke?

Hallo,
nehme dir die Zeit und studiere das Datenblatt vom Controllino Maxi.

Hey,

habe mir die Anleitung durch gelesen und wollte aber lieber vorher fragen, ob das so richtig ist bevor etwas schief geht :smiley:

und folgender Code:

#include <Controllino.h>

void setup() { 
  Serial.begin (9600); 
  pinMode(CONTROLLINO_D0, OUTPUT); 
  pinMode(CONTROLLINO_D5, OUTPUT); 
  }

void loop() 
{
  stopp (); delay (1000);
  rechts (); delay (9000);
  stopp (); delay (1000);
  links (); delay (9000);
}

void stopp()

{
  digitalWrite (CONTROLLINO_D0, LOW);
  digitalWrite (CONTROLLINO_D5, LOW);
  Serial.println ("stopp");
}

void rechts()

{
  analogWrite (CONTROLLINO_D0, 150);
  digitalWrite (CONTROLLINO_D5, LOW);
  Serial.println ("rechts");
}

void links()

{
  digitalWrite (CONTROLLINO_D0, LOW);
  analogWrite (CONTROLLINO_D5, 150);
  Serial.println ("links");
}

Ich weiss aber nicht ob das funktioniert, da ich nicht weiss wo der Strom dann hingeht und ob die Digitalen Outputs als GRND dienen wenn ich die LOW schalte.
Ich hab eben das rote Kabel meines Motors an D5 angeschlossen und das schwarze Kabel an GRND dadurch konnte der Motor sich aber nur in eine Richtung drehen, deswegen dachte ich dass die obere Schaltung vielleicht klappen könnte.

Hello,
man nehme ein Messgerät und messe was passiert.

kann da denn nichts durchbrennen wenn ich das wie oben anschließe? Bin leider noch ein Amateur und habe angst dass der Controllino oder der Motor durchbrennt.

Hallo,

also mal ehrlich ...
Laut deinem letzten Bild solltest du das auf keinen Fall anschließen.
Das hat Paulpaulson auch so nicht gemeint.
Er meint du solltest die Beschreibung des Controllinio lesen! und die richtigen Anschlüsse verwenden.
Du musst dir im Klaren werden was Relaiskontakte sind. Wo kommt am Relaiskontakt die Spannung her? Du brauchst Digitalausgänge.
Wenn du die H-Brücke erstmal ohne Controllino ausprobierst, wirst du sehen, sie funktioniert.
Die Stiftleiste der H-Brücke verträgt nur 5V. Nimmst einen Draht und wechselst damit zwischen L_PWM und R_PWM hin und her. Ansonsten alles laut dem handsontec.pdf.

Hallo,

danke für deine Antwort.

Ich verbinde das dann wie in der PDF und schaue mir die Beschreibung für den Controllino nochmal an. Hoffe dass ich dann meinen Fehler finde :slight_smile:

Okay jetzt komme ich leider nicht weiter. Ich habe alles wie in der PDF angeschlossen. Wenn ich die L_PWM und R_PWM Drähte in meine Digitalen Ausgänge klemme passiert nichts, auch wenn diese auf HIGH geschaltet sind. Der Motor dreht sich erst, wenn ich die PWM Drähte an die 5V vom Controllino hänge. Wenn ich die Spannung an dem DO messe erhalte ich 0,45V und wollte fragen wo ran das liegt? Die DO sind doch gleichzeitig auch PWM Ausgänge und dienen doch zum ansteuern von Lampen und Motoren? Oder habe ich was falsch verstanden?

poste ein reales Foto von deinem Aufbau (ausdrücklich KEINE Internet-Realbilder mit eingezeichneten Linien)

Auf dem Foto sollte dann zu sehen sein:

  • Der Controllino
  • Das Netzteil
  • Die Stellen wo du die beiden Messpsitzen des Messgerätes dranhälst
  • die H-Bridge

"PWM-Drähte" ist eine unpräzise Beschreibung. Verwende die genauen Bezeichnungen aus den Datenblättern

Viele mögliche Ursachen:

  • schwarze Messtrippe hat keinen Kontakt wird gar nicht verwendet
  • IO-Pin nicht als Ausgang definiert
  • Kurzschluss gegen GND
    IO_pin als PWM konfiguriert mit kleinem Dutycycle

vgs

Hallo Stefan,

also der Aufbau wäre (ich hoffe man erkennt etwas):

Hier sind R_PWM und L_PWM an den DO angeschlossen.


Ich meine damit die L_PWM und R_PWM Drähte, sorry.

Wenn ich L_PWM (blaues Kabel), wie auf dem Foto, an die 5V am Breadboard stecke dreht sich der Motor nach links.

OK.
Wenn man vor Ort ist dann kann man es leichter nachvollziehen.
Wenn man nur ein Bild zur Verfügung hat dann muss man sich besondere Mühe geben.
Ganz allgemein:

erst einmal mit den richtigen Farben neu verkabeln:

Es zeugt von Professionalität wenn man für Standardsachen wie GND-Anschluss, +5V/+12V Anschluss auch die Standardfarben verwendet.

Das heißt: GND-Leitungen blau oder schwarz

Da du +5V und +12V hast

für alles was +5V hat einheitlich rot
für alles was +12V orange (als dem rot ähnliche Farbe)

Signalleitungen dann in anderen Farben

Dann die Fotos so machen, das man einfach erkennen kann welches Kabel ist wo eingesteckt angeschraubt. Dazu muss man von direkt oben drüber fotografieren. Je schräger der Blickwinkel wird desto schlechter ist es zu erkennen.

Fotos machen Sinn um zu überprüfen ob der reale Aufbau stimmt.
Schaltpläne machen Sinn um zu prüfen ob die Verbindungen im Prinzip richtig gemacht wurden.
Schaltpläne können und sollen! von Hand gezeichnet sein.

Du fängst mal an neue Fotos mit Blick von direkt oben zu machen und ich poste dir mal einen Beispielschaltplan
vgs

Hallo,

BTS Digitalklemme:
VCC .......... 5V
GND ......... Masse
R_IS/L_IS ... lässte frei
R_EN/L_EN ... klemmste auf 5V
zwischen R_PWM und L_PWM schaltest du hin und her, nicht beide gleichzeitig auf 5V "legen".

Die Masseverbindungen vom Controllino, Netzteil und BTS verbinden.

Laut den Bildern scheint das zu passen. Ein Schaltplan wäre natürlich das Optimum. Kontrolliere das bitte nochmal. Vielleicht gibts noch eine Eigenheit des Controllinos. Der hat noch Schutzschaltungen an seinen I/Os. Klemme mal eine Led mit passenden Vorwiderstand an einen Digitalausgang und lasse sie im Sekundentakt blinken. Klappt das?

Was ich auch schon hatte, Kabelbruch und schlechte Pressungen der Chinakabel. Da hilft nur aufwändige Kabelprüfung. Im Grunde alles Schrott. Selber machen ist immer am Besten.

Hier ein Beispiel für einen handgezeichneten Schaltplan:

Der ist bewusst auf die schnelle freihand zusammengestupst.
Um zu erkennen wer ist hier mit wem verbunden ist das völlig ausreichend.

Die Positionen wo ich die Anschlüsse hingesetzt habe passen in etwa mit dem Realfoto.
So ein Schaltplan ist eine Sache von 5 Minuten. Wichtig ist die eindeutigen Bezeichnungen aus den Datenblättern hinzuschreiben.

vgs

1 Like

die Fotos mit den richtigen Farben:


ja wenn ich das so mache funktioniert das nur ich würd den Motor gerne von sich aus drehen lassen, ohne R_PWM und L_PWM hin und her zu schalten. Deshalb habe ich die ja an die Digitalen Outputs gelegt, um die HIGH und LOW zu schalten. Das ist ja rein theoretisch das selbe, wie wenn ich einen immer auf 5V lege, aber mit den Digitalen Outputs dreht der sich gar nicht.

Vielen Dank für den Schaltplan Stefan.

Hallo
Der Controllino benötigt eine Betriebsspannung, sonst funktionieren die "Endstufen" nicht.

muss ich also den Controllino nochmal mit der 24V Spannungsquelle verbinden?