.. note:: 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 [|link_sf_facebook|] und treten Sie heute bei! .. _1.2.1_py_pi5: 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. .. image:: ../python_pi5/img/1.2.1_active_buzzer_list.png Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Name - IN DIESEM KIT ENTHALTENE TEILE - LINK * - Raphael Kit - 337 - |link_Raphael_kit| Sie können sie auch separat über die unten stehenden Links kaufen. .. list-table:: :widths: 30 20 :header-rows: 1 * - KOMPONENTENVORSTELLUNG - KAUF-LINK * - :ref:`cpn_gpio_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_resistor` - |link_resistor_buy| * - :ref:`cpn_buzzer` - \- * - :ref:`cpn_transistor` - |link_transistor_buy| 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 ============ ======== ======== === .. image:: ../python_pi5/img/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.) .. image:: ../python_pi5/img/1.2.1_ActiveBuzzer_circuit.png **Schritt 2**: Öffnen Sie die Code-Datei. .. raw:: html .. code-block:: cd ~/raphael-kit/python-pi5 **Schritt 3**: Ausführen. .. raw:: html .. code-block:: sudo python3 1.2.1_ActiveBuzzer_zero.py Der Code wird ausgeführt, der Summer piept. .. warning:: Wenn die Fehlermeldung ``RuntimeError: Cannot determine SOC peripheral base address`` angezeigt wird, lesen Sie bitte :ref:`faq_soc` **Code** .. note:: 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. .. raw:: html .. code-block:: python #!/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** #. Diese Anweisungen importieren die Klasse ``Buzzer`` aus der Bibliothek ``gpiozero`` und die Funktion ``sleep`` aus dem Modul ``time``. .. code-block:: python #!/usr/bin/env python3 from gpiozero import Buzzer from time import sleep #. Diese Zeile erstellt ein ``Buzzer``-Objekt, das mit dem GPIO-Pin 17 am Raspberry Pi verbunden ist. .. code-block:: python # Initialize a Buzzer object on GPIO pin 17 buzzer = Buzzer(17) #. In einer Endlosschleife (``while True``) wird der Summer alle 0,1 Sekunden ein- und ausgeschaltet. ``print``-Anweisungen liefern eine Konsolenausgabe für jede Aktion. .. code-block:: python 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 #. Dieser Abschnitt stellt sicher, dass das Programm sicher mit einer Tastaturunterbrechung (Strg+C) beendet werden kann, ohne einen Fehler auszulösen. .. code-block:: python except KeyboardInterrupt: # Handle KeyboardInterrupt (Ctrl+C) for clean script termination pass