Nota
Ciao, benvenuto nella Community SunFounder dedicata agli appassionati di Raspberry Pi, Arduino ed ESP32 su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 insieme ad altri entusiasti.
Perché unirsi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche grazie all’aiuto della community e del nostro team.
Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato alle novità sui prodotti e alle anteprime esclusive.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a promozioni festive e giveaway.
👉 Pronto a esplorare e creare con noi? Clicca su [qui] e unisciti oggi stesso!
Lezione 32: Modulo Buzzer Passivo
In questa lezione imparerai a riprodurre una melodia utilizzando un modulo buzzer passivo con Arduino. Vedremo come programmare Arduino per controllare il buzzer e generare note di diversa durata. Questo progetto è perfetto per i principianti perché offre un’esperienza pratica nella produzione di suoni e nella comprensione delle note musicali applicate all’elettronica. Inoltre, acquisirai familiarità con l’uso della scheda Arduino Uno e del modulo buzzer passivo.
Componenti Necessari
Per questo progetto sono necessari i seguenti componenti.
È sicuramente comodo acquistare un kit completo. Ecco il link:
Nome |
COMPONENTI INCLUSI |
LINK |
---|---|---|
Universal Maker Sensor Kit |
94 |
In alternativa, puoi acquistare i componenti singolarmente dai seguenti link:
Descrizione del Componente |
Link per l’acquisto |
---|---|
Arduino UNO R3 o R4 |
|
Collegamenti

Codice
Analisi del Codice
Inclusione della libreria pitches: Questa libreria fornisce i valori di frequenza delle note musicali, permettendo di usare la notazione musicale nel codice.
#include "pitches.h"
Definizione di costanti e array:
buzzerPin
è il pin digitale dell’Arduino a cui è collegato il buzzer.melody[]
è un array che contiene la sequenza delle note da riprodurre.noteDurations[]
contiene la durata di ciascuna nota.
const int buzzerPin = 8; 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 };
Riproduzione della melodia:
Il ciclo
for
scorre tutte le note dell’array melody.La funzione
tone()
riproduce ciascuna nota sul buzzer per la durata specificata.Un ritardo tra una nota e l’altra consente di distinguerle.
La funzione
noTone()
interrompe il suono.
void setup() { for (int thisNote = 0; thisNote < 8; thisNote++) { int noteDuration = 1000 / noteDurations[thisNote]; tone(buzzerPin, melody[thisNote], noteDuration); int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); noTone(buzzerPin); } }
Funzione loop vuota: Poiché la melodia viene eseguita una sola volta all’interno della funzione setup, la funzione loop rimane vuota.