Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Erste Schritte mit Visuino

In diesem Kapitel werden angesprochen:

  1. Tactile Button mit LED
  2. Debugging
  3. Datenausgabe im Terminalfenster

 

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: Die LED eines Tactile Buttons wird mit jedem Tastendruck nacheinander ein- bzw. ausgeschaltet.
  • Übung 2: Die LED eines Tactile Buttons blinkt, sobald man auf den Taster drückt und schaltet den Blinkvorgang ab, sobald ein zweites mal auf den Taster gedrückt wird.
  • Übung 3: Die Helligkeit der LED eines Tactile Buttons oszilliert sobald der Taster gedrückt wird und schaltet sich aus mit einem weiteren Tastendruck.

 

 

 

 

 

 

 

 

 

 

 

 

Abb. 1a - Tactile button mit LED

Ü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)

  • Arduino- oder Arduino kompatibles Board (Ard Board)
  • 1x Steckbrett und Steckdraht (Ma-Ma)
  • 1x Taster mit LED (s. Abb. 1a) und 2x 1 kOhm Widerstand - alternativ: eine Schaltung, nach Schaltskizze (s. Abb. 1b), auf einer Platine mit Streifenraster 2,54mm 1x8 selbst zusammenlöten (s. Abb. 1c).
  • Arduino IDE und Visuino auf dem Rechner installiert

Schaltskizze und Schaltungsaufbau auf Streifenplatine

 

 

 

 

 

 

 

 

 

 

Abb. 1b

Schaltungskizze für einen Taster mit eingebauter LED und zwei 1kOhm Widerständen sowie einer Stiftleiste 2,54 mm, 1x8 male.

 

 

 

 

 

Abb. 1c

Taster mit LED und zwei 1kOhm Widerständen und einer Stiftleiste 2,54 mm, 1x 8 auf einer Streifenplatine

3 - Komponentenauswahl

In dieser Übung werden drei Komponenten benötigt:

  1. Arduino Board
  2. button
  3. Trigger FlipFlop

 

Schritte bis zur fertigen Schaltung:

  • Starte VISUINO und wähle als erstes im Filter-Fenster den Arduino-Board Type aus (hier: Arduino UNO WiFi).

 

 

 

 

 

 

 

 

Abb. 2a - Arduino Board Type auswählen

  • Gib im Komponenten-Suchfenster button oder debounce but ein, wähle debounce button und ziehe die Komponente in die Arbeitsoberfläche.

 

 

 

 

 

 

Abb. 2b - Komponente Debounce button

 

 

 

 

 

 

 

Abb. 2c - Komponente Toggle FlipFlop

  • Gib im Komponenten-Suchfenster toggle fl ein, wähle TFlipFlop und ziehe die Komponente in die Arbeitsoberfläche.

4 - Komponenten anordnen und verbinden

Die folgende Abbildung zeigt die Anordnung und Verbindung der Komponenten in der Arbeitsoberfläche.

Abb. 3 - Anordnung und Verbindung der Komponenten auf der Arbeitsoberfläche

Komponenten verbinden

  • Digital[2] Out mit Button1 In
  • Button1 Out mit TFlipFlop1 Clock
  • TFlipFlop1 Out mit Digital[3] In

 

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 

  • Prozess Digital[2] 

eines Ard-Boards übergeben; das Ergebnis dieses Prozesses (Taster gedrückt/nicht gedrückt) wird über den

  • Prozess Digital[2] Out 

dann an den

  • Prozess Clock

der Komponente TFlipFlop1 übergeben und das Ergebnis über den

  • Prozess TFlipFlop1 Out

an den

  • Prozess Digital[3] Digital 

ü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):

 

Abb. 4

Komponente Debounce Button - Properties Über Debounce Intervall lässt sich Tastenprellen unterdrücken. Die Voreinstellung für diese Komponente liegt bei 50 ms.

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:

  • 1. die LED wird mit einem Tastendruck eingeschaltet und fängt an zu blinken (z.B. mit 1 Hz)
  • 2. die LED wird mit einem weiteren Tastendruck ausgeschaltet

 

2 - Material (wie in Übung 1)

 

Schaltskizze und Schaltungsaufbau auf Streifenplatine

  • wie in Abb. 1b und 1c dargestellt.

3 - Komponentenauswahl

In dieser Übung wird eine weitere Komponente benötigt:

  1. Pulse Generator
  • Starte VISUINO und lade das Programm aus Übung 2.
  • Gib im Komponenten-Suchfenster pulse gen ein, wähle Pulse Generator  (s. Abb. 5) und ziehe die Komponente in die Arbeitsoberfläche.

 

 

 

 

 

 

 

Abb. 5

Komponente Pulse Generator

4 - Komponenten anordnen und verbinden

Die folgende Abbildung zeigt die Anordnung und Verbindung der Komponenten in der Arbeitsoberfläche.

Abb. 6 - Anordnung und Verbindung der Komponenten auf der Arbeitsoberfläche

Komponenten verbinden

  • TFlipFlop1 Out mit PulseGenerator1 Enabled
  • PulseGenerator1 Out mit Digital[3] Digital

 

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:

  • 1. die LED wird mit einem Tastendruck eingeschaltet und fängt an oszillierend zu blinken (z.B. mit 1 Hz)
  • 2. die LED wird mit einem weiteren Tastendruck ausgeschaltet

 

2 - Material (wie in Übung 1 und 2)

 

Schaltskizze und Schaltungsaufbau auf Streifenplatine

  • wie in Abb. 1b und 1c dargestellt.

 

3 - Komponentenauswahl

In dieser Übung wird eine weitere Komponente benötigt:

  1. Starte VISUINO und lade das Programm aus Übung 2.
  2. Gib im Komponenten-Suchfenster generator analog ein, wähle Sine Analog Generator  (s. Abb. 7), ziehe die Komponente in die Arbeitsoberfläche und tausche sie gegen die Komponente Pulse Generator aus.

 

 

 

 

 

 

 

 

 

 

Abb. 7 - Komponente Sine Analog Generator

4 - Komponenten anordnen und verbinden

Die folgende Abbildung zeigt die Anordnung und Verbindung der Komponenten in der Arbeitsoberfläche.

Abb. 8 - Anordnung und Verbindung der Komponenten auf der Arbeitsoberfläche

Komponenten verbinden

  • TFlipFlop1 Out mit SineAnalogGenerator1 Enabled
  • SineAnalogGenerator1 Out mit Digital[3] Digital

 

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.

  • Wie findet und behebt man jetzt den Fehler?

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:

 

  1. Öffne mit einem Doppelklick in der obersten blauen Zeile der Komponente Formatted Text (s. Abb. 9b) das Fenster Elements (s. Abb. 9c).

 

 

 

 

 

 

 

 

Abb. 9a - Komponente Formatted Text

 

 

 

 

 

 

 

Abb. 9b - Die Komponente Formatted Text mit drei Elementen der Formate Digital (2x) und Analog (1x)

  1. Doppelklick auf Digital Element im rechten Teilfenster kopiert das Element in das linke Fenster. Wiederhole diesen Vorgang noch einmal.
  2. Verfahre ebenso mit einem Doppelklick auf Analog Element.
  3. Am Ende sollten drei Elemente wie in Abb.10 gezeigt, im linken Teilfenster angezeigt werden und gleichzeitig als Teilprozesse in der Komponente Formatted Text1 erscheinen (s. Abb. 9b).

Abb. 9c - Komponentenanordnung in der Arbeitsoberfläche

  1. Verbinde die Komponente Formatted Text1 jetzt, wie in Abb. 10 gezeigt, mit den anderen Komponenten. Der Ausgang der Komponente FormattedText1 ist mit dem Prozess Serial[ 0 ] (9600) In des Ard-Boards verbunden.

Abb. 10 - Anordnung und Verbindung der Komponenten auf der Arbeitsoberfläche.

 

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,

  • nachdem der Taster gedrückt wurde (einschalten), geht der Ausgang der Komponente TFlipFlop1 auf HIGH (true) und verbleibt in diesem Zustand.
  • Wird der Taster ein zweites Mal gedrückt (ausschalten), geht der Ausgang mit steigender Flanke wieder auf LOW und schaltet die Komponente SineAnalogGenerator1 ab (enable -> false).
  • In dem Moment wo das passiert, wird mit ansteigender Flanke über die Komponenten DetectEdge1 und  AnalogValue1 eine 0 an den Ausgang gegeben. Dies erfolgt über die Komponente MultiMerger1, an die auch der Ausgang des Sinusgenerators angeschlossen ist (s. Abb. 12).
  • Jeder Wert, der an den Eingang eines MultiMergers gelangt, wird sofort an die Ausgabe durchgereicht und das ist in diesem Fall der Wert 0 der Komponente AnalogValue1. Die Folge: die LED erlischt.
  • Baue die Schaltung so um, wie in Abb. 12 gezeigt und speichere es anschließend ab.

Abb. 12 - Die Schaltung aus Abb. 10 wird durch vier Komponenten ergänzt: MultiSource, DetectEdge, AnalogValue und AnalogMultiMerger.

Komponentenauswahl

 

 

 

 

 

 

Abb. 13a - Komponente MultiSource über Komponenten-Suchfenster: digital multi source.

 

 

 

 

 

Abb. 13a - Komponenbe DetectEdge über Komponenten-Suchfenster: detect edge.

 

 

 

 

 

Abb. 13c - Komponente AnalogValue über Komponenten-Suchfenster: analog value.

 

 

 

 

Abb. 13d - Komponente MultiMerge über Komponenten-Suchfenster: analog multi merge.

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

Druckversion | Sitemap
© Reinhard Rahner - Gettorf