Arduino-Tutorial
Dieses Tutorial bietet einen umfassenden Einstieg in die Arduino-Programmierung. Es richtet sich an Einsteiger und Fortgeschrittene, die Schritt für Schritt die Grundlagen, typische Anwendungen und fortgeschrittene Themen lernen möchten.
Inhaltsverzeichnis
- Was ist Arduino?
- Hardware: Arduino-Boards und Zubehör
- Installation der Arduino IDE
- Erste Schritte: "Blink"-Beispiel
- Grundlagen der Arduino-Programmierung
- Digitale Ein- und Ausgänge
- Analoge Ein- und Ausgänge
- Eigene Funktionen und Variablen
- Bibliotheken und Module
- Serielle Kommunikation
- Praxisprojekte & Übungen
- Empfohlene Ressourcen
1. Was ist Arduino?
Arduino ist eine Open-Source-Plattform für Mikrocontroller-Entwicklung. Sie besteht aus einer einfachen Hardware (z.B. Arduino Uno, Nano, Mega) und einer benutzerfreundlichen Programmierumgebung (IDE). Mit Arduino lassen sich elektronische Schaltungen und Programme leicht verbinden und steuern.
- Ideal für Prototyping, Automatisierung, Sensorik, Robotik, IoT und Bildung
- Große Community, viele fertige Beispiele und Bibliotheken
- Programme heißen bei Arduino Sketches
2. Hardware: Arduino-Boards und Zubehör
- Arduino Uno: Der Standard, ideal für Einsteiger
- Arduino Nano: Kompakt, für kleine Projekte
- Arduino Mega: Viele Pins, für größere Projekte
- Sensoren: Temperatur, Licht, Bewegung, etc.
- Aktoren: LEDs, Motoren, Relais, Displays, etc.
- Stromversorgung: USB, Netzteil oder Batterie
- Steckbrett, Jumper-Kabel, Widerstände, Taster, Potentiometer
3. Installation der Arduino IDE
- Lade die Arduino IDE von arduino.cc herunter.
- Installiere die Software auf deinem Betriebssystem (Windows, Mac, Linux).
- Starte die IDE und verbinde dein Arduino-Board per USB.
- Wähle unter Werkzeuge > Board das richtige Board (z.B. "Arduino Uno").
- Wähle unter Werkzeuge > Port den entsprechenden COM-Port.
Programme heißen "Sketches".
4. Erste Schritte: "Blink"-Beispiel
Das klassische "Hello World" der Arduino-Welt ist das Blinken einer LED. Das Board hat meist eine LED an Pin 13.
// Blink-Sketch
void setup() {
pinMode(13, OUTPUT); // Pin 13 als Ausgang
}
void loop() {
digitalWrite(13, HIGH); // LED an
delay(1000); // 1 Sekunde warten
digitalWrite(13, LOW); // LED aus
delay(1000); // 1 Sekunde warten
}
- setup(): Wird einmal beim Start ausgeführt (Initialisierung)
- loop(): Läuft danach immer wieder in einer Endlosschleife
5. Grundlagen der Arduino-Programmierung
Struktur eines Sketches
void setup() {
// Initialisierung
}
void loop() {
// Hauptprogramm
}
Variablen und Datentypen
Typ | Beispiel | Beschreibung |
---|---|---|
int | int a = 5; | Ganzzahl (-32.768 bis 32.767) |
long | long b = 100000L; | Große Ganzzahl |
float | float c = 3.14; | Kommazahl |
char | char d = 'A'; | Ein Zeichen |
bool | bool e = true; | Wahr/Falsch |
String | String s = "Hallo"; | Text (Klasse) |
Kommentare
// Einzeiliger Kommentar
/* Mehrzeiliger
Kommentar */
Operatoren
- Rechnen:
+
,-
,*
,/
,%
- Vergleich:
==
,!=
,<
,>
,<=
,>=
- Logik:
&&
(und),||
(oder),!
(nicht)
6. Digitale Ein- und Ausgänge
LED schalten
int ledPin = 8;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH); // LED an
delay(500);
digitalWrite(ledPin, LOW); // LED aus
delay(500);
}
Taster abfragen
int tasterPin = 2;
int ledPin = 8;
void setup() {
pinMode(tasterPin, INPUT_PULLUP); // interner Pullup-Widerstand
pinMode(ledPin, OUTPUT);
}
void loop() {
if (digitalRead(tasterPin) == LOW) { // Taster gedrückt
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
- INPUT_PULLUP: Verwendet internen Widerstand, Taster schaltet gegen GND.
7. Analoge Ein- und Ausgänge
Analoge Eingänge (z.B. Potentiometer)
int potiPin = A0; // Analoger Pin
void setup() {
Serial.begin(9600);
}
void loop() {
int wert = analogRead(potiPin); // Wert 0-1023
Serial.println(wert);
delay(100);
}
Analoge Ausgänge (PWM, z.B. LED dimmen)
int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
for (int hell = 0; hell <= 255; hell++) {
analogWrite(ledPin, hell); // LED heller
delay(5);
}
for (int hell = 255; hell >= 0; hell--) {
analogWrite(ledPin, hell); // LED dunkler
delay(5);
}
}
- PWM: Pins mit "~" unterstützen
analogWrite()
(z.B. 3, 5, 6, 9, 10, 11 beim Uno).
8. Eigene Funktionen und Variablen
int addiere(int a, int b) {
return a + b;
}
void setup() {
Serial.begin(9600);
int summe = addiere(3, 5);
Serial.println(summe);
}
void loop() {
// bleibt leer
}
- Funktionen helfen, den Code zu strukturieren und wiederzuverwenden.
- Variablen können global (außerhalb von Funktionen) oder lokal (innerhalb) sein.
9. Bibliotheken und Module
Bibliotheken erweitern die Arduino-Funktionalität, z.B. für Displays, Sensoren, Motoren, Netzwerke.
- Bibliothek einbinden: Sketch > Bibliothek einbinden > Bibliotheken verwalten...
- Beispiel: LCD-Display (
#include <LiquidCrystal.h>
)
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2); // 16 Zeichen, 2 Zeilen
lcd.print("Hallo, Arduino!");
}
void loop() {
// weitere LCD-Ausgaben
}
10. Serielle Kommunikation
Die serielle Schnittstelle verbindet Arduino mit dem Computer (z.B. für Debugging oder Datenaustausch).
void setup() {
Serial.begin(9600); // Baudrate
Serial.println("Serielle Kommunikation gestartet");
}
void loop() {
Serial.println("Hallo Welt");
delay(1000);
}
- Serial.print(): Gibt Text oder Zahlen aus
- Serial.read(): Liest Daten vom PC
11. Praxisprojekte & Übungen
- Blinkende LED mit Tastersteuerung
- Temperaturmessung mit Sensor und Anzeige auf LCD
- Motorsteuerung per PWM
- Einfaches digitales Thermometer
- Messung und Anzeige der Lichtstärke (Fotowiderstand)
- Webserver mit ESP8266 (erfordert spezielle Bibliotheken und WLAN-Modul)
12. Empfohlene Ressourcen
Viel Erfolg beim Lernen und Experimentieren mit Arduino!