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 
    190 mA
     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);  
}
Zuletzt geändert: Montag, 28. Juni 2021, 20:34