Phase 2 2021/22
In diesem Buch sind die Teamergebnisse der FST21 in Phase 2 dokumentiert.
Die H-Brücke hat die Aufgabe, den Motor in seinen zwei Drehrichtungen anzusteuern. Je nachdem welches Signal an den zwei Pins für die Drehrichtung anliegt, wird die Drehrichtung des Motors bestimmt.
Pin 1 |
Pin 2 |
Drehung Motor |
---|---|---|
LOW | LOW | Keine Drehung |
HIGH | LOW | Drehrichtung rechts |
LOW | HIGH | Drehrichtung links |
HIGH | HIGH | Keine Drehung |
Damit die Drehung des Motors ausgeführt wird, muss gleichzeitig auch eine Ansteuerung des Freigabepins erfolgen. Diese Ansteuerung kann entweder mit einem permanenten HIGH-Signal erfolgen oder durch ein PWM- Signal. Zusätzlich wird für das Betreiben des Motors eine Spannungsquelle in Form einer 9V- Batterie benötigt. Diese liefert den benötigten Strom zum Betreiben des Motors, da die Stromquelle in Form des Mikrokontrollers nicht die benötigte Strommenge erbringen kann.
Hier (Datei "Vorlage_L298N.ino") befindet sich ein Beispiel für die Ansteuerung des Motortreibers:
// Motortreiber L298N
#define MotV 27
#define MotR 26
#define MotEna 12
//PWM Motortreiber
int Freq = 30000;
int Res = 8;
int PwmChannelMotEna = 2;
int DutyCycleMotEna = 0; // MaximalWert: 250; Minimalwet 160;
int DutyCycleNull = 0;
void setup() {
//L298N
pinMode (MotV , OUTPUT); // festlegen des Pins am L298N als Ausgang
pinMode (MotR , OUTPUT); // festlegen des Pins am L298N als Ausgang
pinMode (MotEna , OUTPUT); // festlegen des Pins am L298N als Ausgang
//PWM
ledcSetup (PwmChannelMotEna, Freq, Res); // PWM-Kanal Einstellung
ledcAttachPin (MotEna, PwmChannelMotEna); // Definition des PWM-Kanals auf den Pin
}
void loop() {
digitalWrite (MotV , LOW); // Schreiben der Drehrichtung des Motors
digitalWrite (MotR , LOW); // Schreiben der Drehrichtung des Motors
DutyCycleMotEna = 200; //
digitalWrite (MotV , HIGH); // Schreiben der Drehrichtung des Motors
digitalWrite (MotR , LOW );
ledcWrite (PwmChannelMotEna, DutyCycleMotEna); // Schreiben des Wertes für die Pwm Ausgabe in den Ausgang
delay (200);
ledcWrite (PwmChannelMotEna, DutyCycleNull); // Schreiben des Wertes für die Pwm Ausgabe in den Ausgang
delay(100);
digitalWrite (MotV , LOW); // Schreiben der Drehrichtung des Motors
digitalWrite (MotR , HIGH );
ledcWrite (PwmChannelMotEna, DutyCycleMotEna); // Schreiben des Wertes für die Pwm Ausgabe in den Ausgang
delay(200);
ledcWrite (PwmChannelMotEna, DutyCycleNull); // Schreiben des Wertes für die Pwm Ausgabe in den Ausgang
digitalWrite (MotV , LOW); // Schreiben der Drehrichtung des Motors
digitalWrite (MotR , LOW); // Schreiben der Drehrichtung des Motors
}