#14Intermedio

Ajuste de frecuencia con zumbador

4.6(67)
109 completado
Ajuste de frecuencia con zumbador
Proyecto interactivo con 4 botones que pueden aumentar y disminuir la frecuencia del zumbador, encenderlo y apagarlo. Enseña la lectura de varios botones y el control variable.

Video

Diagrama del circuito

Ajuste de frecuencia con zumbador - Circuit

Código fuente

Arduino (C++)
1int buzzerPin = 8;
2int btnOn = 7;
3int btnOff = 6;
4int btnIncrease = 5;
5int btnDecrease = 4;
6int frequency = 300;
7int state = 0;
8
9void setup() {
10  pinMode(btnOn, INPUT);
11  pinMode(btnOff, INPUT);
12  pinMode(btnIncrease, INPUT);
13  pinMode(btnDecrease, INPUT);
14}
15
16void loop() {  
17  if (digitalRead(btnOn)) {
18    state = 1;
19  }
20  
21  if (digitalRead(btnOff)) {
22    state = 0;
23  }
24  
25  if (digitalRead(btnIncrease)) {
26    frequency = frequency + 50;
27    delay(100);
28  }
29  
30  if (digitalRead(btnDecrease)) {
31    frequency = frequency - 50;
32    delay(100);
33  }
34  
35  if (state == 1) {
36    tone(buzzerPin, frequency);
37  } else {
38    noTone(buzzerPin);
39  }
40}

Preguntas frecuentes

¿Por qué se utiliza una resistencia de 220 Ω para los pulsadores?▾

En el proyecto, los botones se leen mediante INPUT_PULLUP o pull-down; las resistencias en serie protegen el pin frente a posibles cortocircuitos. En la configuración pull-down, se suele optar por 10 kΩ; la configuración de pinMode en el código debe ser compatible con estos valores, según la forma de conexión del circuito.

¿En qué intervalo se debe modificar la frecuencia?▾

El oído humano percibe frecuencias entre aproximadamente 20 Hz y 20 kHz, pero los pequeños zumbadores emiten mejor el sonido en el rango de 500 a 5000 Hz. Si se elige un intervalo de aumento o disminución de 50 a 100 Hz, el cambio se hace perceptible.

Cuando mantengo pulsado el botón, la frecuencia cambia muy rápido, ¿cómo puedo ralentizarla?▾

Si se cambia la frecuencia en cada ciclo, mantener pulsado provocará un aumento muy rápido. O bien cámbiala una vez por cada pulsación (detección de bordes), o bien añade una breve pausa tras el cambio.

¿Cómo puedo evitar que la frecuencia se salga de los límites?▾

Con «constrain(frecuencia, 100, 5000)» puedes mantener el valor dentro de un intervalo determinado. De este modo, no se bajará a frecuencias demasiado bajas ni a frecuencias tan altas que resulten inaudibles.

Ajuste de frecuencia con zumbador | BlueGrays