Nr. 46 – Brushlessmotor mit ESC ansteuern

In dieser Anleitung zeigen wir, wie ein starker Brushless Elektromotor aus dem Modellbaubereich mit Hilfe eines Arduino Mikrocontrollers angesteuert werden kann.

 In unserem Beispiel verwenden wir dafür ein Gebläse bzw. Windmaschine in Form einer starken elektrische Turbine, in der als Herzstück ein Brushlessmotor eingebaut ist. Im Handel werden solche Turbinen als EDF (Electric Ducted Fan) oder Mantelpropeller bezeichnet. Hier der Link zu Wikipedia: https://de.wikipedia.org/wiki/Mantelpropeller

Unsere Turbine wird im Modellbaubereich für Flugmodelle oder Hovercrafts verwendet.

Verkabelung. Die Energieversorgung erfolgt über die Spannungsversorgung des ESC, mit lediglich zwei Kabeln (rot und schwarz). Aus dem ESC kommen drei weitere Leitungen, die in einem Dreierstecker zusammengefasst sind. Rot (+) und  Schwarz (-) versorgen den Mikrocontroller mit Strom. Die Spannung von 5V wird von einem Spannungswandler im ESC bereitgestellt. Über die weiße Leitung bekommt der ESC vom Arduino Mikrocontroller ein PWM-Signal, welches dann die Umdrehungsgeschwindigkeit steuert.

Brushlessmotoren haben Besonderheiten, was die Spannungsversorgung angeht. Sie benötigen Wechselstrom und haben in der Regel eine sehr hohe Stromaufnahme (hohe Stromstärke). Daher werden solche Motoren nicht direkt an eine Spannungsquelle angeschlossen. Um einen Brushlessmotor zu betreiben wird ein elektronisches Modul benötigt, welches für den Motor den passenden Wechselstrom erzeugt. Ein solches Modul wird „ESC“ genannt (Electronic Speed Controller bzw. elektronischer Fahrtregler). Der vom ESC ausgegebene Wechselstrom bestimmt die  Umdrehungsgeschwindigkeit des Brushlessmotors. Damit der ESC die gewünschte Umdrehungsgeschwindigkeit erzeugen kann, muss er mit einem entsprechenden Signal versorgt werden. In unserer Anleitung wird dieses Signal vom Arduino Mikrocontroller erzeugt.

In diesem Bild sieht man links die Turbine mit dem dahinterliegenden Brushlessmotor und rechts ist der in Schrumpfschlauch eingeschweißte ESC.

Da die ESC-Technik vorwiegend im Modellbaubereich eingesetzt wird, erfolgt die Ansteuerung des ESC ebenfalls ähnlich wie im Modellbau über ein PWM-Signal (Pulsweitenmodulation). Der Arduino-Mikrocontroller ist in der Lage, mit Hilfe der Servobibliothek mit nur sehr wenigen Codezeilen ein passendes Signal zu generieren. Dieses werden wir zur Ansteuerung des Motors nutzen.

#include <Servo.h> //Hinzufügen der Servobibliothek. Diese Bibliothek wird verwendet, da ein ESC aus elektrischer Sicht in gleicher Weise wie ein Servo angesteuert wird.
Servo ESC;     // Der ESC-Controller (Electronic Speed Controller bzw. elektronischer Fahrtregler) wird als Objekt mit dem Namen "ESC" festgelegt.
int Drehregler;  // Ausgabewert des Drehreglers
int Geschwindigkeit; // Das Wort "Geschwindigkeit" steht als Variable für den Ansteuerungswert am ESC.

void setup() 
{
  // Der ESC wird im Setup genauer definiert.
  ESC.attach(8,1000,2000); // Die drei Werte bedeuten Pin, minimale Pulsweite und maximale Pulsweite in Mikrosekunden. 1000 und 2000 sind dabei Standartwerte, die sich fpr die meisten Speedcontroller eignen. Wenn es mit diesen Werten nicht funktioniert, müssen die Werte des verwendeten ESC recherchiert und eingesetzt werden.
}
void loop() 
{
  Drehregler = analogRead(A0);   // Dieser Befehl liest den Wert des Potentiometers am analogen Pin A0 aus und speichert ihn unter der Variablen "Drehregler". Der Wert liegt zwischen 0 und 1023.
  Geschwindigkeit = map(Drehregler, 0, 1023, 0, 180);   // Der "MAP-" Befehl wandelt den Messwert aus der Variablen "Drehregler" um, damit er am ESC verarbeitet werden kann. Der Zahlenbereich 0 bis 1023 wird dabei in einen Zahlenwert zwischen 0 und 180 umgewandelt.
  ESC.write(Geschwindigkeit);    // Der endgültige Wert für den ESC wird an den ESC gesendet. Der ESC nimmt das Signal an dieser Stelle auf und steuert den Motor entsprechend der gesendeten Werte an.
}