Bemerkung

Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie mit anderen Enthusiasten tiefer in Raspberry Pi, Arduino und ESP32 ein.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Probleme nach dem Kauf und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Tutorials aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und Sneak Peeks.

  • Sonderrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Bereit, mit uns zu entdecken und zu gestalten? Klicken Sie auf [here] und treten Sie noch heute bei!

1.1 Blinkende LED

Einführung

Willkommen zu Ihrem ersten Projekt! In diesem Tutorial lernen wir, wie man eine LED mithilfe von Python und den GPIO-Pins zum Blinken bringt. Dieses Projekt ist eine hervorragende Einführung in die Integration von Hardware und Software und zeigt, wie einfacher Code mit realen elektronischen Komponenten interagieren kann.

Bevor wir beginnen, erklären wir kurz einige Grundlagen:

  • Was ist eine LED?

    Eine LED (Light Emitting Diode) ist ein kleines elektronisches Bauteil, das aufleuchtet, wenn elektrischer Strom durch sie fließt. LEDs werden in der Elektronik häufig eingesetzt, da sie energieeffizient und langlebig sind.

  • Was ist ein GPIO-Pin?

    GPIO steht für General Purpose Input/Output. Diese Pins ermöglichen es dem Raspberry Pi, mit externen Geräten wie LEDs, Sensoren oder Tastern zu kommunizieren. Jeder Pin kann so programmiert werden, dass er Signale sendet (Output) oder Signale empfängt (Input).

In diesem Tutorial verbinden wir eine LED mit einem GPIO-Pin und schreiben ein Python-Programm, das die LED blinken lässt. Los geht’s!


Benötigte Komponenten

Hier ist die Liste der Komponenten und ihrer Zwecke:

KOMPONENTE

KAUFLINK

Steckbrett

BUY

Jumper-Kabel

BUY

Widerstand

BUY

LED

BUY

Fusion HAT+

-

Raspberry Pi

-


Schaltplan

Der Widerstand begrenzt den Strom, der durch die LED fließt, und verhindert so, dass sie durchbrennt. Ohne Widerstand könnte die LED zu viel Strom ziehen, was sowohl die LED als auch den Raspberry Pi beschädigen kann.

../_images/1.1.1_sch.png

Verdrahtungsdiagramm

Folgen Sie dem folgenden Verdrahtungsdiagramm, um Ihre Komponenten zu verbinden:

../_images/1.1.1_bb.png

Code ausführen

Nun schreiben wir den Python-Code, um die LED zu steuern. Sie erstellen ein Skript, das die LED in regelmäßigen Abständen ein- und ausschaltet.

  1. Zum Codeverzeichnis wechseln:

    Öffnen Sie das Terminal und geben Sie Folgendes ein:

    cd ~/ai-lab-kit/python
    
  2. Programm ausführen:

    Verwenden Sie den folgenden Befehl, um das Skript auszuführen:

    sudo python3 1.1_LED.py
    

    Sie sollten sehen, wie die LED in regelmäßigen Abständen ein- und ausgeschaltet wird.

  3. Code bearbeiten (optional):

    Um das Programm zu ändern, öffnen Sie die Code-Datei in einem Texteditor:

    nano 1.1_LED.py
    

    Nehmen Sie Ihre Änderungen vor und drücken Sie anschließend Ctrl+X, um den Editor zu verlassen. Speichern Sie Ihre Änderungen, indem Sie bei der entsprechenden Aufforderung Y eingeben. Führen Sie das Skript anschließend erneut aus, um Ihre Änderungen zu sehen.


Code

Hier ist das vollständige Python-Skript für dieses Projekt:

#!/usr/bin/env python3
from fusion_hat.pin import Pin, Mode
from time import sleep

# Initialize an LED connected to GPIO pin 17 as an output pin.
led = Pin(17,mode=Mode.OUT)

try:
   # Start an infinite loop to toggle the LED state.
   while True:
      # Turn on the LED and print a message to the console.
      led.high()
      print('...LED ON')

      # Wait for 0.5 seconds with the LED on.
      sleep(0.5)

      # Turn off the LED and print a message to the console.
      led.low()
      print('LED OFF...')

      # Wait for 0.5 seconds with the LED off.
      sleep(1)

except KeyboardInterrupt:
   # Gracefully handle a keyboard interrupt (Ctrl+C) by breaking the loop.
   pass

Dieses Python-Skript steuert eine LED, die mit GPIO-Pin 17 eines Raspberry Pi verbunden ist. Wenn das Programm ausgeführt wird, schaltet sich die LED abwechselnd im Abstand von einer halben Sekunde ein und aus. Gleichzeitig gibt die Konsole „LED is ON“ und „LED is OFF“ aus, um den aktuellen Zustand der LED anzuzeigen. Das Programm läuft unbegrenzt weiter, bis es vom Benutzer durch Drücken von Ctrl+C unterbrochen wird.


Den Code verstehen

  1. Importe:

    Die Bibliothek fusion_hat vereinfacht die Steuerung von GPIO-Geräten. Die Klasse Pin ermöglicht es, eine LED mit grundlegenden Methoden wie on() und off() zu steuern. Die Funktion sleep erzeugt Verzögerungen zwischen den Befehlen.

    Bemerkung

    Informationen zur Verwendung von fusion-hat finden Sie unter fusion-hat documentation .

  2. Initialisierung:

    Die Zeile led = Pin(17,mode=Mode.OUT) teilt dem Raspberry Pi mit, dass eine LED mit GPIO-Pin 17 verbunden ist.

  3. Hauptschleife:

    Innerhalb der while True-Schleife: Die LED wird eingeschaltet (led.on()) und ausgeschaltet (led.off()), jeweils mit einer Pause von 0,5 Sekunden dazwischen (sleep(0.5)).

  4. Sauberes Beenden:

    Der try...except-Block stellt sicher, dass das Programm sauber beendet wird, wenn es unterbrochen wird (z. B. durch Drücken von Ctrl+C).


Fehlerbehebung

  1. LED leuchtet nicht

    • Ursache: Falscher GPIO-Pin oder fehlerhafte Verdrahtung.

    • Lösung: Überprüfen Sie die Verbindung der LED mit GPIO-Pin 17 und stellen Sie sicher, dass der Widerstand korrekt eingesetzt ist, um Schäden an der LED zu vermeiden.

  2. KeyboardInterrupt funktioniert nicht

    • Ursache: Das Programm wird nicht ordnungsgemäß beendet.

    • Lösung: Stellen Sie sicher, dass das Skript in einem Terminal ausgeführt wird, in dem Ctrl+C erfasst wird, und nicht als Hintergrundprozess.

  3. Falsche GPIO-Einrichtung

  4. LED flackert oder verhält sich unregelmäßig

    • Ursache: Instabile Stromversorgung oder schlechte Verbindungen.

    • Lösung: Verwenden Sie eine stabile Stromquelle und stellen Sie sicher, dass alle Kabel fest verbunden sind.


Erweiterungsideen

  1. Variable Blinkgeschwindigkeit: Fügen Sie eine Benutzereingabe hinzu, um die Blinkgeschwindigkeit der LED dynamisch zu steuern:

    interval = float(input("Blinkintervall in Sekunden eingeben: "))
    
    while True:
        led.on()
        sleep(interval)
        led.off()
        sleep(interval)
    
  2. Mehrere LEDs steuern: Verbinden Sie mehrere LEDs mit unterschiedlichen GPIO-Pins und steuern Sie sie in Mustern (z. B. sequentielles Aufleuchten oder gleichzeitiges Blinken).


Fazit

Herzlichen Glückwunsch! Sie haben Ihr erstes Raspberry-Pi-Projekt abgeschlossen. Durch die Steuerung einer LED haben Sie gelernt, wie man GPIO-Pins verwendet und Python-Skripte schreibt, um mit Hardware zu interagieren. Dieses grundlegende Wissen bildet eine solide Basis für komplexere Projekte. Experimentieren Sie weiter und entdecken Sie neue Möglichkeiten!