Steuerung eines BTS7960 DC-Motortreiber-Moduls mit einem Arduino

Steuerung eines BTS7960 DC-Motortreiber-Moduls mit einem Arduino

In diesem Tutorial lernen wir, wie man ein BTS7960 DC-Motorsteuerungsmodul mit einem Arduino steuert. Dieses Setup ermöglicht es Ihnen, die Richtung und die Geschwindigkeit eines DC-Motors mit Pulsweitenmodulation (PWM) zu steuern. Am Ende dieses Tutorials haben Sie ein funktionierendes Motorsteuerungssystem, das Sie leicht für Ihre eigenen Projekte anpassen können. Für eine detaillierte visuelle Anleitung sollten Sie sich das Video bei (im Video bei 00:00) ansehen.

BTS7960_Modul-1

Hardware erklärt

Der BTS7960 ist ein Hochstrom-Gleichstrommotorantrieb, der bis zu 43 Ampere verarbeiten kann. Er besteht aus zwei integrierten Schaltungen (ICs), die die Steuerung eines Motors sowohl im Uhrzeigersinn (CW) als auch gegen den Uhrzeigersinn (CCW) ermöglichen. Der Treiber verwendet PWM-Signale, um die Geschwindigkeit des Motors zu variieren, was für Anwendungen, die präzise Steuerung erfordern, unerlässlich ist.

Ein weiterer wichtiger Aspekt dieses Moduls sind die integrierten Strommess- und Übertemperaturschutzfunktionen. Dies hilft, Schäden am Motor und Treiber während des Betriebs zu verhindern. Das Modul wird von einer externen Quelle gespeist und benötigt auch eine separate 5V-Versorgung für seine Logikschaltungen.

Datenblattdetails

Hersteller Infineon Technologies
Teilenummer BTS7960
Logik/I/O-Spannung 5 V
Versorgungsspannung 6-27 V
Ausgangsstrom (pro Kanal) 43 A max
Spitzenstrom (pro Kanal) 60 A
PWM-Frequenzrichtlinien 25 kHz
Eingangslogikschwellen 0,8 V (hoch), 0,3 V (niedrig)
Spannungsabfall / RDS(on)/ Sättigung 16 mΩ
Thermische Grenzen 125 °C max
Paket PTO-263-7
Hinweise / Varianten Dual-H-Brücken-Konfiguration

  • Stellen Sie eine ordnungsgemäße Wärmeableitung für Anwendungen mit hohem Strom sicher.
  • Verwenden Sie den geeigneten Drahtquerschnitt, um den maximalen Strom zu führen.
  • Halten Sie die PWM-Frequenz innerhalb der angegebenen Grenzen für optimale Leistung.
  • Setzen Sie Entkopplungskondensatoren in der Nähe der Stromanschlüsse ein, um die Spannung zu stabilisieren.
  • Überwachen Sie die Temperatur während des Betriebs, um Überhitzung zu verhindern.

Verdrahtungsanweisungen

BTS7960-_motor_wiring

Um das BTS7960-Motortreiber-Modul an Ihr Arduino anzuschließen, müssen Sie die Stromversorgung, die Masse, die Steuer- und die Motoranschlüsse korrekt verbinden. Beginnen Sie damit, die Stromversorgung mit dem Modul zu verbinden.B+undB-Terminals, wobei sichergestellt wird, dass die Polarität korrekt ist. DieB+Terminal ist der Punkt, an dem die positive Versorgung angeschlossen wird, währendB- verbindet mit dem Erdungssystem.

Als nächstes den Motor anschließen an dieM+undM-Anschlüsse am Modul. Diese steuern die Richtung des Motors. Für die Steuerpins schließen Sie die Arduino-Pins wie folgt an das Modul an:RPWMzu Pin 3,R_ENzu Pin 4,R_ISzu Pin 5,LPWMzu Pin 6,L_ENzu Pin 7 undL_ISzu Pin 8. Achten Sie darauf, den Arduino-Grund zu dem Modulgrund zu verbinden.

BTS7960_Module-2

Benötigte Bibliothek installieren

Um zu installieren dierobojax_BTS7960_motor_driver_libraryIm Arduino IDE laden Sie zuerst die ZIP-Datei der Bibliothek von dem bereitgestellten Link herunter. Nachdem die Datei gespeichert ist, öffnen Sie Ihr Arduino IDE und navigieren Sie zuSkizze > Bibliothek einfügen > .ZIP-Bibliothek hinzufügen...Im Datei-Auswahl-Dialog navigieren Sie zu der heruntergeladenen ZIP-Datei, wählen Sie diese aus und klicken Sie auf "Öffnen". Die IDE wird dann die Bibliothek installieren. Sie können eine erfolgreiche Installation bestätigen, indem Sie dieDatei > BeispieleMenü, in dem eine neue Kategorie mit dem Namen "Robojax BTS7960 Motor Driver Library" erscheinen sollte. Sie können jetzt die Bibliotheksheader in Ihren Code einfügen mit#include <RobojaxBTS7960.h>.

Code-Beispiele und Anleitung

Der Arduino-Code zur Steuerung des BTS7960-Motorantriebs beginnt mit der Definition der erforderlichen Pins. Zum Beispiel wird der Pin für das rechte PWM-Signal als definiert.RPWMund auf Pin 3 gesetzt. Zusätzlich ist der Enable-Pin für die rechte Seite definiert alsR_ENund auf Pin 4 eingestellt.

#define RPWM 3 // define pin 3 for RPWM pin (output)
#define R_EN 4 // define pin 4 for R_EN pin (input)

Dieses Setup stellt sicher, dass der Motor genau gesteuert werden kann. Imsetup()Funktion, der Motor wird mit initialisiertmotor.begin(), das den Fahrer auf den Betrieb vorbereitet.

void setup() {
  Serial.begin(9600);// setup Serial Monitor to display information
  motor.begin(); // Initialize motor
}

In derloop()Die Richtung und Geschwindigkeit des Motors werden mit der Funktion gesteuert.motor.rotate(speed, direction)Methode. Um den Motor beispielsweise mit voller Geschwindigkeit im Uhrzeigersinn zu betreiben, würden Sie verwendenmotor.rotate(100, CW);.

void loop() {
    motor.rotate(100,CW); // run motor with 100% speed in CW direction
    delay(5000); // run for 5 seconds
}

Für detailliertere Beispiele und Varianten sollten Sie den vollständigen Code, der unter dem Artikel geladen ist, überprüfen.

Demonstration / Was zu erwarten ist

Wenn alles richtig verkabelt und programmiert ist, sollten Sie erwarten, dass der Motor je nach Code in beide Richtungen rotiert. Zunächst wird der Motor fünf Sekunden lang mit voller Geschwindigkeit laufen, dann drei Sekunden lang anhalten und anschließend in die entgegengesetzte Richtung für die gleiche Dauer rotieren. Dieser Zyklus wird sich wiederholen, sodass Sie die Reaktionsfähigkeit des Motors auf die PWM-Signale sehen können.

Häufige Fallstricke sind die umgekehrte Polarität beim Anschließen des Motors oder der Stromversorgung, was die Komponenten beschädigen kann. Darüber hinaus sollte sichergestellt werden, dass die PWM-Pins im Code korrekt zugewiesen sind (im Video um 12:34).

Video-Zeiten

  • 00:00 Start
  • 00:48 Hardware erklärt
  • 04:06 Datenblatt angesehen
  • 07:07 Verdrahtung erklärt
  • 09:00 Code erklärt
  • 14:33 Demonstration
  • 16:47 Maximale Stromprüfung
  • 19:25 Wärmebild
  • 19:27 Unterschiedlicher Code-Test

Bilder

BTS7960-_motor_wiring
BTS7960-_motor_wiring
BTS7960_module-1
BTS7960_module-1
BTS7960_module-2
BTS7960_module-2
BTS7960_module-3
BTS7960_module-3
BTS7960_module-4-heat-sink
BTS7960_module-4-heat-sink
202-Arduino Code to control BTS7960 Motor Driver
Sprache: C++
203-Arduino Code to control two or more DC motors using BTS7960 motor driver
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Dateien📁

Arduino-Bibliotheken (zip)

Datenblatt (pdf)

Fritzing-Datei