Gleichstrommotor
Abbildung: Bürstenmotor mit Getriebe
Quelle: BBS 2 Wolfsburg
Beschreibung:
Unter einem Bürstenmotor versteht man eine Gerät, welches elektrische Energie in mechansiche Energie umwandelt. Durch diese mechanische Energie wird eine Drehbewegung erzeugt. Den Aufbau eines Gleichstrommotors kann man auf der nachfolgenden Abbildung
erkennen:
Abbildung: Aufbau Bürstenmotor
Quelle: BBS 2 Wolfsburg
Kenndaten:
Versorgungsspannung: 3-9 V (empfohlen 4,5 V)
Versorgungsspannung |
4,5 V |
6 V |
7,2 V |
9 V |
|
---|---|---|---|---|---|
Drehzahl im Leerlauf |
90 u/min |
190 u/min |
230 u/min |
300 u/min |
|
Stromstärke Leerlauf |
|
160 mA |
180 mA |
200 mA |
Wichtige Informationen:
Der Gleichstrommotor sollte nicht direkt an den ESP32 angeschlossen werden. Die Leerlaufstromstärke des Motor würde den maximalen Pinout Strom den ESP32 von 100 mA überschreiten welches den ESP32 unter Umständen zerstören könnte. Für den sicheren Betrieb
kann beispielsweise der L298N Motortreiber verwendet werden.
Verdrahtungsplan:
Abbildung: Verdrahtungsbeispiel eines Bürstenmotor mit L298N Motortreiber
Quelle: BBS 2 Wolfsburg
Programmierbeispiel:
//Pinbelegung der H-Brücke L298N
int in1 = 18;
int in2 = 19;
int enable_motor = 17;
//Kenndaten für die Pulsweitenmodulation
const int channel = 1;
const int freq = 30000;
const int resolution = 8;
void setup()
{
//Pin-Deklaration
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enable_motor, OUTPUT);
//Konfigurieren der Pulsweitenmodulation für den Channel 0
ledcSetup(channel, freq, resolution);
//enable-Pin des L289N mit PWM Channel 1 verbinden
ledcAttachPin(enable_motor,channel);
}
void loop()
{
// Laurichtung vorwärts
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
//Geschwindigkeit Schrittweise vergrößern
for (int idx = 0; idx < 255, idx++)
{
ledcWrite(channel, idx);
delay (100);
}
//Motor ausschalten
ledcWrite(channel, 0);
//Abschaltung alternativ mit dem Befehl möglich :
//digitalWrite(in1, LOW);
//digitalWrite(in2, LOW);
// Laurichtung rückwärts
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
//Motor auf Höchstgeschwindigkeit einstellen
ledcWrite(channel, 255);
}