Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Tutorial zur bürstenlosen Motorsteuerung von Arduino | ESC | BLDC

In diesem Tutorial lernen wir, wie man einen bürstenlosen Motor mit Arduino und ESC steuert. Falls Sie weitere Einzelheiten zur Funktionsweise von BLDC-Motoren wünschen, können Sie den anderen Artikel lesen oder sich das folgende Video ansehen, das das Funktionsprinzip eines bürstenlosen Motors erklärt und wie man ihn mit Arduino und ESC steuert.

Übersicht

Für dieses Beispiel habe ich einen Außenläufer-BLDC-Motor mit den folgenden Spezifikationen:Er hat eine KV-Bewertung von 1000, kann mit 2S-, 3S- oder 4S-LiPo-Akkus betrieben werden und benötigt 30A ESC. Der KV-Wert eines bürstenlosen Motors definiert die Drehzahl des Motors pro Volt ohne Last.

In diesem Fall bedeuten die 1000 kV, dass beispielsweise, wenn wir den Motor mit einem 2S-LiPo-Akku mit einer Spannung von 7,4 Volt versorgen, der Motor eine maximale Drehzahl von 7,4 mal 1000 erreichen kann, oder das sind 7400 U/min.

Bürstenlose Motoren sind stromhungrig und die gebräuchlichste Methode, sie mit Strom zu versorgen, ist die Verwendung von LiPo-Batterien. Die Zahl „S“ eines LiPo-Akkus gibt an, wie viele Zellen der Akku hat, und jede Zelle hat eine Spannung von 3,7 V.

Für dieses Beispiel verwende ich einen 3S-LiPo-Akku mit 3 Zellen und 11,1 V. Ich kann also davon ausgehen, dass mein Motor eine maximale Drehzahl von 11100 U/min erreicht.

Zu guter Letzt ist hier ein 30-A-Regler, den ich für dieses Beispiel verwenden und mit den Motoranforderungen abgleichen werde. Auf der einen Seite hat der ESC drei Drähte, die die drei Phasen des Motors steuern, und auf der anderen Seite hat er zwei Drähte, VCC und GND, für die Stromversorgung.

Es gibt auch einen weiteren Satz von drei Drähten, die aus dem ESC kommen, und das ist die Signalleitung, +5 V und Masse. Diese Funktion des ESC wird Battery Eliminator Circuit genannt und macht, wie der Name schon sagt, die Notwendigkeit einer separaten Batterie für einen Mikrocontroller überflüssig. Damit liefert der ESC geregelte 5V, die zur Stromversorgung unseres Arduino verwendet werden können.

Wir können hier feststellen, dass diese Verbindung tatsächlich die gleiche ist wie die, die wir bei Servomotoren sehen.

Die Steuerung eines bürstenlosen Motors mit ESC und Arduino ist also so einfach wie die Steuerung eines Servos mit Arduino. ESCs verwenden die gleiche Art von Steuersignal wie Servos und das ist das standardmäßige 50-Hz-PWM-Signal.

Dies ist sehr praktisch, da wir zum Beispiel beim Bau eines RC-Flugzeugs normalerweise sowohl Servos als auch bürstenlose Motoren benötigen und diese auf diese Weise einfach mit dem gleichen Controllertyp steuern können.

Mit dem Arduino müssen wir also nur das 50-Hz-PWM-Signal erzeugen und abhängig von der Impulsbreite oder der Dauer des hohen Zustands, die zwischen 1 Millisekunde und 2 Millisekunden variieren sollte, treibt der ESC den Motor von minimaler bis maximaler Drehzahl an.

Arduino Brushless Motor Control – Schaltplan

Hier ist der Schaltplan für dieses Beispiel. Zusätzlich zum ESC verwenden wir nur ein einfaches Potentiometer zur Steuerung der Motordrehzahl.

Die für dieses Arduino-Tutorial benötigten Komponenten erhalten Sie über die folgenden Links:

  • Bürstenloser Motor ………………………
  • ESC 30A …………………………………….
  • Li-Po-Akku ……………….…..……
  • Arduino-Board …………………………
  • Potentiometer ………………………….
  • Breadboard und Schaltdrähte …

Arduino-Code für BLDC-Motorsteuerung

Der Arduino-Code ist mit nur wenigen Codezeilen wirklich einfach.

/* Arduino Brushless Motor Control by Dejan, https://howtomechatronics.com */ #include <Servo.h> Servo ESC; // create servo object to control the ESC int potValue; // value from the analog pin void setup() { // Attach the ESC on pin 9 ESC.attach(9,1000,2000); // (pin, min pulse width, max pulse width in microseconds) } void loop() { potValue = analogRead(A0); // reads the value of the potentiometer (value between 0 and 1023) potValue = map(potValue, 0, 1023, 0, 180); // scale it to use it with the servo library (value between 0 and 180) ESC.write(potValue); // Send the signal to the ESC } Codesprache:Arduino (arduino)

Beschreibung: Also müssen wir die Servo-Bibliothek definieren, denn mit der Servo-Bibliothek können wir das 50-Hz-PWM-Signal einfach erzeugen, ansonsten haben die PWM-Signale, die der Arduino erzeugt, unterschiedliche Frequenzen. Dann müssen wir ein Servoobjekt für die ESC-Steuerung erstellen und eine Variable zum Speichern des analogen Eingangs vom Potentiometer definieren. Im Setup-Abschnitt definieren wir mit der Attach()-Funktion, an welchen Arduino-Pin das Steuersignal des ESC angeschlossen ist, und definieren auch die minimale und maximale Impulsbreite des PWM-Signals in Mikrosekunden.

Im Schleifenabschnitt lesen wir zuerst das Potentiometer, ordnen seinen Wert von 0 bis 1023 einem Wert von 0 bis 180 zu. Dann senden wir mit der Funktion write () das Signal an den ESC oder erzeugen das 50-Hz-PWM-Signal. Die Werte von 0 bis 180 entsprechen den im Setup-Bereich definierten Werten von 1000 bis 2000 Mikrosekunden.

Wenn wir also diesen Code auf unseren Arduino hochladen und dann alles mit der Batterie einschalten, können wir die Geschwindigkeit des bürstenlosen Motors mit dem Potentiometer von null bis maximal steuern.

Es gibt jedoch einige Dinge, die wir hier beachten sollten. Beim erstmaligen Einschalten des Motors muss der Signalwert gleich oder kleiner als der Mindestwert von 1 Millisekunde sein. Dies wird als Scharfschalten des ESC bezeichnet, und der Motor gibt einen Bestätigungston ab, damit wir wissen, dass er richtig scharfgeschaltet ist. Falls wir beim Einschalten einen höheren Wert haben, was bedeutet, dass wir Gas geben, startet der ESC den Motor nicht, bis wir auf den richtigen Mindestwert drosseln. Dies ist in Bezug auf die Sicherheit sehr praktisch, da der Motor nicht startet, falls wir beim Einschalten Gas geben.

ESC-Kalibrierung

Lassen Sie uns abschließend erklären, wie die ESC-Kalibrierung funktioniert. Jeder ESC hat seine eigenen Höhen und Tiefen, die leicht variieren können. Beispielsweise könnte der Tiefpunkt bei 1,2 Millisekunden und der Höchstpunkt bei 1,9 Millisekunden liegen. In einem solchen Fall wird unsere Drosselung in den ersten 20 % nichts tun, bis sie diesen niedrigen Punktwert von 1,2 Millisekunden erreicht.

Um dieses Problem zu lösen, können wir den ESC kalibrieren oder die Hoch- und Tiefpunkte nach Belieben einstellen. Zu diesem Zweck müssen wir vor dem Einschalten des ESC zuerst unser Potentiometer auf Maximum oder einen Wert drosseln, der mindestens größer ist als der aktuelle Mittelpunkt. Dann können wir den ESC einschalten, und wir hören einige Pieptöne vom Motor, die tatsächlich bestätigen, dass wir den neuen Höhepunkt eingestellt haben.

Dann sollten wir nach 2 Sekunden unser Potentiometer in die Position bewegen, in der wir den neuen Tiefpunkt finden. Wir hören erneut die Bestätigungstöne und damit sind wir mit der ESC-Kalibrierung fertig. Jetzt reagiert unser Gashebel sofort und wir können den Motor innerhalb dieser neuen zwei Punkte steuern.

Das ist so ziemlich alles für dieses Tutorial. Falls Sie lernen möchten, wie man diese bürstenlose Arduino-Motorsteuerung drahtlos macht, können Sie sich mein vorheriges Video ansehen, in dem ich einen Arduino-basierten RC-Sender baue und erklärt, wie man damit BLDC-Motoren steuert.

Ich hoffe, Ihnen hat dieses Tutorial gefallen und Sie haben etwas Neues gelernt. Fühlen Sie sich frei, Fragen im Kommentarbereich unten zu stellen, und vergessen Sie nicht, meine Sammlung von Arduino-Projekten zu überprüfen.


Herstellungsprozess

  1. Anleitung zum Arduino-RFID-Schloss
  2. Münzprüfer mit Arduino steuern
  3. Arduino-Kontrollzentrum
  4. Arduino mit Bluetooth zur Steuerung einer LED!
  5. Linienfolger-Roboter
  6. Arduino-Befeuchtersteuerung
  7. Arduino-Schulungsplattform
  8. Arduino-Tutorial 01:Erste Schritte
  9. BLDC-Motoren und Automatisierung
  10. Eine Einführung in den BLDC-Motor