Arduino UNO Q - Piezo-Summer

Ein Summer erzeugt Töne – von einfachen Pieptönen bis zu vollständigen Melodien. In diesem Tutorial erfahren Sie, wie Sie einen Piezo-Summer mit Arduino UNO Q verbinden, Töne und Melodien mit der tone()-Funktion abspielen und Töne über Telegram ferngesteuert auslösen.

Arduino UNO Q - Piezo-Summer

Erforderliche Hardware

1×Arduino UNO Q
1×USB-Kabel für Arduino Uno Q
1×3-24V Aktiver Piezo-Summer
1×(Alternativ) Aktives Piezo-Summer-Modul
1×(Alternativ) Passives Piezo-Summer-Modul
1×Steckbrett
1×Jumper-Kabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Sensors/Servo Expansion Shield for Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Piezo-Summer

Aktiver vs. Passiver Summer

  • Aktiver Summer: Erzeugt kontinuierliche Töne bei anliegender Spannung – am einfachsten zu verwenden
  • Passiver Summer: Benötigt ein wechselndes Frequenzsignal (Rechteckwelle) – kann verschiedene Töne und Melodien erzeugen

Pinout

Ein Summer hat zwei Anschlüsse:

  • Positiver (+) Anschluss: Mit dem Ausgangspin des Arduino UNO Q verbunden
  • Negativer (−) Anschluss: Mit GND verbunden
Piezo-Summer-Pinout

Programmierung

Die integrierte tone()-Funktion von Arduino erzeugt eine Rechteckwelle auf jedem digitalen Pin und treibt sowohl aktive als auch passive Summer an:

  • tone(pin, frequency, duration) – spielt einen Ton mit einer bestimmten Frequenz für eine bestimmte Dauer ab
  • noTone(pin) – beendet den Ton

Schaltplan

  • Schaltung mit eigenständigem Piezo-Summer:
Arduino UNO Q Piezo-Summer-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • Schaltung mit Piezo-Summer-Modul:
Arduino UNO Q Piezo-Summer-Modul-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

MCU-Code – Melodie abspielen

Der Arduino UNO Q hat zwei Prozessoren: die STM32 MCU (handhabt Echtzeitsteuerung der Hardware) und die Qualcomm MPU (läuft Debian Linux). In diesem Abschnitt wird nur die STM32 MCU programmiert – die Linux-Seite bleibt untätig. Ein späterer Abschnitt zeigt, wie beide Prozessoren zusammen arbeiten.

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-piezo-buzzer */ #include "pitches.h" #define BUZZER_PIN 6 // pin connected to the buzzer // notes in the melody int melody[] = { NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4 }; // note durations: 4 = quarter note, 8 = eighth note, etc. int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 }; void setup() { int size = sizeof(noteDurations) / sizeof(int); for (int thisNote = 0; thisNote < size; thisNote++) { int noteDuration = 1000 / noteDurations[thisNote]; tone(BUZZER_PIN, melody[thisNote], noteDuration); int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); noTone(BUZZER_PIN); } } void loop() { // melody plays once in setup — nothing needed here }

Schnelle Schritte

  • Zum ersten Mal mit Arduino UNO Q? Folgen Sie dem Erste Schritte mit Arduino UNO Q Tutorial, um Ihre Entwicklungsumgebung vorzubereiten.
  • Verbinden Sie den Summer: Verbinden Sie den positiven Pin mit Pin 6 und den negativen Pin mit GND.
  • Verbinden: Schließen Sie den Arduino UNO Q mit einem USB-C-Kabel an Ihren Computer an.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihren Arduino UNO Q erkennt.
  • Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Create New App (Neue App erstellen).
Neue App in Arduino App Lab auf Arduino UNO Q erstellen
  • Geben Sie der App einen Namen, z. B.: DIYables_Buzzer
  • Klicken Sie auf Create (Erstellen), um zu bestätigen.
  • Es werden mehrere Ordner und Dateien in Ihrer neuen App erstellt.
Arduino App Lab App-Ordner und -Dateien auf Arduino UNO Q
  • Suchen Sie die Datei sketch/sketch.ino – hier fügen Sie die MCU-Skizze ein.
  • Fügen Sie die Skizze ein: Kopieren Sie den MCU-Code oben in die Skizzendatei.
  • Fügen Sie die pitches.h-Datei hinzu: Erstellen Sie einen neuen Tab in der Skizze mit dem Namen pitches.h und fügen Sie den Standardinhalt der Arduino-Pitch-Header-Datei ein.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    Add sketch library in Arduino App Lab on Arduino UNO Q
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • Hochladen: Klicken Sie auf die Schaltfläche Ausführen in Arduino App Lab, um in die STM32 zu kompilieren und hochzuladen.
    Klicken Sie auf die Schaltfläche „Ausführen
    • Hören Sie zu: Der Summer spielt die Melodie einmal ab, wenn das Board hochgefahren wird.

    Ändern der Melodie – Jingle Bells

    Um ein anderes Lied abzuspielen, aktualisieren Sie die Arrays melody[] und noteDurations[]. Hier ist die Jingle-Bells-Version:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-piezo-buzzer */ #include "pitches.h" #define BUZZER_PIN 6 // pin connected to the buzzer // Jingle Bells notes int melody[] = { NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_G5, NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_D5, NOTE_D5, NOTE_E5, NOTE_D5, NOTE_G5 }; int noteDurations[] = { 8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 16, 16, 8, 8, 8, 8, 4, 4 }; void setup() { int size = sizeof(noteDurations) / sizeof(int); for (int thisNote = 0; thisNote < size; thisNote++) { int noteDuration = 1000 / noteDurations[thisNote]; tone(BUZZER_PIN, melody[thisNote], noteDuration); int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); noTone(BUZZER_PIN); } } void loop() { // melody plays once in setup — nothing needed here }

    Schnelle Schritte

    • Ersetzen Sie die Skizze durch die Jingle-Bells-Version und klicken Sie auf Ausführen.
    • Hören Sie, wie der Summer beim Hochfahren Jingle Bells spielt.

    Linux + MCU Bridge-Programmierung

    Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten: die MPU (Qualcomm, läuft Debian Linux) und die MCU (STM32, läuft Zephyr OS mit Ihrem Arduino-Sketch). Sie kommunizieren über RPC über die Arduino_RouterBridge-Bibliothek – niemals über Raw-Serienports.

    • Der Summer ist mit der MCU (STM32) verbunden – verbunden mit einem digitalen Ausgangspin. Die MCU treibt den Summer mit tone() und noTone() an.
    • Die MPU kann den Summer nicht direkt steuern – sie muss einen Ton auslösen, indem sie eine Funktion auf der MCU über Bridge.call() aufruft.
    • Die MPU hat Wi-Fi – da die MPU vollständiges Debian Linux mit Wi-Fi läuft, kann sie Summer-Töne bei Bedarf über Telegram auslösen.
    • Kommunikation: Bridge.call() auf der Linux-Seite ruft Bridge.provide_safe()-Funktionen auf der MCU-Seite auf (da tone()/noTone() Hardware-APIs sind)
    • ⚠️ Reserviert: /dev/ttyHS1 (Linux) und Serial1 (MCU) werden vom Arduino Router verwendet – öffnen Sie sie niemals direkt

    Kurz gesagt: MPU fordert Pieptöne oder Melodie an → MCU treibt Summer über tone() an → MCU bestätigt Aktion → MPU protokolliert oder leitet weiter.

    MCU-Skizze – Summer mit Bridge und Monitor-Ausgabe:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-piezo-buzzer */ #include "Arduino_RouterBridge.h" #include "pitches.h" #define BUZZER_PIN 6 void beep() { tone(BUZZER_PIN, NOTE_C5, 200); delay(250); noTone(BUZZER_PIN); Monitor.println("Beep played"); } void play_melody() { int melody[] = { NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4 }; int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 }; int size = sizeof(noteDurations) / sizeof(int); for (int i = 0; i < size; i++) { int noteDuration = 1000 / noteDurations[i]; tone(BUZZER_PIN, melody[i], noteDuration); delay((int)(noteDuration * 1.30)); noTone(BUZZER_PIN); } Monitor.println("Melody played"); } void setup() { Bridge.begin(); Monitor.begin(); Bridge.provide_safe("beep", beep); Bridge.provide_safe("play_melody", play_melody); Monitor.println("Piezo Buzzer Bridge ready"); } void loop() {}

    Python-Skript (Arduino App Lab) – Summer von Linux auslösen:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-piezo-buzzer */ from arduino.app_utils import * import time def loop(): print("Playing beep...") Bridge.call("beep") time.sleep(3) print("Playing melody...") Bridge.call("play_melody") time.sleep(5) App.run(user_loop=loop)
    • Hinweis: Stellen Sie sicher, dass Bridge.begin() in der MCU-Skizze aufgerufen wird und die Skizze hochgeladen ist, bevor Sie das Python-Skript auf der Linux-Seite ausführen.
    • ⚠️ Warnung: Öffnen Sie niemals direkt /dev/ttyHS1 (auf Linux) oder verwenden Sie Serial1 (auf MCU) in Ihrem Code – diese sind vom Arduino Router reserviert und der Zugriff darauf wird die Bridge unterbrechen.

    Schnelle Schritte

    • MCU-Skizze hochladen: Öffnen Sie Arduino App Lab, erstellen Sie eine neue App, fügen Sie die Bridge-MCU-Skizze in sketch/sketch.ino ein, fügen Sie pitches.h als neuen Tab hinzu, installieren Sie die Arduino_RouterBridge-Bibliothek und klicken Sie auf Ausführen.
    • Fügen Sie das Python-Skript hinzu: Fügen Sie den obigen Python-Code in den Python-Tab der gleichen App ein.
    • Führen Sie die App aus: Klicken Sie auf Ausführen – die Python-Seite wechselt automatisch zwischen Pieptönen und Melodien.
    • Überprüfen Sie die Konsole: Öffnen Sie die Registerkarte Konsole → MCU-Monitor-Untertab, um die Meldungen „Pieptöne gespielt" und „Melodie gespielt" zu sehen.

    App Lab-Konsolenausgabe

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    Piezo Buzzer Bridge ready Beep played Melody played Beep played

    Telegram-Integration

    Steuern Sie Summer-Töne von überall über Telegram ferngesteuert aus.

    Wenn Sie noch keinen Telegram-Bot haben, siehe Wie man einen Telegram-Bot erstellt, um Ihr Bot-Token vor dem Fortfahren zu erhalten.

    MCU-Skizze: Behalten Sie die gleiche MCU-Skizze aus dem vorherigen Bridge-Abschnitt – keine Änderungen erforderlich. Stellen Sie sicher, dass sie bereits hochgeladen ist und auf der STM32 ausgeführt wird, bevor Sie fortfahren.

    Python-Skript (Arduino App Lab) – Telegram-Bot zur Summer-Steuerung:

    /* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-piezo-buzzer */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/beep": Bridge.call("beep") send_message(chat_id, "Beep played on the buzzer.") elif text == "/melody": Bridge.call("play_melody") send_message(chat_id, "Melody is playing on the buzzer.") else: send_message(chat_id, "Commands:\n/beep — play a short beep\n/melody — play a melody") time.sleep(1) App.run(user_loop=loop)
    • Hinweis: Ersetzen Sie YOUR_BOT_TOKEN durch das Token, das Sie von @BotFather auf Telegram erhalten haben.
    • Senden Sie /beep, um einen kurzen Pieptöne auszulösen.
    • Senden Sie /melody, um die Melodie abzuspielen.

    Schnelle Schritte

    • MCU-Skizze hochladen: Verwenden Sie die Bridge-MCU-Skizze aus dem vorherigen Abschnitt (laden Sie sie zuerst hoch, falls noch nicht geschehen).
    • Fügen Sie das Telegram-Skript ein: Kopieren Sie den obigen Python-Code in den Python-Tab Ihrer App in Arduino App Lab.
    • Legen Sie Ihr Token fest: Ersetzen Sie YOUR_BOT_TOKEN im Skript durch Ihr tatsächliches Bot-Token.
    • Führen Sie die App aus: Klicken Sie auf Ausführen – der Bot beginnt, auf Telegram-Nachrichten zu hören.
    • Testen Sie es: Senden Sie /beep – hören Sie einen kurzen Ton vom Summer. Senden Sie /melody – hören Sie, wie die vollständige Melodie abgespielt wird.

    App Lab-Python-Konsolenausgabe

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /beep [2026-04-29 12:00:01] Beep played on the buzzer. [2026-04-29 12:03:20] Telegram: /melody [2026-04-29 12:03:20] Melody is playing on the buzzer.
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /beep
    10:15 AM ✓✓
    Beep played on the buzzer.
    10:16 AM
    /melody
    10:17 AM ✓✓
    Melody is playing on the buzzer.
    10:18 AM

    OpenClaw-Integration

    Sie können die OpenClaw für dieses Tutorial anpassen, indem Sie die Anleitung im Arduino Uno Q - OpenClaw Tutorial befolgen

    Anwendungs-/Projektideen

    • Ferngesteuerter Alarm: Steuern Sie einen Summer-Alarm ferngesteuert über Telegram aus, wenn ein Ereignis eintritt
    • Benachrichtigungspieper: Pieptöne, wenn ein Sensorschwellenwert überschritten wird – ausgelöst von der MPU-Linux-Logik
    • Türklingel: Verwenden Sie einen Knopf, um eine Türklingelmelodie zu piepen; benachrichtigen Sie über Telegram, dass jemand geklingelt hat
    • Melodie-Jukebox: Erstellen Sie einen Telegram-Bot, mit dem Sie verschiedene Melodien ferngesteuert abspielen können
    • Timer-Alarm: Verwenden Sie die Uhr der Linux-MPU, um zu einer geplanten Zeit einen Summer-Alarm abzuspielen

    Herauszuerung für dich selbst

    • Einfach: Fügen Sie eine zweite Melodie hinzu (z. B. Happy Birthday) und stellen Sie sie als /birthday in Telegram bereit
    • Mittel: Fügen Sie einen play_n_beeps(n) Bridge-Callback hinzu und stellen Sie ihn in Telegram als /beep <count> bereit
    • Fortgeschritten: Erstellen Sie einen Telegram-Bot, der eine Countdown-Melodie abspielt, bevor eine Aktion ausgelöst wird – verwenden Sie zeitbasierte Planung auf der Linux-MPU-Seite

    Funktionsreferenzen

    Verwandte Tutorials

    ※ UNSERE NACHRICHTEN

    • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!