Nota

¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.

¿Por qué unirse?

  • Soporte Experto: Resuelve problemas posventa y desafíos técnicos con ayuda de nuestra comunidad y equipo.

  • Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Previsualizaciones Exclusivas: Obtén acceso anticipado a anuncios de nuevos productos y adelantos.

  • Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.

  • Promociones Festivas y Sorteos: Participa en sorteos y promociones durante festividades.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy.

3.2 Tono Personalizado

En el proyecto anterior usamos un zumbador activo; esta vez utilizaremos un zumbador pasivo.

Al igual que el zumbador activo, el zumbador pasivo también funciona por inducción electromagnética. La diferencia es que el zumbador pasivo no tiene una fuente de oscilación interna, por lo que no emitirá sonidos si se usan señales de corriente continua. Sin embargo, esta característica permite que el zumbador pasivo ajuste su propia frecuencia de oscilación y pueda emitir diferentes notas como «do, re, mi, fa, sol, la, si».

¡Vamos a hacer que el zumbador pasivo emita una melodía!

Componentes Necesarios

Para este proyecto, necesitamos los siguientes componentes.

Es muy conveniente adquirir un kit completo; aquí tienes el enlace:

Nombre

ELEMENTOS EN ESTE KIT

ENLACE

Kit Kepler

450+

Kepler Ultimate Kit

También puedes comprarlos por separado en los enlaces a continuación.

SN

COMPONENTE

CANTIDAD

ENLACE

1

Conociendo el Pico W

1

COMPRAR

2

Cable Micro USB

1

3

Protoboard

1

COMPRAR

4

Cables de Puente (Jumpers)

Varios

COMPRAR

5

Transistor

1(S8050)

COMPRAR

6

Resistor

1(1KΩ)

COMPRAR

7

Zumbador Pasivo Buzzer

1

COMPRAR

Esquema

sch_buzzer

Cuando el pin GP15 emite un nivel alto, la corriente pasa a través de la resistencia limitadora de 1K (para proteger el transistor), el transistor S8050 (NPN) conduce, y el zumbador emite sonido.

El rol del transistor S8050 (NPN) es amplificar la corriente y hacer que el zumbador suene más fuerte. De hecho, también se podría conectar el zumbador directamente a GP15, pero notarás que el sonido es más bajo.

Conexiones

img_buzzer

En el kit se incluyen dos zumbadores; aquí usaremos el zumbador pasivo (el que tiene una PCB expuesta en la parte posterior).

El zumbador necesita un transistor para funcionar; aquí usamos el S8050.

wiring_buzzer

Código

Nota

  • Abre el archivo 3.2_custom_tone.py en la ruta de kepler-kit-main/micropython o copia este código en Thonny, luego haz clic en «Run Current Script» o simplemente presiona F5 para ejecutarlo.

  • No olvides seleccionar el intérprete «MicroPython (Raspberry Pi Pico)» en la esquina inferior derecha.

  • Para tutoriales detallados, consulta Abrir y ejecutar código directamente.

import machine
import utime

buzzer = machine.PWM(machine.Pin(15))

def tone(pin,frequency,duration):
    pin.freq(frequency)
    pin.duty_u16(30000)
    utime.sleep_ms(duration)
    pin.duty_u16(0)

tone(buzzer,440,250)
utime.sleep_ms(500)
tone(buzzer,494,250)
utime.sleep_ms(500)
tone(buzzer,523,250)

¿Cómo funciona?

Si el zumbador pasivo recibe una señal digital, solo moverá el diafragma sin producir sonido.

Por lo tanto, usamos la función tone() para generar la señal PWM y hacer que el zumbador pasivo suene.

Esta función tiene tres parámetros:

  • pin, el pin GPIO que controla el zumbador.

  • frequency, la frecuencia que determina el tono del zumbador; cuanto mayor es la frecuencia, más alto es el tono.

  • duration, la duración de la nota.

Usamos la función duty_u16() para establecer el ciclo de trabajo en 30000 (aproximadamente 50%). Este valor puede ser diferente; solo necesita generar una señal eléctrica discontinua para provocar la oscilación.

Aprende Más

Podemos simular tonos específicos según la frecuencia fundamental del piano, para así reproducir una melodía completa.

Nota

  • Abre el archivo 3.2_custom_tone_2.py en la ruta de kepler-kit-main/micropython o copia este código en Thonny, luego haz clic en «Run Current Script» o simplemente presiona F5 para ejecutarlo.

  • No olvides seleccionar el intérprete «MicroPython (Raspberry Pi Pico)» en la esquina inferior derecha.

  • Para tutoriales detallados, consulta Abrir y ejecutar código directamente.

import machine
import utime

NOTE_C4 = 262
NOTE_G3 = 196
NOTE_A3 = 220
NOTE_B3 = 247

melody =[NOTE_C4,NOTE_G3,NOTE_G3,NOTE_A3,NOTE_G3,NOTE_B3,NOTE_C4]

buzzer = machine.PWM(machine.Pin(15))

def tone(pin,frequency,duration):
    pin.freq(frequency)
    pin.duty_u16(30000)
    utime.sleep_ms(duration)
    pin.duty_u16(0)

for note in melody:
    tone(buzzer,note,250)
    utime.sleep_ms(150)