Aufgabe Vorschlag B - Aufgabe 2.1 - Mikrocontroller-Besch… · Abitur Hessen Elektrotechnik LK 2022
Thema: Mikrocontroller-Beschaltung und Sensorik · Aus der Prüfung LK (2022)
Aufgabenstellung
In manchen Gebieten sind die Menschen einer überdurchschnittlich hohen Radioaktivität ausgesetzt, welche u. a. natürliche Ursachen hat. So kann beispielsweise radioaktives Gas, z. B. Radon, aus dem Erdreich in Kellerräume eindringen. Um entsprechende Gegenmaßnahmen planen zu können, ist eine Langzeitmessung der radioaktiven Strahlung erforderlich. Tragbare Geräte, welche Messdaten nicht nur erfassen, sondern auch mithilfe von Mikrocontrollern verarbeiten können, können hier zweckdienlich sein. Für die Entwicklung solcher Geräte existiert bereits ein Ansatz (Material 3 und 4).
Material 3 zeigt die unvollständige Beschaltung des Mikrocontrollers. Der Zählrohrbaustein enthält ein Geiger-Müller-Zählrohr. Gelangt ein Teilchen der radioaktiven Strahlung in das Zählrohr, so entsteht ein kurzer Spannungsimpuls, der im Zählrohrbaustein verstärkt wird und danach an Pin 2 gelangt. An den Pins 4 bis 9 ist ein LCD-Baustein zur Anzeige von Messwerten angeschlossen.
Material 4 zeigt den unvollständigen Programmcode für den Mikrocontroller. Innerhalb der Prozedur setup werden zwei Interrupts, die jeweils auf die ansteigende Flanke von Impulsen reagieren, definiert und aktiviert. Löst der Impuls des Zählrohrs einen Interrupt aus, so wird die Prozedur zaehlenImpulse aufgerufen. Der bei Betätigung des Tasters erzeugte Impuls löst einen Interrupt aus, der zum Aufruf der Prozedur zaehlenTaster führt. Innerhalb der Prozedur loop werden drei weitere Prozeduren aufgerufen, deren Code noch nicht existiert.
Hinweise: Die im Programmcode verwendete Abkürzung CPM ist eine Maßeinheit und steht für „Counts per minute“. Sie gibt an, wie viele Impulse pro Minute von einem Zählrohr erzeugt wurden. Es handelt sich also um eine Zählrate.
Material 3
Beschaltung des Mikrocontrollers, unvollständig
Material 4
Programmcode (unvollständig)
#include <LiquidCrystal.h> //LCD-Bibliothek wird importiert
//LCD-Objekt wird erzeugt, Anschlusspins werden übergeben
LiquidCrystal lcd(9,8,7,6,5,4);
//Konstanten und Variablen werden definiert und initialisiert
#define zaehlrohr 2
#define taster 3
#define gelbeLED 12
#define roteLED 13
int zaehlerImpulse = 0; //zählt die Impulse des Zählrohrs
int zaehlerTaster = 0; //zählt die Betätigungen des Tasters
int zaehlerMinuten = 0; //zählt die Minuten (ab Programmstart)
int aktuellCPM = 0; //speichert den zuletzt berechneten cpm-Wert
int mittelCPM = 0; //speichert den Mittelwert aller cpm-Werte ohne
//Nachkommastellen
int maximalCPM = 0; //speichert den größten cpm-Wert
int summeCPM = 0; //speichert die Summe aller cpm-Werte
const int grenzwertCPM = 20; //Grenzwert in cpm
void setup()
{
pinMode(zaehlrohr, INPUT);
pinMode(taster, INPUT);
pinMode(gelbeLED, OUTPUT);
pinMode(roteLED, OUTPUT);
Serial.begin(9600); //Serieller Monitor mit 9600 bps wird geöffnet
lcd.begin(16, 2); //LCD mit 16 Zeichen und zwei Zeilen wird festgelegt
lcd.clear(); //Der Inhalt des LCDs wird gelöscht
lcd.print("BITTE WARTEN"); //Der Text BITTE WARTEN wird ausgegeben
//Interrupt für Zählrohrimpulse wird definiert und aktiviert
attachInterrupt(digitalPinToInterrupt(zaehlrohr),zaehlenImpulse,RISING);
//Interrupt für Tasterimpulse wird definiert und aktiviert
attachInterrupt(digitalPinToInterrupt(taster),zaehlenTaster,RISING);
}
void loop()
{
delay(60000);
zaehlerMinuten++;
wertebestimmenCPM();
ausgebenLCD();
pruefenGrenzwert();
}
void zaehlenImpulse()
{
zaehlerImpulse++;
}
void zaehlenTaster()
{
zaehlerTaster++;
ausgebenLCD();
}
void ausgebenLCD()
{
//Hier findet die Ausgabe auf dem LCD statt
}
void wertebestimmenCPM()
{
Hier fehlt Programmcode
}
void pruefenGrenzwert()
{
Hier fehlt Programmcode
}
Material 5
Informationen zur Verwendung des seriellen Monitors
Wichtige Funktionen
Serial.begin()
Der serielle Monitor wird geöffnet und die Geschwindigkeit der Datenübertragung in bit pro Sekunde wird festgelegt.
Beispiel:
Serial.begin(9600);
Serial.print()
Text sowie Inhalte von Variablen werden auf dem seriellen Monitor ausgegeben.
Beispiel:
Ausgabe von einem Text und dem Inhalt der variablen Zahl.
Serial.print("Zahlenwert: "+zahl);
Serial.println()
Identisch mit dem Befehl Serial.print(), jedoch folgt nach der Ausgabe ein Zeilenumbruch.
Material 6
Programmcode der Prozeduren suchen1 und suchen2
void suchen1()
{
for(int i = 0; i < 1440; i++)
{
if(werte[i] > grenzwertCPM)
{
Serial.print("INDEX:"+i);
Serial.println(" WERT:"+werte[i]);
}
delay(4000);
}
}
void suchen2()
{
int index = 0;
int maximum = werte[0];
for(int i = 1; i < 1440; i++)
{
if(werte[i] > maximum)
{
maximum = werte[i];
index = i;
}
}
Serial.print("INDEX:"+index);
Serial.println(" Max.:"+maximum);
}
2.1 Für Eingaben seitens des Anwenders wird ein Taster mit Pull-Down-Widerstand benötigt. Für die Ausgabe von Warnsignalen werden eine rote und eine gelbe LED mit jeweils einem Vorwiderstand benötigt. Zeichnen Sie die benötigten Bauelemente in das Material 3 ein.
Hinweis: Die zu verwendenden Pins sind dem Code in Material 4 zu entnehmen. [6 BE]
Ihre Zeichnung wurde gespeichert. Vergleichen Sie Ihre Lösung mit der Musterlösung unten.

Lösung
Nach den offiziellen Korrekturhinweisen
2.1 Für Eingaben seitens des Anwenders wird ein Taster mit Pull-Down-Widerstand benötigt. Für die Ausgabe von Warnsignalen werden eine rote und eine gelbe LED mit jeweils einem Vorwiderstand benötigt. Zeichnen Sie die benötigten Bauelemente in das Material 3 ein.
Lösung: - Taster an Pin 3: Taster gegen Versorgungsspannung , Pull-Down-Widerstand zwischen Pin 3 und Masse (GND). - Gelbe LED an Pin 12: Vorwiderstand in Reihe mit der gelben LED (Anode Richtung Pin 12, Kathode an Masse). - Rote LED an Pin 13: Vorwiderstand in Reihe mit der roten LED (Anode Richtung Pin 13, Kathode an Masse).
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 A - Aufgabe 2 - Mikrocontroller-Beschal… · LK 2022 · Aufgabe Vorschlag C - Aufgabe 4.1 - Mikrocontroller-Besch… · LK 2022 ›