Übung 1 - Testschaltung mit Drucktaster | |
Material |
|
Aufgaben |
|
Schaltskizze und Schaltungsaufbau
Wie arbeitet die Testschaltung?
Wird der Drucktaster nicht betätigt, ist er offen. Dies wird links in Abbildung 2 gezeigt. Ein Strom kann aufgrund der Unterbrechung (offener Stromkreis) nicht vom Plus-Pol zum Minuspol fließen. Die LED leuchtet nicht.
Im rechten Bild ist der Taster geschlossen. Der Stromkreis ist geschlossen und die elektrische Ladung fließt vom Pluspol über den Taster T1, den Widerstand und die LED zum Minuspol. Die LED leuchtet.
Übung 2 - Testschaltung mit Drucktaster * Variante 2
In der folgenden Schaltung (s. Abb. 3a) verhält sich die LED anders, weil der Taster parallel zur LED geschaltet ist. Wird der Taster nicht gedrückt, leuchtet die LED, wird er gedrückt, erlischt sie. Der Grund dafür liegt in der Tatsache begründet, dass der elektrische Strom sich immer den Weg des geringsten Widerstands nimmt und das ist in diesem Fall der Weg über T1.
Schaltskizze und Schaltungsaufbau
Übung 2 - Testschaltung mit Drucktaster * Variante 2 | |
Material |
|
Aufgaben |
|
Übung 3 - Den Zustand eines Tasters abfragen
Wir wissen jetzt, wie ein Taster zu beschalten ist. Wie erkennt ein Mikrocontroller aber, ob ein Taster gedrückt wurde oder nicht?
Das wird uns in dieser Übung beschäftigen. Dazu wird ein Pinanschluss (D3) als Eingang gesetzt. Wird nun ein Taster, der mit dem Eingangspin 3 (D3) verbunden ist, gedrückt, dann soll die volle Betriebsspannung (5V -> entspricht 1) am Eingang anliegen, wird er nicht gedrückt, liegen 0V (entspricht 0) an.
In bestimmten Zeitabständen (ca. alle 2s) soll der Taster abgefragt und das Ergebniss im Terminalfenster dokumentiert werden. Wie das aussehen könnte, zeigt Abb. 5.
Soweit die Theorie, jetzt kommt die Praxis, und die verlangt ein bisschen Wissen aus der Physik.
Standardmäßig sind die digitalen Eingänge eines Arduino UNO als Eingänge voreingestellt. Sie besitzen einen hohen Eingangswiderstand und es ist im allgemeinen nicht nötig, die Eingänge zu Programmanfang in der Methode setup() mit pinMode festzulegen. Wir werden dies aber aus Konsistenzgründen immer tun.
Übung 3 - Zustand eines Tasters abfragen | |
Material |
|
Aufgaben |
|
Programm led_taster_01.ino
// =================================================
// Eingesetzte Hardware: Arduino NANO ESP32
// https://www.rahner-edu.de
// =================================================
#define LED_Pin D13
#define TASTER_Pin D4
int LED_Status = LOW;
int TZustand = 0;
void setup() {
pinMode(LED_Pin, OUTPUT);
pinMode(TASTER_Pin, INPUT);
}
void loop() {
TZustand = digitalRead(TASTER_Pin);
if (TZustand == LOW) {
digitalWrite(LED_Pin, LOW);
} else
{
digitalWrite(LED_Pin, HIGH);
}
}
Wie arbeitet die Schaltung?
Im Normalzustand ist der Drucktaster geöffnet. Es fließt kein Strom vom Plus- zum Minuspol. Der hochohmige Eingang D3 "sieht", dass LOW anliegt.
Wird der Schalter geschlossen, teilt sich der Strom im Punkt K auf; ein großer Anteil des Stromes fließt über den 10 kW Widerstand nach GND ein anderer - sehr geringer Teil - über den 470 W Widerstand und den hochohmigen Pin 3 nach GND. Zwischen K und GND liegt jetzt nahezu die volle Spannung von +5V an. Der Eingang D3 erkennt, dass HIGH anliegt.
Zum Einlesen des Status von einem Schalter (geschlossen 1, offen 0), muss der Pin Eingang auf ein festes Potential gesetzt werden. Bei offenem Schalter T1 wirkt der 10 kW Widerstand als sogenannter pull-down Widerstand, er zieht den Punkt K auf GND in einen für den Eingang D3 definierten und damit lesbaren Spannungszustand.
Übung 4a - Taster und LED (grafische Programmierung)
Mit dem Programm VISUINO lässt sich der Zustand eines Tasters - wie in Übung 3 bereits gezeigt - sehr schnell darstellen und "programmieren". In diesem Beispiel gilt:
Der dazu notwendige Schaltungsaufbau erfolgt nach Abb. 5a. Der 470 Ohm Widerstand wird weggelassen, die LED wird über einen 330 Ohm Vorwiderstand an D7 angeschlossen.
Benutzt wird ein Arduino UNO WiFi Rev2 Board.
VISUINO Blockdarstellung
Nach dem Start von VISUINO wird im Block das benutzte Arduino Board aufgerufen (s. Abb. 6a)..In meinem Fall ein Arduino UNO WiFi Rev2 Board.
In einem zweiten Schritt muss der Ausgang von D2 (Taster) mit dem Eingang von D7 (LED) verbunden werden (s. Abb. 6b). Anschließend kann die Einstellung abgespeichert werden.
Abb. 6b - Aufgerufen wird der Block Arduino UNO WiFi R2.
Im Block wird der Ausgang von Digital3 (Taster) mit dem Eingang von Digital7 (LED) verbunden.
Anschließend wird das Programm in die Arduino IDE übertragen, kompiliert und gestartet.
Sobald der Taster gedrückt wird leuchtet die LED auf. Wird er losgelassen, erlischt die LED..
Übung 4b - Taster und Terminalausgabe (grafische Programmierung)
In dieser Übung wird der Tasterzustand in einem Terminalfenster als 0 (LED aus) und 1 (LED an) dargestellt.
Ablauffolge zum Blockaufbau in VISUINO
Grundsätzlich gibt es zwei Möglichkeiten, den Zustand eines Tasters abzufragen:
Im Programm led_taster_01.ino wurde die Polling-Methode genutzt, um den Zustand des Tasters abzufragen.
Die Aktivierung eines internen Pull-up Widerstandes für einen als Ausgang deklarierten Pin erfolgt dadurch, daß man im Setup-Teil des Programms den Pin über pinMode nicht als Ausgang deklariert. Ein nachfolgender digitalWrite Befehl im loop-Bereich nutzt dann den internen Pull-up Widerstand.
In einem Treppenhaus gibt es auf jeder Etage einen Lichtschalter. Drückt man ihn, geht die Treppenhausbeleuchtung in allen Etagen an und erlischt nach einer gewissen Zeit wieder.
Wir werden eine solche Treppenhausbeleuchtung mit zwei LEDs simulieren und so programmieren, dass sie die oben genannte Bedingung erfüllt.
Schaltskizze und Schaltungsaufbau
In der Schaltskizze werden beide Taster über Pin 2 (D2) abgefragt. Wird einer der beiden Taster, T1 oder T2, gedrückt, wird ein Interrupt ausgelöst und der Zustand der Treppenhausbeleuchtung für ca. 8 sec auf EIN gestellt. Für beide Taster wurde der interne Pull-Up Widerstand des Arduino eingeschaltet. Das macht den Schaltungsaufbau etwas übersichtlicher und erklärt auch den Unterschied zwischen der Schaltskizze mit Tastern und dem Schaltungsaufbau.
Übung 6 - Treppenhausbeleuchtung mit Interrupt | |
Material |
|
Aufgaben |
|
Das Programm Treppenhausleuchten_UNO_WiFi_R2.ino
Einschränkunken durch die Funktion attachInterrupt()
Mehr Informationen zur Funktion attachInterrupt() gibt es bei arduino.cc.
240219