Bemerkung

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

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

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

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

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

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

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

1.2.1 Aktiver Summer

Einleitung

In diesem Projekt lernen wir, wie man einen aktiven Summer mit einem NPN-Transistor zum Piepen bringt.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

../_images/1.2.1_active_buzzer_list.png

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

IN DIESEM KIT ENTHALTENE TEILE

LINK

Raphael Kit

337

Raphael Kit

Sie können sie auch separat über die unten stehenden Links kaufen.

KOMPONENTENVORSTELLUNG

KAUF-LINK

GPIO Extension Board

KAUFEN

Steckbrett

KAUFEN

Jumper-Kabel

KAUFEN

Widerstand

KAUFEN

Summer

-

Transistor

KAUFEN

Schaltplan

In diesem Experiment werden ein aktiver Summer, ein NPN-Transistor und ein 1-kΩ-Widerstand verwendet. Der Widerstand befindet sich zwischen dem GPIO-Pin und der Basis des Transistors, um diesen zu schützen. Wenn GPIO17 des Raspberry Pi auf ein niedriges Niveau (0 V) gesetzt wird, geht der Transistor in Sättigung und leitet, wodurch der Summer ertönt. Wird GPIO17 auf ein hohes Niveau gesetzt, sperrt der Transistor und der Summer bleibt stumm.

T-Board Name

physical

wiringPi

BCM

GPIO17

Pin 11

0

17

../_images/1.2.1_active_buzzer_schematic.png

Experimentelle Verfahren

Schritt 1: Bauen Sie den Schaltkreis auf. (Der aktive Summer hat einen weißen Tischaufkleber auf der Oberfläche und eine schwarze Rückseite.)

../_images/1.2.1_ActiveBuzzer_circuit.png

Schritt 2: Öffnen Sie die Code-Datei.

cd ~/raphael-kit/python-pi5

Schritt 3: Ausführen.

sudo python3 1.2.1_ActiveBuzzer_zero.py

Der Code wird ausgeführt, der Summer piept.

Warnung

Wenn die Fehlermeldung RuntimeError: Cannot determine SOC peripheral base address angezeigt wird, lesen Sie bitte If gpiozero doesn’t work.

Code

Bemerkung

Sie können den unten stehenden Code modifizieren/zurücksetzen/kopieren/ausführen/stoppen. Aber zuvor müssen Sie zum Quellcodepfad wie raphael-kit/python-pi5 gehen. Nachdem Sie den Code modifiziert haben, können Sie ihn direkt ausführen, um den Effekt zu sehen.

#!/usr/bin/env python3
from gpiozero import Buzzer
from time import sleep

# Initialize a Buzzer object on GPIO pin 17
buzzer = Buzzer(17)

try:
    while True:
        # Turn on the buzzer
        print('Buzzer On')
        buzzer.on()
        sleep(0.1)  # Keep the buzzer on for 0.1 seconds

        # Turn off the buzzer
        print('Buzzer Off')
        buzzer.off()
        sleep(0.1)  # Keep the buzzer off for 0.1 seconds

except KeyboardInterrupt:
    # Handle KeyboardInterrupt (Ctrl+C) for clean script termination
    pass

Code-Erklärung

  1. Diese Anweisungen importieren die Klasse Buzzer aus der Bibliothek gpiozero und die Funktion sleep aus dem Modul time.

    #!/usr/bin/env python3
    from gpiozero import Buzzer
    from time import sleep
    
  2. Diese Zeile erstellt ein Buzzer-Objekt, das mit dem GPIO-Pin 17 am Raspberry Pi verbunden ist.

    # Initialize a Buzzer object on GPIO pin 17
    buzzer = Buzzer(17)
    
  3. In einer Endlosschleife (while True) wird der Summer alle 0,1 Sekunden ein- und ausgeschaltet. print-Anweisungen liefern eine Konsolenausgabe für jede Aktion.

    try:
        while True:
            # Turn on the buzzer
            print('Buzzer On')
            buzzer.on()
            sleep(0.1)  # Keep the buzzer on for 0.1 seconds
    
            # Turn off the buzzer
            print('Buzzer Off')
            buzzer.off()
            sleep(0.1)  # Keep the buzzer off for 0.1 seconds
    
  4. Dieser Abschnitt stellt sicher, dass das Programm sicher mit einer Tastaturunterbrechung (Strg+C) beendet werden kann, ohne einen Fehler auszulösen.

    except KeyboardInterrupt:
    # Handle KeyboardInterrupt (Ctrl+C) for clean script termination
    pass