In diesem Kapitel werden angesprochen:
Eingesetzte Komponenten:
Button, TFlipFlop, SineAnalogGenerator, FormattedText
In diesem Kapitel wird am Beispiel eines Tactile Button mit LED (s. Abb. 1a) gezeigt, wie ein smarten Taster programmiert wird. In vier Übungen mit aufsteigendem Schwierigkeitsgrad werden lauffähige Schaltungen mit einem Taster mit LED vorgestellt und es wird gezeigt wie sich Schaltungen unter VISUINO effizient debuggen lassen.
Übung 1 - LED mit Taster ein- bzw. ausschalten
1 - Pflichtenheft oder Was soll die Schaltung können?
In dieser Übung wird ein einzelner Taster (an D2) so beschaltet, dass er die folgenden Funktionen ausführen kann:
1. die LED wird mit einem Tastendruck eingeschaltet
2. die LED wird mit dem folgenden Tastendruck ausgeschaltet
2 - Material (gilt für alle drei Übungen)
Schaltskizze und Schaltungsaufbau auf Streifenplatine
3 - Komponentenauswahl
In dieser Übung werden drei Komponenten benötigt:
Schritte bis zur fertigen Schaltung:
4 - Komponenten anordnen und verbinden
Die folgende Abbildung zeigt die Anordnung und Verbindung der Komponenten in der Arbeitsoberfläche.
Komponenten verbinden
Programm kompilieren und starten
Öffne unten rechts durch Anklicken des roten Buttons das Arbeitsmenü, klicke den Reiter "Build" und anschließend den Button "Compile/Build and Upload" an. Wenn kein Fehler aufgetreten ist, wird das Programm nach kurzer Zeit in den Controller geladen sein.
Sobald der Taster gedrückt wird, leuchtet seine LED auf und sie erlischt in dem Moment, wo der Taster ein zweites Mal gedrückt wird.
Viel Spaß beim Experimentieren!
Bemerkungen zur Schaltung (s. Abb. 3)
Wer bisher über die Arduino IDE klassisch programmiert hat, ist vielleicht etwas irritiert über die Darstellung der Komponentenanordnungen und ihrer Verbindungen in Visuino (s. Abb. 3).
Das liegt daran, dass in Visuino Ard-Boards o.a. durch
eine Sammlung von
Prozessen dargestellt und beschrieben werden, sie
sind keine Abbildung der Hardware mit ihren Ein- und Ausgängen.
So wird zum Beispiel der Ausgabewert eines Tasters, der, wie in dieser Übung 1, per Kabel mit D2 auf einem Ard-Board verbunden ist, in Visuino an den
eines Ard-Boards übergeben; das Ergebnis dieses Prozesses (Taster gedrückt/nicht gedrückt) wird über den
dann an den
der Komponente TFlipFlop1 übergeben und das Ergebnis über den
an den
übergeben. Die LED ist per Kabel mit D3 auf dem Ard-Board verbunden und reagiert daraufhin mit AN oder AUS.
Nach all dem Gesagten erscheint ja dann die Komponente Taster1 überflüssig zu sein. Probiere es selber aus. Lösche die Komponente und verbinde
Digital[2] Out direkt mit TFlipFlop1 Clock.
Starte das Programm neu und überzeuge dich davon, dass die Wirkung der Schaltung sich nicht verändert hat.
Aber es gibt einen Grund, warum man die Komponente Taster1 in der Schaltung belassen sollte. Werfen wir einen Blick auf die Properties-Liste der Komponente (s. Abb. 4):
Durch die Möglichkeit, Tastenprellen zu unterdrücken, wird die Schaltung stabiler.
Übung 2 - Blinkende LED mit Taster ein- bzw. ausschalten
1 - Pflichtenheft oder Was soll die Schaltung können?
In dieser Übung wird ein einzelner Taster (an D2) so beschaltet, dass er die folgenden Funktionen ausführen kann:
2 - Material (wie in Übung 1)
Schaltskizze und Schaltungsaufbau auf Streifenplatine
3 - Komponentenauswahl
In dieser Übung wird eine weitere Komponente benötigt:
4 - Komponenten anordnen und verbinden
Die folgende Abbildung zeigt die Anordnung und Verbindung der Komponenten in der Arbeitsoberfläche.
Komponenten verbinden
Programm kompilieren und starten
Öffne unten rechts durch Anklicken des roten Buttons das Arbeitsmenü, klicke den Reiter "Build" und anschließend den Button "Compile/Build and Upload" an. Wenn kein Fehler aufgetreten ist, wird das Programm nach kurzer Zeit in den Controller geladen sein.
Sobald der Taster gedrückt wird, fängt seine LED mit einer Frequenz von 1 Hz an zu blinken. Sie erlischt nach einem weiteren Tastendruck.
Viel Spaß beim Experimentieren!
Übung 3 - Oszillierende LED mit Taster ein- bzw. ausschalten
1 - Pflichtenheft oder Was soll die Schaltung können?
In dieser Übung wird ein einzelner Taster (an D2) so beschaltet, dass er die folgenden Funktionen ausführen kann:
2 - Material (wie in Übung 1 und 2)
Schaltskizze und Schaltungsaufbau auf Streifenplatine
3 - Komponentenauswahl
In dieser Übung wird eine weitere Komponente benötigt:
4 - Komponenten anordnen und verbinden
Die folgende Abbildung zeigt die Anordnung und Verbindung der Komponenten in der Arbeitsoberfläche.
Komponenten verbinden
Programm kompilieren und starten
Öffne unten rechts durch Anklicken des roten Buttons das Arbeitsmenü, klicke den Reiter "Build" und anschließend den Button "Compile/Build and Upload" an. Wenn kein Fehler aufgetreten ist, wird das Programm nach kurzer Zeit in den Controller geladen sein.
Sobald der Taster gedrückt wird, fängt seine LED mit einer Frequenz von 1 Hz an oszillierend zu blinken. Sie erlischt leider nicht nach einem weiteren Tastendruck.
Das Stichwort hierzu heißt: Debugging
Debugging
Zur Fehlersuche müssen wir uns einen Überblick über jeden einzelnen Prozess der Schaltung verschaffen. Dabei hilft die Daten Darstellungskomponente Formatted Text, die in die Arbeitsoberfläche gezogen wird (s. Abb. 9a).
Von jeder der drei vorhandenen Komponenten wird das Verhalten während eines Programmlaufs über die serielle Schnittstelle verfolgt und im Terminalfenster angezeigt. Die Daten werden am Ausgang jeder Komponente ausgelesen. Dies erfolgt in fünf Schritten:
Programm kompilieren und starten
Kompiliere und starte das modifizierte Programm in der gewohnten Weise und öffne anschließend das Terminalfenster. Dort erscheinen die ausgelesenen Daten der drei Komponenten.
In formatierter Ausgabe (wird an anderer Stelle erklärt) kann das Ergebnis, so wie in Abb. 11 dargestellt; aussehen.
Abb. 11 - Formatierte Ausgabe der ausgelesenen Daten mit der Komponente Formatted Text. .
Bei Programmstart bleibt die LED dunkel. Wird die Taste gedrückt, beginnt die Helligkeit der LED zu oszillieren.
Wird die Taste ein weiteres mal gedrückt, wird der momentane Helligkeitswert eingefroren, statt wie im Pflichtenheft vorgegeben, auf Null gesetzt zu werden.
Wie lässt sich die Fehlfunktion beheben?
Die Idee ist,
Komponentenauswahl
Programm kompilieren und starten
Kompiliere und starte das geänderte Programm in der gewohnten Weise. Jetzt sollte, sobald die Taste ein zweites Mal gedrückt wird, die LED sofort erlöschen.
250229