Aufgabe Vorschlag C - Aufgabe 4.2 - Mikrocontroller progr… · Abitur Hessen Elektrotechnik LK 2022
Thema: Mikrocontroller programmieren (Arduino) · Aus der Prüfung LK (2022)
Aufgabenstellung
Die Schranke wird durch einen doppeltwirkenden Hydraulikzylinder angetrieben. Dieser Zylinder wird durch ein elektrisch betätigtes, monostabiles, federrückgestelltes 5/2-Wegeventil (Magnetventil) geschaltet. Wird das Magnetventil elektrisch angesteuert, fährt die Schranke bis in die obere Endlage, dort erfolgt eine mechanische Abschaltung. Schaltet man das Ventil hingegen spannungslos, fährt die Schranke bis in die untere Endlage, dort erfolgt eine mechanische Abschaltung.
Das Magnetventil Q1 wird an einer Gleichspannung von betrieben, daher ist ein NPN-Transistor als Schaltverstärker mit Vorwiderstand zu verwenden.
Die Personalzufahrt (Material 1) wird durch drei digitale Sensoren (Schließerkontakte) überwacht:
Sensor B1: Zufahrtskontrolle (RFID), Überprüfung der Zufahrtsberechtigung
Sensor B2: Reflexionslichtschranke, Überwachung des Schrankenbereichs
Sensor B3: Induktionsschleife, Erkennen der Durchfahrt
Fährt Personal ein und ist zufahrtsberechtigt, soll sich die Schranke öffnen. Erst wenn die Lichtschranke die Durchfahrt erkannt hat und das Personal die Induktionsschleife überfahren hat, schließt sich die Schranke. Befindet sich ein Fahrzeug unterhalb der Schranke, darf die Schranke nicht schließen. Wenn die Einfahrt in die Schranke nicht innerhalb einer Zeit von vollzogen wurde (Lichtschranke erkennt kein Fahrzeug), schließt die Schranke wieder und es muss erneut die Zufahrtskontrolle ausgelöst werden. Der Abstand zwischen der Reflexionslichtschranke und der Induktionsschleife ist so gewählt, dass ein Fahrzeug niemals von beiden Sensoren gleichzeitig erfasst werden kann.
Material 7: Zu ergänzender Schaltplan
Material 8: Programmcode (unvollständig)
const int zufahrt = 2; // Zufahrtskontrolle B1
const int lichtschranke = 3; // Reflexionslichtschranke B2
const int schleife = 4; // Induktionsschleife B3
const int ventil = 10; // Magnetventil Q1
void setup() {
pinMode(zufahrt, INPUT);
pinMode(lichtschranke, INPUT);
pinMode(schleife, INPUT);
pinMode(ventil, OUTPUT);
}
void schranke(int zustand){
digitalWrite(ventil, zustand);
delay(1);
}
void loop() {
Hier fehlt Programmcode
}
4.2 Implementieren Sie den fehlenden Programmcode in Material 8, so dass die beschriebene Funktion der Personalzufahrt gewährleistet ist.
const int zufahrt = 2; // Zufahrtskontrolle B1
const int lichtschranke = 3; // Reflexionslichtschranke B2
const int schleife = 4; // Induktionsschleife B3
const int ventil = 10; // Magnetventil Q1
void setup() {
pinMode(zufahrt, INPUT);
pinMode(lichtschranke, INPUT);
pinMode(schleife, INPUT);
pinMode(ventil, OUTPUT);
}
void schranke(int zustand){
digitalWrite(ventil, zustand);
delay(1);
}
void loop() { }

Lösung
Nach den offiziellen Korrekturhinweisen
4.2 Implementieren Sie den fehlenden Programmcode in Material 8, so dass die beschriebene Funktion der Personalzufahrt gewährleistet ist.
Lösung: ```cpp schranke(LOW); boolean einfahrt = false; boolean durchfahrt = false; boolean ausfahrt = false; einfahrt = digitalRead(zufahrt); durchfahrt = digitalRead(lichtschranke); ausfahrt = digitalRead(schleife); if(einfahrt == true && durchfahrt == false && ausfahrt == false){ schranke(HIGH); unsigned long einfahrtszeit = 0; unsigned long deltazeit = 0; unsigned long schrankenzeit = 0; einfahrtszeit = millis(); while(durchfahrt == false){ durchfahrt = digitalRead(lichtschranke); schrankenzeit = millis(); deltazeit = schrankenzeit - einfahrtszeit; if(deltazeit > 10000 && durchfahrt == false){ schranke(LOW); ausfahrt = true; break; } } while(ausfahrt == false){ ausfahrt = digitalRead(schleife); } durchfahrt = digitalRead(lichtschranke); if(ausfahrt == true && durchfahrt == false){ schranke(LOW); delay(1); } } else { schranke(LOW); delay(1); } ```
Die ausführliche Erklärung Schritt für Schritt (mit KI) gibt es mit Premium. Premium
Löse sie direkt hier: automatische Korrektur, Hinweise und Lösung Schritt für Schritt.
‹ Aufgabe Vorschlag B - Aufgabe 2 - Mikrocontroller program… · LK 2022 · Aufgabe Vorschlag A - Aufgabe 2.3–2.5 · LK 2021 ›