Descrición:
Imos facer que un altofalante conectado nunha saída dixital emita unha melodía
Programa:
- Creamos unha variable para detectar o estado do pulsador
- Utilizamos a función tone(pin,frecuencia,duración) ou tone(pin,frecuencia) para definir o son
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// Declaración de variables: const int pulsador=2; // Definimos o pulsador no pin 2 const int altofalante=4; // Definimos o altofalante no pin 4 int estado=0; //Inicialmente o estado do pulsador é 0 (desactivado) // Configuración: void setup(){ pinMode(4,OUTPUT); // Configuramos o pin 4 como saída } // Programa: void loop(){ estado = digitalRead(pulsador); if(estado==HIGH){ tone(4,1000,200); // 1000 Hz durante 0.2s delay(400); // Agarda 0.4s tone(4,1500,300); // 1500 Hz durante 0.3s delay(400); // Agarda 0.4s tone(4,2000,500); // 2000 Hz durante 0.5s } } |
Propostas:
Conecta dous interruptores e dous LEDs, con cadansúas resistencias de protección e, utilizando as funcións condicionais, resolve os seguintes problemas:
- Mellora do programa “Melodía”: Fai que ao premer un botón soe unha melodía de maneira sincronizada co acendido e apagado duns LEDs.
- Sintetizador: Utiliza varios pulsadores para crear un sintetizador musical. Por exemplo, con 2 pulsadores p1 e p2, ao premer no p1 prodúcese un ton de 400Hz e se prememos no p2 prodúcese un ton de 2600Hz.
- Variando as notas: Conecta un zumbador piezoeléctrico ou un altofalante. Fai que ao mover o cursor do potenciómetro cambie a frecuencia do ton emitido polo altofalante, desde a nota do a 261.63 Hz ata o si a 493.88Hz. Utiliza a función map para facer a conversión. y = map(x, ax, bx, ay, by);