Electronics2025-12-0235 min readBy Abhishek Nair - Fractional CTO für Deep Tech & AI

Der umfassende Leitfaden zum Arduino Nano: Vom Anfänger bis zu konkreten Projekten

#Arduino#Elektronik#Eingebettete Systeme#Mikrocontroller#C++#Sensoren#IoT
Loading...

Der vollständige Arduino-Nano-Leitfaden: Vom Anfänger bis zu konkreten Projekten

Einrichtung, Programmierung, Sensoren und alles, was Sie wissen müssen


Inhaltsverzeichnis

  1. Einführung
  2. Was ist Arduino Nano?
  3. Technische Daten & Pinbelegung
  4. Erste Schritte: Hardware-Einrichtung
  5. Einrichtung der Entwicklungsumgebung
  6. Ihr erstes Programm
  7. C++ für Arduino verstehen
  8. Leitfaden zu Sensoren und Komponenten
  9. Fortgeschrittene Projekte und Code-Beispiele
  10. Fehlerbehebung und Tipps

Einführung

Der Arduino Nano ist eines der vielseitigsten und anfängerfreundlichsten Mikrocontroller-Boards auf dem Markt. Egal, ob Sie sich für Robotik, IoT, Hausautomation interessieren oder einfach nur Elektronik lernen möchten – dieser Leitfaden führt Sie durch alles, was Sie wissen müssen, um loszulegen und tolle Projekte zu realisieren.

In diesem umfassenden Leitfaden lernen Sie:

  • Wie Sie Ihren Arduino Nano einrichten und konfigurieren
  • Wie Sie Code mit der Arduino IDE und VS Code hochladen
  • Die Grundlagen der C++-Programmierung für Mikrocontroller
  • Wie man gängige Sensoren anschließt und damit arbeitet
  • Praxisnahe Projektbeispiele mit vollständigem Code

Was ist der Arduino Nano?

Der Arduino Nano ist ein kleines, für Steckplatinen geeignetes Mikrocontroller-Board, das auf dem ATmega328P-Prozessor (oder in neueren Versionen auf dem ATmega4809) basiert. Es eignet sich perfekt für Embedded-Projekte, bei denen der Platz begrenzt ist.

Warum Arduino Nano wählen?

Vorteile:

  • Kompakte Größe: Nur 45 mm × 18 mm, passt problemlos auf Steckplatinen
  • Erschwinglich: Kostet in der Regel 8–15 US-Dollar
  • Einfach zu erlernen: Umfangreiche Community-Unterstützung und Dokumentation
  • Breite Kompatibilität: Funktioniert mit den meisten Sensoren und Komponenten
  • Vielseitig: Geeignet für Prototyping- und Produktionsprojekte
  • Energieeffizient: Geringer Stromverbrauch für batteriebetriebene Projekte

Ideal für:

  • Robotik und autonome Fahrzeuge
  • IoT-Anwendungen
  • Hausautomation
  • Umweltüberwachung
  • Gamecontroller
  • Wearable-Technologie

Technische Daten & Pinbelegung

Technische Daten (ATmega328P-Version)

SpezifikationDetails
ProzessorATmega328P
Betriebsspannung5 V
Eingangsspannung7–12 V (über Vin) oder 5 V (über USB)
Digitale I/O-Pins14 (6 PWM-fähig)
Analoge Eingangs-Pins8
Gleichstrom pro I/O40 mA
Flash-Speicher32 KB
SRAM2 KB
EEPROM1 KB
Taktrate16 MHz
Abmessungen45 mm × 18 mm

Beschreibung des Pinbelegungsdiagramms

Der Arduino Nano verfügt über folgende Pin-Gruppen:

Digitale Pins (0–13):

  • Pins 0–1: UART-Seriell (Tx/Rx)
  • Pins 3, 5, 6, 9, 10, 11: PWM-fähig
  • Pin 13: Integrierte LED

Analoge Pins (A0–A7):

  • Können analoge Werte lesen (0–1023)
  • Können auch als digitale Ein-/Ausgänge verwendet werden

Spezielle Pins:

  • 5V: Stromversorgung
  • GND: Masse (3 Pins)
  • Vin: Externer Stromeingang
  • AREF: Analoge Referenz
  • RST: Reset-Taste

Für detaillierte Pinbelegungsdiagramme suchen Sie bei Google Bilder nach „Arduino Nano Pinbelegungsdiagramm“ oder besuchen Sie arduino.cc


Erste Schritte: Hardware-Einrichtung

Was Sie benötigen

Wesentliche Komponenten:

  1. Arduino Nano Mikrocontroller-Board

    • Bezugsquelle: DFRobot: Arduino Nano
    • Preis: 10–20 $
    • Empfohlene Marke: Offizielles Arduino oder DFRobot
  2. USB-Kabel (USB Typ A auf Mini-B)

    • Bezugsquelle: DFRobot: USB-Kabel
    • Preis: 5–10 $
    • Erforderlich für Programmierung und Stromversorgung
  3. Breadboard (400–830 Löcher)

  4. Jumper-Kabel

    • Bezugsquelle: DFRobot: Jumper-Kabel
    • Preis: 5–10 $
    • Besorgen Sie sich ein Sortiment mit Stecker-Stecker-, Stecker-Buchse- und Buchse-Buchse-Kabeln

Schritt-für-Schritt-Anleitung zur Hardware-Montage

Schritt 1: Bereiten Sie Ihren Arbeitsbereich vor

  • Legen Sie alle Komponenten auf einer sauberen, antistatischen Oberfläche bereit
  • Sorgen Sie für eine ausreichende Beleuchtung Ihres Arbeitsbereichs
  • Halten Sie das USB-Kabel zum Testen griffbereit

Schritt 2: Stecken Sie den Arduino Nano in das Steckbrett

  1. Nehmen Sie Ihr Steckbrett zur Hand und suchen Sie den mittleren Kanal (die Lücke in der Mitte)
  2. Positionieren Sie den Arduino Nano über dem Steckbrett, wobei der USB-Anschluss von Ihnen weg zeigt
  3. Stecken Sie den Nano vorsichtig in das Steckbrett und achten Sie dabei darauf, dass:
    • alle Pins auf einer Seite in die Löcher des Steckbretts passen
    • der USB-Anschluss genügend Abstand zum Rand des Steckbretts hat
    • die Platine bündig am Steckbrett anliegt

Wichtiger Hinweis: Die beiden Pin-Reihen sollten sich auf gegenüberliegenden Seiten des mittleren Kanals befinden. So bleibt der mittlere Bereich frei für den Einbau von Sensoren und anderen Komponenten.

Schritt 3: Stromversorgung und Masse anschließen

  1. Identifizieren Sie die Stromversorgungs-Pins am Nano:

    • 5V-Pin: Versorgt angeschlossene Komponenten mit Strom
    • GND-Pins: Masse-/Referenzpunkte (es gibt 3)
  2. Stromschienen auf dem Steckbrett anlegen:

    • Verbinden Sie den 5V-Pin mit einem Jumperdraht mit der positiven (roten) Schiene auf dem Steckbrett
    • Verbinden Sie einen GND-Pin mit einem Jumperdraht mit der negativen (schwarzen) Schiene auf dem Steckbrett
    • Diese Schienen verteilen die Stromversorgung auf alle Ihre Komponenten
  3. Visuelle Anordnung:

    [Arduino Nano]
        5V → Rote Schiene (Stromversorgung)
        GND → Schwarze Schiene (Masse)
    

Schritt 4: USB-Kabel anschließen

  1. Nehmen Sie das USB-Kabel vom Typ A auf Mini-B
  2. Schließen Sie das Typ-A-Ende an Ihren Computer an
  3. Schließen Sie das Mini-B-Ende an den USB-Anschluss des Arduino Nano an
  4. Eine kleine LED am Nano sollte aufleuchten (dies zeigt an, dass Strom anliegt)

Schritt 5: Verbindung überprüfen

  • Öffnen Sie den Geräte-Manager Ihres Computers (Windows) oder die Systeminformationen (Mac/Linux)
  • Suchen Sie nach einem neuen COM-Port oder einem /dev/ttyUSB-Gerät
  • Dies bestätigt, dass Ihr Nano vom Computer erkannt wird

Einrichten der Entwicklungsumgebung

Sie haben zwei hervorragende Optionen für die Programmierung Ihres Arduino Nano. Wir werden beide behandeln.

Option 1: Arduino IDE (offiziell & am einfachsten)

Die Arduino IDE ist die offizielle Entwicklungsumgebung und perfekt für Anfänger geeignet.

Installationsschritte:

  1. Arduino IDE herunterladen:

  2. IDE installieren:

    • Windows: Führen Sie das Installationsprogramm aus und folgen Sie den Anweisungen
    • Mac: Ziehe die Arduino-App in den Ordner „Programme“
    • Linux: Entpacke die TAR-Datei und führe ./install.sh aus
  3. Starte die Arduino IDE:

    • Öffne die Anwendung
    • Du solltest einen leeren Sketch mit den Funktionen setup() und loop() sehen

Konfiguration für Arduino Nano:

  1. Board auswählen:

    • Klicken Sie auf ToolsBoard:Arduino AVR BoardsArduino Nano
  2. Prozessor auswählen:

    • Klicken Sie auf ToolsProcessor:ATmega328P (oder ATmega328P (Old Bootloader), falls Ihr Nano älter ist)
  3. COM-Port auswählen:

    • Schließen Sie Ihren Nano über USB an
    • Klicken Sie auf ToolsPort: → Wählen Sie den angezeigten COM-Port aus
    • Unter Windows: In der Regel COM3 oder höher
    • Auf dem Mac: In der Regel /dev/cu.usbserial-####
    • Unter Linux: In der Regel /dev/ttyUSB0
  4. Verbindung testen:

    • Klicken Sie auf ToolsGet Board Info
    • Bei Erfolg werden die Board-Details angezeigt

Option 2: Visual Studio Code (fortgeschritten & leistungsstark)

VS Code bietet eine professionelle Entwicklungsumgebung mit verbesserter Code-Bearbeitung.

Installationsschritte:

  1. VS Code installieren:

    • Laden Sie das Programm von code.visualstudio.com herunter
    • Führen Sie die Installation gemäß dem Standardinstallationsprozess durch
  2. Arduino-Erweiterung installieren:

    • Öffnen Sie VS Code
    • Klicken Sie auf das Symbol „Erweiterungen“ (linke Seitenleiste)
    • Suchen Sie nach „Arduino“ von Microsoft
    • Klicken Sie auf „Installieren“
  3. Arduino CLI installieren (erforderliches Backend):

    • Besuchen Sie arduino.github.io/arduino-cli
    • Laden Sie die Version für Ihr Betriebssystem herunter
    • Befolgen Sie die Installationsanweisungen
    • Überprüfen Sie die Installation, indem Sie im Terminal arduino-cli version ausführen
  4. VS Code konfigurieren:

    • VS Code öffnen
    • Drücken Sie Strg+Umschalt+P (Cmd+Umschalt+P auf dem Mac)
    • Geben Sie „Arduino: Board Manager“ ein
    • Suchen und installieren Sie Arduino AVR Boards
  5. Erstellen Sie Ihr erstes Projekt:

    • Erstellen Sie einen neuen Ordner für Ihr Projekt
    • Erstellen Sie darin eine Datei: sketch.ino
    • VS Code sollte diese als Arduino-Code erkennen
  6. Board-Einstellungen konfigurieren:

    • Klicken Sie auf das Arduino-Symbol in der unteren Statusleiste
    • Wählen Sie „Arduino Nano“ als Board aus
    • Wählen Sie „ATmega328P“ als Prozessor aus
    • Wählen Sie Ihren COM-Port aus

Code in VS Code hochladen:

  • Öffnen Sie Ihre .ino-Datei und drücken Sie Strg+Alt+U, um sie hochzuladen
  • Oder klicken Sie auf die Schaltfläche „Hochladen“ in der Statusleiste

Ihr erstes Programm

Schreiben und laden wir Ihr erstes Programm hoch: ein einfaches LED-Blinkprogramm.

Das klassische Blinkprogramm

Physikalischer Aufbau:

  1. Stecken Sie eine LED in das Steckbrett (längeres Bein positiv)
  2. Verbinde den Pluspol der LED mit Pin 13 (über das Steckbrett)
  3. Verbinde den Minuspol der LED mit Masse (über einen 220-Ω-Widerstand mit Masse)

Code:

// Arduino Nano – Einfaches LED-Blinken // Dieses Programm lässt die integrierte LED an Pin 13 blinken void setup() { // setup() wird einmal ausgeführt, wenn das Board startet // Pin 13 als Ausgang konfigurieren pinMode(13, OUTPUT); } void loop() { // loop() wird wiederholt ausgeführt, endlos // LED einschalten digitalWrite(13, HIGH); // 1000 Millisekunden warten (1 Sekunde) delay(1000); // LED ausschalten digitalWrite(13, LOW); // 1000 Millisekunden (1 Sekunde) warten delay(1000); }

Anweisungen zum Hochladen:

  1. Arduino IDE:

    • Kopiere den obigen Code in den IDE-Editor
    • Klicke auf SketchUpload (oder Strg+U)
    • Warte auf die Meldung „Done uploading“
  2. VS Code:

    • Kopiere den Code in deine .ino-Datei
    • Drücke Strg+Alt+U
    • Beobachte den Fortschritt des Uploads

Erwartetes Ergebnis:

  • Die LED auf Ihrem Steckbrett blinkt jede Sekunde
  • Wenn Sie dies sehen, herzlichen Glückwunsch! Sie haben erfolgreich einen Arduino Nano programmiert

Den Code verstehen

pinMode(pin, mode)

  • Konfiguriert einen Pin entweder als INPUT oder OUTPUT
  • Muss in setup() aufgerufen werden
  • Beispiel: pinMode(13, OUTPUT) macht Pin 13 zu einem Ausgang

digitalWrite(pin, value)

  • Setzt einen digitalen Pin auf HIGH (5 V) oder LOW (0 V)
  • HIGH schaltet Dinge ein, LOW schaltet sie aus
  • Beispiel: digitalWrite(13, HIGH) sendet 5 V an Pin 13

delay(Millisekunden)

  • Unterbricht die Programmausführung für die angegebene Anzahl von Millisekunden
  • 1000 ms = 1 Sekunde
  • Beispiel: delay(500) pausiert für 500 ms (eine halbe Sekunde)

setup() vs. loop()

  • setup(): Wird einmal beim Start ausgeführt, dient der Initialisierung
  • loop(): Wird endlos wiederholt ausgeführt; hier befindet sich die Hauptlogik Ihres Programms

C++ für Arduino verstehen

Arduino-Code ist eigentlich eine vereinfachte Version von C++. Das Verständnis der Grundlagen hilft Ihnen dabei, bessere Programme zu schreiben.

Variablen und Datentypen

Variablen speichern Informationen. Hier sind die gängigen Typen:

// Integer – ganze Zahlen int age = 25; int count = 0; // Float – Dezimalzahlen float temperature = 23.5; float voltage = 3.14; // Byte – 0 bis 255 (spart Speicherplatz) byte brightness = 255; // Boolean – wahr oder falsch boolean isMotorRunning = true; bool ledIsOn = false; // Character – einzelnes Zeichen char initial = 'A'; // String – Text String sensorName = "Temperature Sensor";

Konstanten

Konstanten sind Werte, die sich nie ändern. Verwende sie für Pin-Nummern:

// Definieren Sie Konstanten am Anfang Ihres Programms const int LED_PIN = 13; const int BUTTON_PIN = 2; const int SENSOR_PIN = A0; // Verwenden Sie sie in Ihrem Code pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, HIGH);

Operatoren

Führen Sie Operationen mit Variablen durch:

// Arithmetik int result = 10 + 5; // Addition int math = 20 - 8; // Subtraktion int product = 4 * 5; // Multiplikation int quotient = 20 / 4; // Division int remainder = 17 % 5; // Modulo (Rest) // Vergleich (gibt true oder false zurück) if (10 > 5) { } // größer als if (5 < 10) { } // kleiner als if (5 == 5) { } // gleich if (5 != 10) { } // ungleich // Logik if (a > 5 && b < 10) { } // AND (beide müssen wahr sein) if (a > 5 || b < 10) { } // OR (mindestens eine Bedingung muss wahr sein) if (!isRunning) { } // NOT (Gegenteil von wahr/falsch)

Kontrollstrukturen

Steuern Sie, was Ihr Programm tut:

// IF-Anweisung if (temperature > 30) { digitalWrite(COOLER_PIN, HIGH); } // IF-ELSE if (buttonPressed) { digitalWrite(LED_PIN, HIGH); } else { digitalWrite(LED_PIN, LOW); } // FOR-Schleife – eine bestimmte Anzahl von Malen wiederholen for (int i = 0; i < 10; i++) { digitalWrite(LED_PIN, HIGH); delay(100); digitalWrite(LED_PIN, LOW); delay(100); } // WHILE-Schleife – wiederholen, bis die Bedingung falsch ist while (sensorValue > 500) { Serial.println(sensorValue); sensorValue = analogRead(A0); }

Funktionen

Erstellen Sie wiederverwendbare Code-Blöcke:

// Funktionsdeklaration void blinkLED(int times) { for (int i = 0; i < times; i++) { digitalWrite(LED_PIN, HIGH); delay(200); digitalWrite(LED_PIN, LOW); delay(200); } } // Funktion, die einen Wert zurückgibt int readSensorValue() { int value = analogRead(A0); return value; } // Verwendung von Funktionen void loop() { blinkLED(3); // Funktion mit Parameter aufrufen int sensorReading = readSensorValue(); }

Serielle Kommunikation

Kommunikation mit Ihrem Computer:

void setup() { // Serielle Kommunikation mit einer Baudrate von 9600 starten Serial.begin(9600); // Meldungen ausgeben Serial.println("System gestartet!"); } void loop() { // Sensorwert ausgeben int value = analogRead(A0); Serial.print("Sensor: "); Serial.println(value); delay(1000); }

Anzeigen der seriellen Ausgabe:

  1. Öffne die Arduino IDE
  2. Klicke auf ToolsSerial Monitor
  3. Baudrate auf 9600 einstellen
  4. Live-Daten von Ihrem Nano anzeigen

Leitfaden zu Sensoren und Komponenten

Nun wollen wir gängige Sensoren an Ihren Arduino Nano anschließen und verwenden.

1. Infrarot-Sensor (IR-Sensor)

Funktionsweise: Erkennt Bewegungen oder Objekte mithilfe von Infrarotlicht

Bezugsquellen:

Technische Daten:

  • Betriebsspannung: 3,3–5 V
  • Erfassungsreichweite: Bis zu 7 Meter
  • Erfassungswinkel: 100 Grad
  • Ausgang: Digital HIGH/LOW
  • Betriebsstrom: 15 µA (extrem geringer Stromverbrauch)

Beschreibung des Schaltplans:

        ┌─────────────────┐
        │   IR-Sensor     │
        │   (PIR)         │
        ├─────────────────┤
        │ Vcc  Out  GND   │
        └─────────────────┘
        │     │    │
        │     │    └──→ GND (Nano)
        │     │
        │     └──→ Pin 2 (Nano)
        │
        └──→ 5V (Nano)

Code-Beispiel:

const int PIR_PIN = 2; void setup() { pinMode(PIR_PIN, INPUT); Serial.begin(9600); } void loop() { int motionDetected = digitalRead(PIR_PIN); if (motionDetected == HIGH) { Serial.println("Bewegung erkannt!"); digitalWrite(13, HIGH); // LED einschalten } else { Serial.println("Keine Bewegung"); digitalWrite(13, LOW); // LED ausschalten } delay(100); }

Tipps:

  • Der Sensor benötigt beim Start 30–60 Sekunden zur Kalibrierung
  • Montieren Sie ihn in 2 Metern Höhe für eine optimale Erfassung
  • Vermeiden Sie direkte Sonneneinstrahlung auf den Sensor

2. Ultraschall-Abstandssensor

Funktionsweise: Misst den Abstand zu Objekten mithilfe von Schallwellen

Bezugsquellen:

Technische Daten:

  • Betriebsspannung: 3,3–5,5 V
  • Messbereich: 15 cm bis 900 cm (URM13) oder 2 cm bis 400 cm (HC-SR04-kompatibler Modus)
  • Auflösung: 1 cm
  • Genauigkeit: 1 %
  • Schnittstellen: TRIG/ECHO (HC-SR04-kompatibel), UART, I2C
  • Automatische Geräuscherkennung und Echtzeitkalibrierung

Beschreibung des Schaltplans (HC-SR04-kompatibler Modus):

Der DFRobot URM13-Sensor unterstützt den HC-SR04-kompatiblen TRIG/ECHO-Modus, sodass Sie die gleiche Verkabelung verwenden können:

        ┌──────────────────┐
        │   Ultraschall     │
        │   URM13/HC-SR04  │
        ├──────────────────┤
        │ Vcc  Trig Ech Gnd│
        └──────────────────┘
        │     │    │   │
        │     │    │   └──→ GND (Nano)
        │     │    │
        │     │    └──→ Pin 3 (Nano) – ECHO
        │     │
        │     └──→ Pin 4 (Nano) – TRIG
        │
        └──→ 5V (Nano)

Hinweis: Der URM13 unterstützt für fortgeschrittenere Anwendungen auch I2C- und UART-Schnittstellen, aber der TRIG/ECHO-Modus funktioniert mit demselben Code wie beim HC-SR04.

Code-Beispiel:

const int TRIG_PIN = 4; const int ECHO_PIN = 3; void setup() { pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); Serial.begin(9600); } void loop() { // 10-Mikrosekunden-Impuls zum Auslösen senden digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // Messung der Echozeit long duration = pulseIn(ECHO_PIN, HIGH); // Berechnung der Entfernung // Schallgeschwindigkeit: 343 m/s = 0,0343 cm/Mikrosekunde // Entfernung = (Dauer * 0,0343) / 2 (durch 2 teilen für Hin- und Rückweg) int distance = duration * 0,034 / 2; Serial.print("Entfernung: "); Serial.print(distance); Serial.println(" cm"); delay(100); }

Tipps:

  • URM13: Halte Objekte mindestens 15 cm entfernt (Mindestreichweite)
  • HC-SR04-Modus: Halte Objekte mindestens 2 cm entfernt
  • Funktioniert am besten auf festen Oberflächen
  • Vermeiden Sie die Messung sehr weicher oder schräger Oberflächen
  • Der Sensor benötigt eine freie Sichtlinie zum Objekt
  • URM13 verfügt über eine automatische Rauscherkennung für zuverlässigere Messwerte

3. LED (Leuchtdiode)

Funktionsweise: Strahlt Licht aus, wenn Strom durch sie fließt

Bezugsquellen:

Technische Daten:

  • Betriebsspannung: 2–3,3 V (abhängig von der Farbe)
  • Typischer Strom: 20 mA
  • Erfordert einen Strombegrenzungswiderstand

Farbspezifikationen:

  • Rot: 2 V, 20 mA (220-Ω-Widerstand verwenden)
  • Grün: 2,2 V, 20 mA (220-Ω-Widerstand verwenden)
  • Blau: 3,2 V, 20 mA (150-Ω-Widerstand verwenden)
  • Gelb: 2,1 V, 20 mA (220-Ω-Widerstand verwenden)

Beschreibung des Schaltplans:

        Plus (langes Bein)
        │
        ├─────[LED]─────[220-Ω-Widerstand]─────┐
        │                                    │
     Pin 13                                GND

Code-Beispiel:

const int RED_LED = 5; const int GREEN_LED = 6; const int BLUE_LED = 9; void setup() { pinMode(RED_LED, OUTPUT); pinMode(GREEN_LED, OUTPUT); pinMode(BLUE_LED, OUTPUT); } void loop() { // Rot blinken digitalWrite(RED_LED, HIGH); delay(500); digitalWrite(RED_LED, LOW); // Grün blinken digitalWrite(GREEN_LED, HIGH); delay(500); digitalWrite(GREEN_LED, LOW); // Blau mit PWM dimmen for (int brightness = 0; brightness <= 255; brightness += 5) { analogWrite(BLUE_LED, brightness); delay(50); } }

Tipps:

  • Verwende immer einen Widerstand (niemals direkt an die Stromversorgung anschließen)
  • Längeres Bein = positiv (Anode), kürzeres Bein = negativ (Kathode)
  • PWM-fähige Pins (3, 5, 6, 9, 10, 11) ermöglichen die Helligkeitssteuerung
  • Verwende digitalWrite für vollständiges Ein-/Ausschalten, analogWrite für die Helligkeit
  • Das DFRobot-LED-Paket enthält je 10 Stück pro Farbe (rot, grün, gelb, blau, weiß)

4. Schrittmotor

Funktionsweise: Dreht sich in präzisen Schritten, hervorragend für die Positionierung geeignet

Bezugsquellen:

Technische Daten:

  • Typ: Unipolarer Schrittmotor mit integriertem Treiber
  • Betriebsspannung: 5 V
  • Schritte pro Umdrehung: 4096 (bei einem Übersetzungsverhältnis von 1:64, Halbschrittmodus)
  • Haltemoment: 0,9 kgf·cm
  • Integrierter Treiber: A4988 (im Modul enthalten)
  • Physikalische Schnittstelle: 4-polig (STEP, DIR, 5V, GND)

Beschreibung des Schaltplans:

Das DFRobot 28BYJ-48-Modul verfügt über einen integrierten A4988-Treiber mit einer vereinfachten 4-poligen Schnittstelle:

    ┌─────────────────────┐
    │ 28BYJ-48-Modul      │
    │ (Motor + Treiber)     │
    ├─────────────────────┤
    │ STEP  DIR  5V  GND  │
    └─────────────────────┘
      │    │    │    │
      │    │    │    └──→ GND (Nano)
      │    │    │
      │    │    └──→ 5V (Nano)
      │    │
      │    └──→ Pin 11 (Nano) – Richtung
      │
      └──→ Pin 10 (Nano) – Schritt

Hinweis: Bei herkömmlichen ULN2003-Treiberkonfigurationen (ohne integrierten Treiber) verwenden Sie die Pins 10–13, wie im folgenden Code-Beispiel gezeigt.

Code-Beispiel (für DFRobot-Modul mit STEP/DIR-Schnittstelle):

const int STEP_PIN = 10; const int DIR_PIN = 11; void setup() { pinMode(STEP_PIN, OUTPUT); pinMode(DIR_PIN, OUTPUT); Serial.begin(9600); } void loop() { // Richtung festlegen (HIGH = im Uhrzeigersinn, LOW = gegen den Uhrzeigersinn) digitalWrite(DIR_PIN, HIGH); // Eine volle Umdrehung drehen (4096 Schritte bei einem Übersetzungsverhältnis von 1:64) for (int i = 0; i < 4096; i++) { digitalWrite(STEP_PIN, HIGH); delayMicroseconds(500); // Geschwindigkeit anpassen digitalWrite(STEP_PIN, LOW); delayMicroseconds(500); } delay(1000); // Richtung umkehren digitalWrite(DIR_PIN, LOW); for (int i = 0; i < 4096; i++) { digitalWrite(STEP_PIN, HIGH); delayMicroseconds(500); digitalWrite(STEP_PIN, LOW); delayMicroseconds(500); } delay(1000); }

Code-Beispiel (für herkömmlichen ULN2003-Treiber – manuelle Steuerung):

const int IN1 = 10; const int IN2 = 11; const int IN3 = 12; const int IN4 = 13; void setup() { pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } // Schrittfolge für den Motor void step(int stepNum) { switch(stepNum) { case 0: digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; case 1: digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; case 2: digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); break; case 3: digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); break; case 4: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); break; case 5: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH); break; case 6: digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); break; case 7: digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); break; } } void loop() { // 2048 Schritte drehen (eine volle Umdrehung) for (int i = 0; i < 2048; i++) { step(i % 8); delay(2); // Verzögerung zwischen den Schritten } delay(1000); }

Besserer Ansatz: Verwende die Stepper.h-Bibliothek

#include <stepper.h>const int STEPS_PER_REVOLUTION = 2048; Stepper stepper(STEPS_PER_REVOLUTION, 10, 11, 12, 13); void setup() { stepper.setSpeed(10); // Drehzahl in U/min } void loop() { // Im Uhrzeigersinn drehen stepper.step(STEPS_PER_REVOLUTION); delay(1000); // Drehung gegen den Uhrzeigersinn stepper.step(-STEPS_PER_REVOLUTION); delay(1000); }

Tipps:

  • Das DFRobot-Modul enthält einen integrierten A4988-Treiber (kein separater Treiber erforderlich)
  • Stromaufnahme: Siehe Modulspezifikationen (für hohes Drehmoment wird eine separate Stromversorgung empfohlen)
  • Die Motordrehzahl beeinflusst das Drehmoment (langsamer = mehr Drehmoment)
  • Die Bibliothek „Stepper.h“ erleichtert die Programmierung erheblich
  • Das Modul verfügt über eine 4-polige Schnittstelle (STEP, DIR, 5V, GND) für eine vereinfachte Verkabelung

5. Temperatur- und Feuchtigkeitssensor

Funktionsweise: Misst Temperatur und Luftfeuchtigkeit

Bezugsquellen:

Technische Daten:

  • Spannung: 3–5 V
  • Temperaturbereich: -40 °C bis 80 °C
  • Feuchtigkeitsbereich: 0–100 %
  • Genauigkeit: ±0,5 °C, ±2 %

Beschreibung des Schaltplans:

        ┌─────────────┐
        │  DHT22      │
        ├─────────────┤
        │ 1   2   4   │
        │ +5V Daten GND│
        └─────────────┘
        │   │    │
        │   │    └──→ GND
        │   │
        │   └──→ Pin 2 (mit 10kΩ Pull-up-Widerstand zu +5V)
        │
        └──→ +5V

Code-Beispiel:

#include <dht.h>#define DHTPIN 2 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); // Der Sensor benötigt 2 Sekunden zwischen den Messungen float humidity = dht.readHumidity(); float temperature = dht.readTemperature(); if (isnan(humidity) || isnan(temperature)) { Serial.println(&quot;Fehler beim Auslesen des Sensors!&quot;); return; } Serial.print(&quot;Temperatur: &quot;); Serial.print(temperature); Serial.println(&quot; °C&quot;); Serial.print(&quot;Luftfeuchtigkeit: &quot;); Serial.print(humidity); Serial.println(&quot; %&quot;); }

Installation der DHT-Bibliothek:

  1. Öffne die Arduino IDE
  2. Klicke auf SketchInclude LibraryManage Libraries
  3. Suche nach „DHT by Adafruit“
  4. Klicke auf Installieren

Tipps:

  • Ein Pull-up-Widerstand (10 kΩ) am Datenpin ist erforderlich
  • Direkten Kontakt mit Wasser vermeiden
  • Sensor vor der Messung stabilisieren lassen
  • Das Messintervall sollte mindestens 2 Sekunden betragen

Fortgeschrittene Projekte & Code-Beispiele

Projekt 1: Bewegungsgesteuertes Alarmsystem

Benötigte Komponenten:

  • PIR-Bewegungssensor
  • Summer (oder Lautsprecher)
  • LED

Verdrahtung:

  • PIR-Sensor → Pin 2
  • Summer → Pin 5
  • LED → Pin 13

Vollständiger Code:

#include<arduino.h> const int PIR_SENSOR = 2; const int BUZZER = 5; const int LED = 13; const int DEBOUNCE_DELAY = 100; unsigned long lastMotionTime = 0; boolean alarmActive = false; void setup() { pinMode(PIR_SENSOR, INPUT); pinMode(BUZZER, OUTPUT); pinMode(LED, OUTPUT); Serial.begin(9600); Serial.println(&quot;Bewegungsalarmsystem initialisiert&quot;); Serial.println(&quot;PIR-Sensor wird aufgewärmt...&quot;); delay(30000); // 30 Sekunden für die Sensorkalibrierung Serial.println(&quot;System bereit!&quot;); } void loop() { int motionDetected = digitalRead(PIR_SENSOR); if (motionDetected == HIGH) { unsigned long currentTime = millis(); // Entprellen: ignorieren, wenn seit der letzten Bewegung weniger als 100 ms vergangen sind if (currentTime - lastMotionTime &gt; DEBOUNCE_DELAY) {</arduino.h></dht.h></stepper.h> if (!alarmActive) { triggerAlarm(); alarmActive = true; } lastMotionTime = currentTime; } } else { if (alarmActive) { stopAlarm(); alarmActive = false; } } delay(50); } void triggerAlarm() { Serial.println(&quot;BEWEGUNG ERKANNT – ALARM AUSGELÖST!&quot;); // Alarmmuster: Piepton und Blinken for (int i = 0; i &lt; 5; i++) { digitalWrite(BUZZER, HIGH); digitalWrite(LED, HIGH); delay(200); digitalWrite(BUZZER, LOW); digitalWrite(LED, LOW); delay(200); } } void stopAlarm() { digitalWrite(BUZZER, LOW); digitalWrite(LED, LOW); Serial.println(&quot;Bewegung gestoppt – Alarm deaktiviert&quot;); }

Projekt 2: Entfernungsmessung mit LCD-Display

Benötigte Komponenten:

  • Ultraschallsensor (HC-SR04)
  • 16x2-LCD-Display
  • 10kΩ-Potentiometer (für LCD-Kontrast)

Verdrahtung für das LCD-I2C-Modul:

  • SDA → Arduino A4
  • SCL → Arduino A5
  • VCC → 5V
  • GND → GND

Vollständiger Code:

#include <wire.h>#include <liquidcrystal_i2c.h>const int TRIG_PIN = 4; const int ECHO_PIN = 3; // LCD-Adresse 0x27 (bei Abweichung anpassen) LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); // LCD initialisieren lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print(&quot;Entfernungsmesser&quot;); lcd.setCursor(0, 1); lcd.print(&quot;Bereit&quot;); Serial.begin(9600); delay(2000); lcd.clear(); } void loop() { int distance = measureDistance(); // Anzeige auf dem LCD lcd.setCursor(0, 0); lcd.print(&quot;Distance: &quot;); lcd.print(distance); lcd.print(&quot; cm &quot;); // Anzeige auf Serial Serial.print(&quot;Distance: &quot;); Serial.print(distance); Serial.println(&quot; cm&quot;); // Status auf LCD lcd.setCursor(0, 1); if (distance &lt; 10) { lcd.print(&quot;NAH! &quot;); } else if (distance &lt; 30) { lcd.print(&quot;NAH &quot;); } else { lcd.print(&quot;WEIT &quot;); } delay(500); } int measureDistance() { // Triggerimpuls senden digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // Echo-Dauer messen long duration = pulseIn(ECHO_PIN, HIGH, 30000); // 30 ms Zeitlimit // Entfernung berechnen // Schallgeschwindigkeit: 343 m/s = 0,0343 cm/Mikrosekunde int distance = duration * 0,034 / 2; return distance; }

Installation der LiquidCrystal-I2C-Bibliothek:

  1. Arduino IDE → SketchInclude LibraryManage Libraries
  2. Suche nach „LiquidCrystal I2C“ von Frank de Brabander
  3. Installieren

Projekt 3: Temperaturmonitor mit LED-Anzeigen

Benötigte Komponenten:

  • DHT22-Temperatursensor
  • 3 LEDs (grün, gelb, rot)
  • 3 × 220-Ω-Widerstände

Verdrahtung:

  • DHT22-Daten → Pin 2
  • Grüne LED → Pin 9
  • Gelbe LED → Pin 10
  • Rote LED → Pin 11

Vollständiger Code:

#include<dht.h> #define DHTPIN 2 #define DHTTYPE DHT22 const int GREEN_LED = 9; const int YELLOW_LED = 10; const int RED_LED = 11; DHT dht(DHTPIN, DHTTYPE); // Temperaturschwellenwerte const float COLD_TEMP = 15.0; const float WARM_TEMP = 25.0; const float HOT_TEMP = 35.0; void setup() { pinMode(GREEN_LED, OUTPUT); pinMode(YELLOW_LED, OUTPUT); pinMode(RED_LED, OUTPUT); Serial.begin(9600); dht.begin(); Serial.println(&quot;Temperaturüberwachung gestartet&quot;); } void loop() { delay(2000); float temperature = dht.readTemperature(); float humidity = dht.readHumidity(); // Auf Sensorfehler prüfen if (isnan(temperature) || isnan(humidity)) { Serial.println(&quot;Sensorauslesung fehlgeschlagen!&quot;); return; } // An Serial ausgeben Serial.print(&quot;Temp: &quot;); Serial.print(temperature); Serial.print(&quot;°C, Luftfeuchtigkeit: &quot;); Serial.print(humidity); Serial.println(&quot;%&quot;); // Entsprechende LED einschalten updateLEDs(temperature); } void updateLEDs(float temp) { // Zuerst alle ausschalten digitalWrite(GREEN_LED, LOW); digitalWrite(YELLOW_LED, LOW); digitalWrite(RED_LED, LOW); // Bestimme, welche LED eingeschaltet werden soll if (temp &lt; COLD_TEMP) { // Kalt – Blau wäre schön, aber wir verwenden GRÜN digitalWrite(GREEN_LED, HIGH); Serial.println(&quot;Status: KALT&quot;); } else if (temp &lt; WARM_TEMP) { // Angenehm digitalWrite(GREEN_LED, HIGH); Serial.println(&quot;Status: ANGENEHM&quot;); } else if (temp &lt; HOT_TEMP) { // Warm – Warnung digitalWrite(YELLOW_LED, HIGH); Serial.println(&quot;Status: WARM&quot;); } else { // Heiß – Alarm digitalWrite(RED_LED, HIGH);</dht.h></liquidcrystal_i2c.h></wire.h> Serial.println(&quot;Status: HEISS-ALARM!&quot;); } }

Projekt 4: Multisensor-Datenlogger

Benötigte Komponenten:

  • DHT22-Temperatursensor
  • Ultraschall-Abstandssensor
  • SD-Kartenmodul (optional, für die Datenerfassung)

Vollständiger Code (mit serieller Datenerfassung):

#include<dht.h> #define DHTPIN 2 #define DHTTYPE DHT22 const int TRIG_PIN = 4; const int ECHO_PIN = 3; DHT dht(DHTPIN, DHTTYPE); struct SensorData { float temperature; float humidity; int distance; unsigned long timestamp; }; SensorData currentReading; void setup() { pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); Serial.begin(9600); dht.begin(); Serial.println(&quot;=== Arduino Nano Multi-Sensor-Logger ===&quot;); Serial.println(&quot;Zeit(ms),Temperatur(°C),Luftfeuchtigkeit(%),Entfernung(cm)&quot;); } void loop() { // Alle Sensoren auslesen currentReading.timestamp = millis(); currentReading.temperature = dht.readTemperature(); currentReading.humidity = dht.readHumidity(); currentReading.distance = measureDistance(); // Daten protokollieren logData(currentReading); delay(5000); // Alle 5 Sekunden auslesen } int measureDistance() { digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); long duration = pulseIn(ECHO_PIN, HIGH, 30000); int distance = duration * 0.034 / 2; return distance; } void logData(SensorData data) { // Im CSV-Format ausgeben für einfachen Import in eine Tabellenkalkulation Serial.print(data.timestamp); Serial.print(&quot;,&quot;); Serial.print(data.temperature); Serial.print(&quot;,&quot;); Serial.print(data.humidity); Serial.print(&quot;,&quot;); Serial.println(data.distance); }

So verwenden Sie die protokollierten Daten:

  1. Öffnen Sie den Serial Monitor
  2. Kopieren Sie alle Daten
  3. Fügen Sie sie in eine Textdatei ein und speichern Sie sie als .csv
  4. Öffnen Sie die Datei in Excel/Google Sheets zur Analyse

Fehlerbehebung & Tipps

Häufige Probleme und Lösungen

Problem 1: „Unbekannter serieller Anschluss“

  • Problem: Arduino Nano wird vom Computer nicht erkannt
  • Lösungen:
    • CH340-Treiber installieren (Clone-Boards): Suche nach „CH340-Treiber“ + dein Betriebssystem
    • Versuche es mit einem anderen USB-Kabel
    • Versuche es an einem anderen USB-Anschluss
    • Starte den Computer neu
    • Installiere die Arduino IDE neu

Problem 2: „Sketch konnte nicht hochgeladen werden“

  • Problem: Code lässt sich nicht auf das Board hochladen
  • Lösungen:
    • Überprüfen Sie, ob das richtige Board ausgewählt ist (Arduino Nano)
    • Überprüfen Sie, ob der richtige Prozessor ausgewählt ist (ATmega328P)
    • Überprüfen Sie den richtigen COM-Port
    • Versuchen Sie es mit einem älteren Bootloader: Wählen Sie „ATmega328P (Old Bootloader)“
    • Warten Sie zwischen den Uploads 1–2 Sekunden

Problem 3: Sensor reagiert nicht

  • Problem: Sensorwerte sind immer Null oder ungültig
  • Lösungen:
    • Überprüfen Sie die Kabelverbindungen (insbesondere GND)
    • Testen Sie mit einer bekanntermaßen funktionierenden Schaltung
    • Überprüfen Sie die Stromversorgung (5 V über USB)
    • Prüfen, ob die Bibliothek installiert ist (DHT usw.)
    • Überprüfen, ob die Pin-Nummern im Code mit den physischen Anschlüssen übereinstimmen

Problem 4: LED leuchtet nicht

  • Problem: LED bleibt dunkel
  • Lösungen:
    • LED-Polarität prüfen (langes Bein = Plus)
    • Widerstandswert überprüfen (typischerweise 220 Ω)
    • Pin-Spannung mit Multimeter prüfen
    • Andere LED und anderen Widerstand ausprobieren
    • Überprüfen, ob pinMode() auf OUTPUT gesetzt ist

Problem 5: Motor dreht sich nicht

  • Problem: Schrittmotor reagiert nicht
  • Lösungen:
    • Stelle sicher, dass der ULN2003-Treiber verwendet wird (erforderlich!)
    • Überprüfe, ob alle 4 Motorkabel an den Treiber angeschlossen sind
    • Überprüfe, ob die Treiber-Pins mit dem Code übereinstimmen
    • Probiere eine niedrigere Geschwindigkeit aus: stepper.setSpeed(5)
    • Überprüfe die Stromversorgung (500 mA verfügbar)
    • Verwende nach Möglichkeit eine separate Stromversorgung

Profi-Tipps für besseren Code

1. Verwenden Sie Konstanten statt magischer Zahlen

// SCHLECHT pinMode(13, OUTPUT); digitalWrite(13, HIGH); // GUT const int LED_PIN = 13; pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, HIGH);

2. Fügen Sie Kommentare hinzu, um die Logik zu erklären

// Prüfen, ob die Temperatur den Schwellenwert überschreitet if (temperature &gt; MAX_TEMP) { // Lüfter einschalten digitalWrite(FAN_PIN, HIGH); }

3. Verwenden Sie Funktionen für sich wiederholenden Code

// Anstatt dieses Muster mehrfach zu wiederholen: void blinkPattern(int pin, int times) { for (int i = 0; i &lt; times; i++) { digitalWrite(pin, HIGH); delay(200); digitalWrite(pin, LOW); delay(200); } }

4. Verwalten Sie Ihre Pins

// Definieren Sie alle Pins am Anfang const int LED_PIN = 13; const int SENSOR_PIN = 2; const int BUTTON_PIN = 4; const int MOTOR_PIN = 5;

5. Serielle Schnittstelle zum Debuggen verwenden

void loop() { int sensorValue = analogRead(A0); Serial.print(&quot;Rohwert: &quot;); Serial.println(sensorValue);</dht.h> if (sensorValue &gt; 500) { Serial.println(&quot;Schwellenwert überschritten!&quot;); } }

6. Vermeiden Sie lange Verzögerungen in kritischen Schleifen

// SCHLECHT – blockiert alles für 5 Sekunden void loop() { doSomething(); delay(5000); // Nichts anderes läuft! } // BESSER – Verwende millis() für nicht blockierende Zeitmessung unsigned long lastTime = 0; void loop() { unsigned long currentTime = millis(); if (currentTime - lastTime &gt; 5000) { doSomething(); lastTime = currentTime; } }

Leistungsoptimierung

Tipps zum Speicher:

  • Arduino Nano verfügt nur über 2 KB SRAM
  • Verwenden Sie nach Möglichkeit byte statt int
  • Verwenden Sie Konstanten für Zeichenketten, anstatt diese in der Schleife zu erstellen
  • Vermeiden Sie große Arrays

Tipps zur Geschwindigkeit:

  • Verwenden Sie nach Möglichkeit digitale statt analoge Ein-/Ausgänge (schneller)
  • Minimieren Sie Serial.print()-Anweisungen in schnellen Schleifen
  • Verwenden Sie bitweise Operationen für mehr Effizienz
  • Profilieren Sie den Code mit seriellen Zeitstempeln

Sicherheitsvorkehrungen

  1. Schließen Sie niemals an:

    • 5 V direkt an analoge Pins ohne Widerstand
    • Motoren direkt an GPIO-Pins (verwenden Sie einen Treiber)
    • Hochspannung an irgendeinen Pin
  2. Verwenden Sie immer:

    • Widerstände bei LEDs
    • Eine geeignete Stromversorgung für Motoren
    • Treibermodule für Hochstromgeräte
  3. Schützen Sie Ihren USB-Anschluss:

    • Verwenden Sie nach Möglichkeit eine separate Stromversorgung für Motoren/Sensoren
    • Entnehmen Sie nicht mehr als 500 mA über USB
  4. Kurzschlüsse vermeiden:

    • Freiliegende Anschlüsse isolieren
    • Den Arbeitsbereich aufgeräumt halten
    • Verkabelung vor dem Einschalten doppelt überprüfen

Nächste Schritte und Weiterführendes Lernen

Projektideen

  1. Hausautomation: Licht und Temperatur steuern
  2. Robotik: Einen Roboter bauen, der einer Linie folgt oder Hindernissen ausweicht
  3. Wetterstation: Aufzeichnung von Temperatur, Luftfeuchtigkeit und Luftdruck
  4. Smart Garden: Automatisches Bewässerungssystem
  5. Sicherheitssystem: Bewegungserkennung mit Benachrichtigungen
  6. Gamecontroller: Bau eines eigenen Spielgeräts

Nützliche Ressourcen

Fortgeschrittene Themen zum Erkunden

  • Interrupts: Sofort auf Ereignisse reagieren
  • EEPROM: Daten dauerhaft speichern
  • PWM: Komplexere Motor- und LED-Steuerung
  • I2C-Kommunikation: Mehrere Sensoren anschließen
  • SPI-Kommunikation: Schnelle Datenübertragung
  • Benutzerdefinierte Bibliotheken: Schreiben Sie Ihren eigenen wiederverwendbaren Code
  • Drahtlose Kommunikation: Bluetooth, WLAN (mit zusätzlichen Modulen)

Fazit

Sie verfügen nun über ein umfassendes Verständnis des Arduino Nano, von der Grundeinrichtung bis hin zu fortgeschrittenen Projekten. Beginnen Sie mit einfachen LED-Blinkern, gehen Sie dann zur Sensorintegration über und widmen Sie sich nach und nach komplexeren Projekten.

Denken Sie daran:

  • Fangen Sie klein an: Beherrschen Sie eine Komponente, bevor Sie mehrere kombinieren
  • Testen Sie gründlich: Verwenden Sie den Serial Monitor, um Sensordaten zu überprüfen
  • Verwenden Sie Code wieder: Speichern Sie funktionierende Beispiele für zukünftige Projekte
  • Lesen Sie Fehlermeldungen sorgfältig: Arduino-IDE-Meldungen sind in der Regel hilfreich
  • Geben Sie nicht auf: Jeder Fehler ist eine Gelegenheit zum Lernen

Der Arduino Nano eröffnet eine Welt voller kreativer Möglichkeiten. Viel Spaß beim Bauen!


Schnellübersicht

Gängige Arduino-Funktionen

pinMode(pin, OUTPUT/INPUT) // Pin-Modus konfigurieren digitalWrite(pin, HIGH/LOW) // Digitaler Ausgang digitalRead(pin) // Digitaler Eingang analogRead(pin) // Analoger Eingang (0-1023) analogWrite(pin, value) // PWM-Ausgang (0–255) delay(milliseconds) // Ausführung unterbrechen delayMicroseconds(microseconds) // Pause (kurze Verzögerung) millis() // Millisekunden seit Start Serial.begin(9600) // Serielle Kommunikation mit Baudrate starten Serial.println(Wert) // Mit Zeilenumbruch ausgeben Serial.print(Wert) // Ohne Zeilenumbruch ausgeben pulseIn(Pin, HIGH/LOW) // Impulsbreite messen

Pin-Übersicht

Digitale Ein-/Ausgänge:  0–13 (0,1 = seriell, 13 = integrierte LED)
PWM-Pins:     3, 5, 6, 9, 10, 11
Analoge Eingänge: A0–A7
Stromversorgung:        5 V, 3,3 V, GND (×3)
Spezial:      AREF, RST, ICSP

Gängige Sensor-Pins

PIR-Bewegungssensor:           Pin 2 (digital)
Ultraschall-Echo:             Pin 3 (digital)
DHT-Temperatur:             Pin 2 (digital)
Summer/Lautsprecher:              Pin 5 (PWM)
Schrittmotor (4 Pins):      Pins 10–13
LED (PWM für Helligkeit):    Pins 3, 5, 6, 9, 10, 11
Taste:                      Beliebiger digitaler Pin
Analoger Sensor:               A0–A7

Dokumentversion: 1.0
Letzte Aktualisierung: Dezember 2025
Zielgruppe: Absolute Anfänger bis fortgeschrittene Maker
Gesamtumfang: Umfassender Leitfaden mit Code-Beispielen und Links zu Komponenten

Viel Spaß beim Programmieren und beim Bau toller Projekte!

Abhishek Nair - Fractional CTO für Deep Tech & AI
Abhishek Nair - Fractional CTO für Deep Tech & AI
Robotics & AI Engineer
About & contact
Why trust this guide?

Follow Me