Capacitación Arduino · Buzzer
El buzzer convierte pulsos eléctricos en sonido. Un potenciómetro hace de sensor: silencio, pitido intermitente o alarma continua. Simulado en Tinkercad y en OpenCircuits.
El componente
| Pasivo (recomendado) | Activo | |
|---|---|---|
| Cómo suena | Necesita una onda: tone(8, 1000) | Suena solo con digitalWrite(8, HIGH) |
| Notas | Cualquier frecuencia: melodías | Un solo tono fijo |
| Simuladores | Igual al Piezo de Tinkercad y OpenCircuits | No está en Tinkercad |
| Cómo reconocerlo | Por debajo se ve la placa verde | Tapado con resina negra; suele traer pegatina |
tone() también lo hace sonar, aunque con su tono propio.Cómo funciona
tone(pin, frecuencia) enciende y apaga el pin muy rápido: el disco vibra y suena.noTone(pin) lo deja en silencio.Para simular
Buzzer pasivo de 2 patas. La larga (o la marcada con +) va al pin.
| Qué revisar | Tinkercad trae | Pon esto |
|---|---|---|
| Patas | + (roja) y − (negra) | + → D8, − → GND |
| Bloque «reproducir altavoz» · pin | 0 | 8 |
| · tono (nota musical) | 60 | 71 = 988 Hz ≈ 1000 Hz |
| · durante | 1 s | 0,5 s (alarma) · 0,25 s (pitido) |
| Bloque «desactivar el altavoz» | pin 0 | 8 |
El «tono» de Tinkercad es una nota (60 = do central, 69 = la 440 Hz). En C++ se escribe directo en Hz.
Paso 1 · Componentes
Buscar: Arduino
Buscar: Placa de pruebas
Buscar: piezo. Es el buzzer pasivo.
Hace de sensor: nivel de 0 a 100 %.
Paso 2 · Circuito
Paso 2 · Conexiones
| Alimentación | ||
| Arduino 5V | Riel + inferior | |
| Arduino GND | Riel − inferior | |
| Potenciómetro (nivel) | ||
| — | Potenciómetro (fila e) | Columnas 14, 15, 16 |
| Columna 14 | Riel − | |
| Columna 16 | Riel + | |
| Columna 15 (cursor) | Arduino A0 | |
| Buzzer (fuera de la protoboard) | ||
| Pata + | Arduino D8 | |
| Pata − | Riel − | |
Paso 3 · Código en bloques
Variables → Crear variable: nivel.
Paso 3 · Código C++
// C++ code // int nivel = 0; void setup() { pinMode(A0, INPUT); pinMode(8, OUTPUT); }
tone(8, 988, 500): pin 8, 988 Hz, durante 500 ms. El programa sigue mientras suena.void loop() { nivel = map(analogRead(A0), 0, 1023, 0, 100); if (nivel > 66) { tone(8, 988, 500); // play tone 71 (B5 = 988 Hz) } else { if (nivel > 33) { tone(8, 988, 250); // play tone 71 (B5 = 988 Hz) delay(500); // Wait for 500 millisecond(s) } else { noTone(8); } } }
Paso 4 · Simular
| No suena nada | Revisa que el bloque diga pin 8 y que la pata + vaya a D8. |
| Suena siempre igual | El cursor del potenciómetro (columna 15) no llega a A0. |
| Un clic en vez de tono | Se usó «definir pin en ALTA»: un buzzer pasivo necesita tone. |
| Nunca se calla | Falta «desactivar el altavoz» en el último «si no». |
Paso 5 · Kit real
| Buzzer | Arduino |
|---|---|
| Pata + (la larga) | D8 |
| Pata − | GND |
Si tu buzzer es un módulo de 3 pines (S, +, −): S → D8, + → 5V, − → GND. No hace falta ninguna biblioteca.
Mientras suena, tone() no deja usar PWM en los pines 3 y 11.
Alternativa · OpenCircuits
La categoría Buzzer trae los tres sonidos listos (a 1000 Hz) y la categoría Potenciómetro lee A0 ya convertido a 0 – 100. No hacen falta variables ni esperas.
El pitido intermitente usa el reloj del Arduino (millis()), así que no detiene el programa.
// C++ code // void setup() { pinMode(8, OUTPUT); }
void loop() { if (map(analogRead(A0), 0, 1023, 0, 100) > 66) { tone(8, 1000); } else { if (map(analogRead(A0), 0, 1023, 0, 100) > 33) { if ((millis() / 250) % 2) { tone(8, 1000); } else { noTone(8); } } else { noTone(8); } } delay(10); // Delay a little bit to improve simulation performance }
Para seguir
Que la perilla cambie la nota: asigna A0 al rango 48 a 84 y úsalo como tono.
Toca «Cumpleaños feliz» con varios bloques «reproducir altavoz» seguidos.
Cambia el potenciómetro por el MQ2 o el HC-SR04: alarma de humo o de estacionamiento.
Agrega un pulsador que calle la alarma durante 10 segundos.