Phase 2 2021/22
In diesem Buch sind die Teamergebnisse der FST21 in Phase 2 dokumentiert.
Eine vereinfachte Darstellung der H-Brücke findest du hier.
Eine H-Brücke fungiert als Steuerung von Gleichstrom Motoren. Durch die
Ansteuerung von bestimmten Schaltern/Transistoren, kann ein DC-Motor umgepolt
und somit die Drehrichtung bestimmt werden. Die Verschaltung ist in Form eines H´s
realisiert, woher auch der Name stammt. Zusätzlich kann der Motor mit dieser Brücke
ebenfalls gebremst und die Geschwindigkeit mittels PWM (=Pulsweitenmodulation)
bestimmt werden. Die H-Brücke besteht aus vier Schaltern, die je nach
Schalterstellung den Motor in Rechts- oder Linkslauf versetzen.
//Pinbelegung für die H-Brücke
int inc1 = 18;
int inc2 = 19;
int motor = 17;
//Pulsweitenmodulation
const int freq = 30000;
const int resolution = 8;
// Funktion zur Antriebssteuerung ---> mit geringer werdendem Abstand soll der Motor langsamer laufen
void antrieb(int entfernung)
{
if ((entfernung <= 50) && (entfernung >= 25))
{
digitalWrite(inc1, LOW); //Laufrichtung einstellen
digitalWrite(inc2, HIGH); //
ledcWrite(2, 230); // Sendet ein Signal an den Channel 2 mit einem Duty Cyle(Auslastungsgrad) von 230
}
else if ((entfernung <= 24) && (entfernung >= 5))
{
digitalWrite(inc1, LOW); //Laufrichtung einstellen
digitalWrite(inc2, HIGH); //
ledcWrite(2, 200); //Sendet ein Signal an den Channel 2 mit einem Duty Cyle(Auslastungsgrad) von 200
}
else if (entfernung < 5)
{
digitalWrite(inc1, LOW); //Laufrichtung einstellen
digitalWrite(inc2, HIGH); //
ledcWrite(2, 0); // Motor steht
}
else
{
digitalWrite(inc1, LOW); //Laufrichtung einstellen
digitalWrite(inc2, HIGH);
ledcWrite(2, 255); //Sendet ein Signal an den Channel 2 mit einem Duty Cyle(Auslastungsgrad) von 255
}
}
void setup()
{
pinMode(motor, OUTPUT); //Legt den Eingangstyp des angegebenen PINs fest
pinMode(inc1, OUTPUT); //Legt den Eingangstyp des angegebenen PINs fest
pinMode(inc2, OUTPUT); //Legt den Eingangstyp des angegebenen PINs fest
ledcSetup(1, freq, resolution); // Konfigurieren der Pulsweitenmodulation für Channel Sound
ledcAttachPin(passiver_buzzer, 1); //passiver Buzzer mit PWM-Channel verbinden
ledcSetup(2, freq, resolution); //Konfigurieren der Pulsweitenmodulation für Channel Antrieb
ledcAttachPin(motor, 2); //Motor mit dem PWM-Channel verbinden
}
void loop()
{
antrieb(entfernung); //Aufruf der Funktion zum Antrieb des Motors
}
}