Arduino UNO Q - Buzzer Piézoélectrique

Un buzzer produit des sons — des simples bips aux mélodies complètes. Dans ce tutoriel, vous apprendrez à connecter un buzzer piézoélectrique à Arduino UNO Q, à jouer des tonalités et des mélodies avec la fonction tone(), et à déclencher des sons à distance via Telegram.

Arduino UNO Q - Buzzer Piézoélectrique

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Buzzer piézo actif 3-24V
1×Alternativement: Active Piezo Buzzer Module
1×Alternativement: Passive Piezo Buzzer Module
1×Plaque d'essai
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À Propos du Buzzer Piézoélectrique

Buzzer Actif vs Buzzer Passif

  • Buzzer Actif : Émet un son continu lorsqu'une tension est appliquée — le plus simple à utiliser
  • Buzzer Passif : Nécessite un signal de fréquence variable (onde carrée) — peut produire différentes tonalités et mélodies

Brochage

Un buzzer a deux broches :

  • Broche positive (+) : Connectez à la broche de sortie de l'Arduino UNO Q
  • Broche négative (−) : Connectez à GND
Brochage du Buzzer Piézoélectrique

Comment Programmer

La fonction intégrée tone() d'Arduino génère une onde carrée sur n'importe quelle broche numérique, pilotant à la fois les buzzers actifs et passifs :

  • tone(pin, frequency, duration) — joue une note à une fréquence donnée pendant une durée donnée
  • noTone(pin) — arrête la tonalité

Schéma de Câblage

  • Câblage avec un buzzer piézoélectrique autonome :
Schéma de Câblage du Buzzer Piézoélectrique Arduino UNO Q

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

  • Câblage avec un module de buzzer piézoélectrique :
Schéma de Câblage du Module Buzzer Piézoélectrique Arduino UNO Q

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Code MCU — Jouer une Mélodie

L'Arduino UNO Q possède deux processeurs : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Debian Linux). Dans cette section, seul le MCU STM32 est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 }

Étapes Rapides

  • Première fois avec Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
  • Câbler le buzzer : Connectez la broche positive à la broche 6 et la broche négative à GND.
  • Connecter : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créer une nouvelle application : Cliquez sur le bouton Create New App.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : DIYables_Buzzer
  • Cliquez sur Create pour confirmer.
  • Vous verrez un ensemble de dossiers et de fichiers générés dans votre nouvelle application.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le sketch MCU.
  • Coller le sketch : Copiez le code MCU ci-dessus dans le fichier sketch.
  • Ajouter le fichier pitches.h : Créez un nouvel onglet dans le sketch nommé pitches.h et collez-y le contenu standard de l'en-tête des notes Arduino.
    • 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
    • Téléverser : Cliquez sur le bouton Run dans Arduino App Lab pour compiler et téléverser vers le STM32.
    Cliquer sur Run dans Arduino App Lab sur Arduino UNO Q
    • Écouter : Le buzzer joue la mélodie une fois au démarrage de la carte.

    Modifier la Mélodie — Jingle Bells

    Pour jouer une chanson différente, mettez à jour les tableaux melody[] et noteDurations[]. Voici la version Jingle Bells :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 }

    Étapes Rapides

    • Remplacez le sketch par la version Jingle Bells et cliquez sur Run.
    • Écoutez le buzzer jouer Jingle Bells au démarrage.

    Programmation Bridge Linux + MCU

    L'Arduino UNO Q possède deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent en utilisant RPC via la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.

    • Le buzzer est connecté au MCU (STM32) — câblé à une broche de sortie numérique. Le MCU pilote le buzzer en utilisant tone() et noTone().
    • Le MPU ne peut pas contrôler le buzzer directement — il doit déclencher un son en appelant une fonction sur le MCU via Bridge.call().
    • Le MPU dispose du Wi-Fi — parce que le MPU exécute Debian Linux complet avec Wi-Fi, il peut déclencher des sons de buzzer via Telegram à la demande.
    • Communication : Bridge.call() côté Linux invoque les fonctions Bridge.provide_safe() côté MCU (car tone()/noTone() sont des API matérielles)
    • ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par l'Arduino Router — ne les ouvrez jamais directement

    En résumé : Le MPU demande un bip ou une mélodie → le MCU pilote le buzzer via tone() → le MCU confirme l'action → le MPU enregistre ou transmet.

    Sketch MCU — buzzer avec Bridge et sortie Monitor :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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() {}

    Script Python (Arduino App Lab) — déclencher le buzzer depuis Linux :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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)
    • Remarque : Assurez-vous que Bridge.begin() est appelé dans le sketch MCU et que le sketch est téléversé avant d'exécuter le script Python côté Linux.
    • ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sur Linux) ou n'utilisez pas Serial1 (sur MCU) dans votre code — ils sont réservés par l'Arduino Router et y accéder cassera le Bridge.

    Étapes Rapides

    • Téléverser le sketch MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le sketch MCU Bridge dans sketch/sketch.ino, ajoutez pitches.h comme nouvel onglet, installez la bibliothèque Arduino_RouterBridge, et cliquez sur Run.
    • Ajouter le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
    • Exécuter l'application : Cliquez sur Run — le côté Python alterne automatiquement entre bip et mélodie.
    • Vérifier la console : Ouvrez l'onglet Console → le sous-onglet MCU Monitor pour voir les messages "Beep played" et "Melody played".

    Sortie Console d'App Lab

    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

    Intégration Telegram

    Déclenchez des sons de buzzer à distance depuis n'importe où via Telegram.

    Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.

    Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente — aucune modification n'est nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.

    Script Python (Arduino App Lab) — bot Telegram pour contrôler le buzzer :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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)
    • Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
    • Envoyez /beep pour déclencher un court bip.
    • Envoyez /melody pour jouer la mélodie.

    Étapes Rapides

    • Téléverser le sketch MCU : Utilisez le sketch MCU Bridge de la section précédente (téléversez-le d'abord s'il ne l'est pas déjà).
    • Coller le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
    • Définir votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
    • Exécuter l'application : Cliquez sur Run — le bot commence à écouter les messages Telegram.
    • Tester : Envoyez /beep — entendez un court son du buzzer. Envoyez /melody — entendez la mélodie complète jouer.

    Sortie Console d'App Lab

    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

    Intégration d'OpenClaw

    Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

    Idées d'Applications/Projets

    • Alarme à distance : Déclenchez une alarme buzzer à distance via Telegram lorsqu'un événement se produit
    • Avertisseur de notification : Bip lorsqu'un seuil de capteur est dépassé — déclenché par la logique Linux du MPU
    • Sonnette : Utilisez un bouton pour émettre un son de sonnette ; notifiez via Telegram que quelqu'un a sonné
    • Jukebox de mélodies : Créez un bot Telegram qui vous permet de choisir différentes mélodies à jouer à distance
    • Alerte minuterie : Utilisez l'horloge du MPU Linux pour jouer une alarme buzzer à une heure programmée

    Défiez-Vous

    • Facile : Ajoutez une deuxième mélodie (par exemple, Joyeux Anniversaire) et exposez-la comme /birthday dans Telegram
    • Moyen : Ajoutez un callback Bridge play_n_beeps(n) et exposez-le dans Telegram comme /beep <count>
    • Avancé : Créez un bot Telegram qui joue une mélodie de compte à rebours avant de déclencher une action — utilisez la planification temporelle côté Linux MPU

    Références de Fonctions

    ※ NOS MESSAGES

    • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !