Arduino Crash Kurs: Unterschied zwischen den Versionen
(→If-clauses) |
(→Digital input) |
||
| Zeile 180: | Zeile 180: | ||
} | } | ||
} | } | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Version vom 1. April 2016, 11:31 Uhr
Inhaltsverzeichnis
1. Dein erstes Programm
Die setup-Funktion wird beim Programmstart einmal durchlaufen. Hier kann man Dinge durchführen, die nur einmal nach dem Arduino-Reset ausgeführt werden sollen. Die Loop-Funktion hingegen wird unendlich oft durchlaufen.
// Die setup-Funktion wird beim Programmstart einmal durchlaufen.
void setup()
{
}
// Die loop-Funktion wird unendlich oft wiederholt.
void loop()
{
}
Aufgabe:
1. Übertrage obige Zeilen in die Arduino IDE.
2. Baue folgende Zeile in die setup-Funktion ein:
pinMode(13, OUTPUT); // Pin 13 soll als Ausgang konfiguriert werden (für LED ansteuern)
3. Baue folgende Zeilen in die loop-Funktion ein:
digitalWrite(13, HIGH); // Pin 13 soll auf HIGH ( 5 Volt ) gesetzt werden delay(1000); // Warte 1000 Millisekunden (= 1 Sekunde) digitalWrite(13, LOW); // Pin 13 soll auf LOW ( 0 Volt/Masse ) gesetzt werden delay(1000); // Warte 1000 Millisekunden (= 1 Sekunde)
1. Lösung
// Die setup-Funktion wird beim Programmstart einmal durchlaufen.
void setup()
{
pinMode(13, OUTPUT); // Pin 13 soll als Ausgang konfiguriert werden
}
// Die loop-Funktion wird unendlich oft wiederholt.
void loop()
{
digitalWrite(13, HIGH); // Pin 13 soll auf HIGH ( 5 Volt ) gesetzt werden
delay(1000); // Warte 1000 Millisekunden (= 1 Sekunde)
digitalWrite(13, LOW); // Pin 13 soll auf LOW ( 0 Volt/Masse ) gesetzt werden
delay(1000); // Warte 1000 Millisekunden (= 1 Sekunde)
}
2. Dein erstes Programm mit Variablen und serieller Konsole
Aufgabe:
1. Ersetze die Pin-Nummer "13" durch eine Variable welche Du außerhalb von Funktionen definierst:
int pinLED = 13; // die Variable namens "pinLED" soll den Wert 13 bekommen
2. Ersetze nun überall dort die "13" durch "pinLED" wo der LED-Pin benutzt wird.
3. Teste Dein Programm einmal.
4. Baue folgende Zeilen in die setup-Funktion ein:
Serial.begin(115200); // serielle Konsole für 115200 Baud konfigurieren
Serial.println("START"); // Text auf serielle Konsole ausgeben
5. Baue folgende Zeilen jeweils an geeigneter Stelle in die loop-Funktion ein:
Serial.println("LED EIN"); // Text auf serielle Konsole ausgeben
Serial.println("LED AUS"); // Text auf serielle Konsole ausgeben
2. Lösung
int pinLED = 13; // die Variable namens "pinLED" soll den Wert 13 bekommen
// Die setup-Funktion wird beim Programmstart einmal durchlaufen.
void setup()
{
pinMode(pinLED, OUTPUT); // PinLED soll als Ausgang konfiguriert werden
Serial.begin(115200); // serielle Konsole für 115200 Baud konfigurieren
Serial.println("START"); // Text auf serielle Konsole ausgeben
}
// Die loop-Funktion wird unendlich oft wiederholt.
void loop()
{
digitalWrite(pinLED, HIGH); // PinLED soll auf HIGH ( 5 Volt ) gesetzt werden
Serial.println("LED EIN"); // Text auf serielle Konsole ausgeben
delay(1000); // Warte 1000 Millisekunden (= 1 Sekunde)
digitalWrite(pinLED, LOW); // PinLED soll auf LOW ( 0 Volt/Masse ) gesetzt werden
Serial.println("LED AUS"); // Text auf serielle Konsole ausgeben
delay(1000); // Warte 1000 Millisekunden (= 1 Sekunde)
}
3. Ein Taster
Wir schließen einen Taster an den Arduino. Die LED soll nur dann auslösen wenn der Taster gedrückt wird.
Aufgabe: 1. Schliesse den Taster an Pin 5 an und definiere den Pin:
int pinSwitch = 5; // Pin für Taster definieren
2. Baue folgende Zeile in die setup-Funktion ein:
pinMode(pinSwitch, INPUT_PULLUP); // Taster soll als Eingang (mit Pull-Up) konfiguriert werden
3. Baue folgende Zeilen in die loop-Funktion ein:
int zustand = digitalRead(pinSwitch); // Taster in Variable "zustand" einlesen
Serial.print("Taster Zustand: ");
Serial.println( zustand );
digitalWrite( pinLED, zustand ); // LED passend ansteuern delay(1000);
3. Lösung
int pinSwitch = 5; // Pin für Taster
int pinLED = 13; // Pin für LED
void setup()
{
pinMode(pinSwitch, INPUT_PULLUP); // Taster soll als Eingang (mit Pull-Up) konfiguriert werden
pinMode(pinLED, OUTPUT); // LED soll als Ausgang konfiguriert werden
Serial.begin(115200); // serielle Konsole mit 115200 Baud konfigurieren
}
void loop()
{
int zustand = digitalRead(pinSwitch); // Taster in Variable einlesen
Serial.print("Taster ist ");
Serial.println( zustand );
digitalWrite( pinLED, zustand ); // LED passend ansteuern
delay(1000);
}
4. Abfragen
Unser Programm soll zwei unterschiedliche Zweige bekommen. Wir lösen dies durch eine Abfrage.
Aufgabe: 1. Baue folgende Abfrage in die loop-Funktion ein:
if (zustand == HIGH)
Serial.println( "Der Schalter ist AUS" );
else
Serial.println( "Der Schalter ist EIN" );
5. Schleifen
Mit Schleifen können wir Befehle wiederholen.
1. Baue folgende Schleife in die loop-Funktion ein:
for (int zeit=0; zeit < 4; zeit++)
{
Serial.print("Warte ");
Serial.println(zeit);
delay(1000);
}
}