Änderungen

Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „== Die Taste verarbeiten == Bisher hast Du Ausgabefunktionen und -elemente kennen gelernt (OK: ein Ausgabeelement - die LED). Aber an einen Microcontroller (w…“
== Die Taste verarbeiten ==

Bisher hast Du Ausgabefunktionen und -elemente kennen gelernt (OK: ein Ausgabeelement - die LED). Aber an einen Microcontroller (wie dem Arduino, der in dem LEDChaser eingebaut ist) können auch verschiedene Eingabeelemente angeschlossen werden, so dass er auf seinen Umwelt reagieren kann. In diesem Kapitel wirst Du einen Taster kennen lernen (manchmal auch "die Taste" genannt - wir werden hier beide Begriffe verwenden).
Und hier ist die erste Aufgabe für den Taster: Wenn der der Taster gedrückt wird, soll eine LED angehen. Zum Programmieren ist das aber noch nicht genau genug: was ist mit "wenn" gemeint? Heißt das "solange der Taster gedrückt wird", oder "sobald der Taster gedrückt wird"? Fangen wir mit der ersten Variante an: Eine LED leuchtet, solange die Taste gedrückt wird.

<pre>/* Sketch 07 - Taste schaltet LED
*
* LED leuchtet, solange TASTE gedrückt
*
*
****************************************/

const byte TASTE_PIN = 2;
const byte LED_PIN = 3;

// setup: wird einmal zu Beginn ausgeführt

void setup ()
{
pinMode (LED_PIN, OUTPUT);
pinMode (TASTE_PIN, INPUT);
digitalWrite (TASTE_PIN, INPUT_PULLUP);
}

// loop: wird immer wieder ausgeführt

void loop ()
{
byte t;
t = digitalRead (TASTE_PIN);
digitalWrite (LED_PIN, t);
}</pre>

Den ersten Befehl in der ''setup''-Funktion kennst Du schon; damit wird wird der <code>LED_PIN</code> auf "Ausgabe" geschaltet.
Der nächste Befehl definiert, dass der Anschluss für die Taste ein Eingabeanschluss ist.
Die dritte Zeile aktiviert den ''internen Pullup-Widerstand''. Nimm dies erst einmal so hin - eine Erklärung dafür folgt im nächsten Kapitel.

In der ''loop''-Funktion wird zuerst eine Variable t definiert. Ein Datentyp ''byte'' reicht hier, weil nur die Werte 0 und 1 gespeichert werden.
Anschließend wird der Tastenwert gelesen (ist die Taste gedrückt (0) oder nicht (1)) und in der Variablen gespeichert. Mit dieser Variablen wird dann die LED gesteuert (an oder aus).
Mit diesem Sketch reagiert der Microcontroller auf eine Eingabe und löst damit eine Ausgabe aus.

Die ''loop''-Funktion lässt sich noch ein wenig vereinfachen:

<pre>void loop ()
{
digitalWrite (LED_PIN, digitalRead (TASTE_PIN));
}</pre>

Auf diese Weise sparst Du eine Variable ein (und damit Speicherplatz).
101Sensoren, Editor, Bürokraten, Administratoren
127

Bearbeitungen

Navigationsmenü