Zum Hauptinhalt springen

Arduino Programmierung Basics

Grundlegende Tipps und Tricks für die Programmierung mit Arduino-Boards wie Nano, Uno und Mega.


Inhaltsverzeichnis


Erste Schritte

Arduino IDE einrichten

  1. Laden Sie die Arduino IDE herunter und installieren Sie sie
  2. Stellen Sie sicher, dass die CH340/CH341-Treiber installiert sind (siehe CH340/CH341-Treiber)
  3. Wählen Sie das richtige Board und den richtigen Port in der IDE aus
Tipp

Unter Tools > Board können Sie das verwendete Board auswählen. Unter Tools > Port wählen Sie den COM-Port (Windows) oder /dev/cu.* (macOS/Linux) aus.

Erstes Programm hochladen

void setup() {
// Initialisierung - wird einmal beim Start ausgeführt
pinMode(13, OUTPUT); // LED-Pin als Ausgang definieren
}

void loop() {
// Hauptprogramm - wird kontinuierlich wiederholt
digitalWrite(13, HIGH); // LED einschalten
delay(1000); // 1 Sekunde warten
digitalWrite(13, LOW); // LED ausschalten
delay(1000); // 1 Sekunde warten
}

Grundlegende Konzepte

Pin-Modi

Arduino-Pins können als Eingang oder Ausgang konfiguriert werden:

pinMode(pin, INPUT);      // Pin als Eingang
pinMode(pin, OUTPUT); // Pin als Ausgang
pinMode(pin, INPUT_PULLUP); // Pin als Eingang mit internem Pull-up-Widerstand

Digitale Ein- und Ausgabe

// Lesen eines digitalen Pins
int wert = digitalRead(pin);

// Schreiben auf einen digitalen Pin
digitalWrite(pin, HIGH); // 5V (oder 3.3V bei 3.3V-Boards)
digitalWrite(pin, LOW); // 0V (GND)

Analoge Ein- und Ausgabe

// Analogen Wert lesen (0-1023 bei 10-Bit-ADC)
int analogWert = analogRead(A0);

// PWM-Signal ausgeben (0-255)
analogWrite(pin, 128); // 50% Duty Cycle
Wichtig

Nicht alle Pins unterstützen PWM. Bei Arduino Uno sind dies die Pins 3, 5, 6, 9, 10 und 11.

Serielle Kommunikation

void setup() {
Serial.begin(9600); // Serielle Kommunikation mit 9600 Baud starten
}

void loop() {
Serial.println("Hallo Welt!"); // Text senden
delay(1000);
}

Häufige Probleme und Lösungen

Problem: "Board not found" oder "Port not available"

Lösung
  • Überprüfen Sie, ob die Treiber korrekt installiert sind
  • Stellen Sie sicher, dass das richtige Board und der richtige Port ausgewählt sind
  • Versuchen Sie, das USB-Kabel zu wechseln
  • Starten Sie die Arduino IDE neu

Problem: "Upload failed" oder "Verification error"

Lösung
  • Drücken Sie den Reset-Button auf dem Board kurz vor dem Upload
  • Überprüfen Sie die Verbindung zwischen Computer und Board
  • Stellen Sie sicher, dass keine anderen Programme den COM-Port verwenden
  • Versuchen Sie einen anderen USB-Port

Problem: Code läuft nicht wie erwartet

Lösung
  • Verwenden Sie Serial.println() für Debug-Ausgaben
  • Überprüfen Sie die Pin-Belegung in Ihrem Code
  • Stellen Sie sicher, dass externe Komponenten korrekt angeschlossen sind
  • Prüfen Sie die Spannungsversorgung (5V für Uno/Nano, 3.3V für einige Sensoren)

Best Practices

Code-Organisation

// Konstanten am Anfang definieren
const int LED_PIN = 13;
const int SENSOR_PIN = A0;
const int DELAY_TIME = 1000;

void setup() {
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
}

void loop() {
// Hauptlogik hier
}

Fehlerbehandlung

void setup() {
Serial.begin(9600);
while (!Serial) {
; // Warten bis serielle Verbindung hergestellt ist
}
Serial.println("Bereit!");
}

Energieeffizienz

// Für batteriebetriebene Anwendungen
void loop() {
// Code ausführen
delay(1000);

// In Sleep-Modus gehen (falls verfügbar)
// LowPower.powerDown(SLEEP_1S, ADC_OFF, BOD_OFF);
}

Kommentare und Dokumentation

/**
* Funktion zum Blinken einer LED
* @param pin Pin-Nummer der LED
* @param duration Dauer in Millisekunden
*/
void blinkLED(int pin, int duration) {
digitalWrite(pin, HIGH);
delay(duration);
digitalWrite(pin, LOW);
delay(duration);
}

Nützliche Ressourcen