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

  1. Was ist Arduino?
  2. Hardware: Arduino-Boards und Zubehör
  3. Installation der Arduino IDE
  4. Erste Schritte: "Blink"-Beispiel
  5. Grundlagen der Arduino-Programmierung
  6. Digitale Ein- und Ausgänge
  7. Analoge Ein- und Ausgänge
  8. Eigene Funktionen und Variablen
  9. Bibliotheken und Module
  10. Serielle Kommunikation
  11. Praxisprojekte & Übungen
  12. 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.
Tipp: Die Arduino IDE zeigt Fehler und Hinweise im unteren Bereich an. Programme werden mit dem "Upload"-Button auf das Board geladen.
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
Tipp: Du kannst auch eine eigene LED mit Vorwiderstand an Pin 13 und GND anschließen.

5. Grundlagen der Arduino-Programmierung

Struktur eines Sketches

void setup() {
  // Initialisierung
}

void loop() {
  // Hauptprogramm
}

Variablen und Datentypen

TypBeispielBeschreibung
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.
Aufgabe: Baue eine Schaltung mit Taster und LED. Die LED soll nur leuchten, solange der Taster gedrückt ist.

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).
Aufgabe: Steuere die Helligkeit einer LED mit einem Potentiometer.

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
}
Tipp: Viele Bibliotheken bringen Beispiel-Sketches mit. Diese findest du unter Datei > Beispiele.

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
Aufgabe: Schreibe ein Programm, das eine Zahl vom PC einliest und das Doppelte zurücksendet.

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)
Projektaufgabe: Baue eine Ampelsteuerung mit drei LEDs (rot, gelb, grün) und programmiere die typische Ampel-Logik.
Tipp: Probiere die Beispiele aus, ändere Werte und beobachte die Wirkung. Die Arduino-Community ist groß und hilfsbereit – nutze Foren und Blogs für Fragen und Inspiration.

Viel Erfolg beim Lernen und Experimentieren mit Arduino!