ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Simulación Piano con Buzzer y pulsador


Enviado por   •  17 de Noviembre de 2020  •  Trabajos  •  873 Palabras (4 Páginas)  •  144 Visitas

Página 1 de 4

Objetivo:

Realizar una  simulación de  piano con los componentes  Buzzer y Pulsador, cada  uno  de  estos pulsadores emitirá un sonido distinto al presionarlos, dentro de la programación cambiare su tono entre  uno grave y agudo. Haciendo uso de nuestras  funciones pinMode(), digitalRead(), tone(), digitalWrite(), delayMicroseconds().

Materiales:

         1 Buzzer/Piezo

         9 Resistencias de 10K

         Jumpers

         9 Pulsadores

         Cable USB arduino

Procedimiento:

1.   Lo primero será colocar nuestros pulsadores de la siguiente manera

2.   Lo siguiente será puentear  y conectar las resistencias hacia el negativo y por consiguiente la pata izquieda hacia el positivo (Funcionamiento del pulsador fig 1.1)

Fig 1.1

[pic 1]

3.   Conectamos nuestra tierra y conectamos a 5v para energizar.

4.   Conectaremos nuestros pines digitales hacia nuestros pulsadores desde el pin 2 hasta el 9.

5.   Procedemos a conectar nuestro Piezo a la protoboard donde conectamos nuestros jumpers a los pines de salida.

6.   Ya con nuestro piezo colocado, ahora conectamos hacia el pin 13 y hacemos puente hacia tierra.

7.   Ya teniendo todo conectado, procedemos a realizar la programación de nuestro piano

Variables de pines de pulsador y Piezo

//Pulsadores int psl1 = 2; int psl2 = 3; int psl3 = 4; int psl4 = 5; int psl5 = 6; int psl6 = 7; int psl7 = 8; int psl8 = 9; int psl9 = 12;

//Piezo[pic 2]

int piezo = 13;

[pic 3][pic 4]

En setup() todos los pulsadores como entrada y Piezo como salida void setup(){

//Pulsadores

pinMode(psl1,INPUT); pinMode(psl2,INPUT); pinMode(psl3,INPUT); pinMode(psl4,INPUT); pinMode(psl5,INPUT); pinMode(psl6,INPUT); pinMode(psl7,INPUT); pinMode(psl8,INPUT); pinMode(psl9,INPUT);

//Piezo pinMode(piezo,OUTPUT);

}

En nuestra función loop() vamos a leer el valor digital del pulsador, guardándolo en nuestras variables, y con el condicionante if dependiendo de su estado (si es 1 dara un tono) haremos sonar con la función tone() hacia el Piezo

void loop(){

//Obtenemos valores de nuestro pulsadores int pulsador1 = digitalRead(psl1);

int pulsador2 = digitalRead(psl2); int pulsador3 = digitalRead(psl3); int pulsador4 = digitalRead(psl4); int pulsador5 = digitalRead(psl5); int pulsador6 = digitalRead(psl6); int pulsador7 = digitalRead(psl7); int pulsador8 = digitalRead(psl8); int pulsador9 = digitalRead(psl9);

if( pulsador1 == 1 ){

tone(piezo,300,100);

}

if( pulsador2 == 1 ){

tone(piezo,400,100);

}

if( pulsador3 == 1 ){

tone(piezo,500,100);

}

if( pulsador4 == 1 ){

tone(piezo,600,100);

}

if( pulsador5 == 1 ){

[pic 5]tone(piezo,700,100);

}

if( pulsador6 == 1 ){

tone(piezo,800,100);

}

if( pulsador7 == 1 ){

tone(piezo,900,100);

}

if( pulsador8 == 1 ){

tone(piezo,1000,100);

}

if( pulsador9 == 1 ){

//tema mario

int tam = sizeof(underworld_melody) / sizeof(int);

for (int nota = 0; nota < tam; nota++) {

// calculamos la duracion de la nota

// dividimos el valor de nota entre lo que vale int duracion = 1000 / underworld_tempo[nota];

tocar(piezo, underworld_melody[nota], duracion); int delayNotas = duracion * 1.30; delay(delayNotas);

// Detenemos la melodia tocar(piezo, 0, duracion);

}

//Delay entre tonos delay(10);

}

}

void tocar(int pinATocar, long frecuencia, long _tam) {

digitalWrite(13, HIGH);

long v_delay = 1000000 / frecuencia / 2; // retraso entre notas long ciclos = frecuencia * _tam / 1000; // numeros de ciclos for (long i = 0; i < ciclos; i++) {

digitalWrite(pinATocar, HIGH);

[pic 6][pic 7]delayMicroseconds(v_delay); digitalWrite(pinATocar, LOW); delayMicroseconds(v_delay);

}

digitalWrite(13, LOW);

}

Para finalizar agregue un tono MIDI extra que sería el tema de Mario bajo tierra

//Declaracion del compas de la melodía y arreglo de las notas a tocar int underworld_melody[] = {

NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0,

0,

NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0,

0,

NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, NOTE_DS3, NOTE_DS4, 0,

...

Descargar como (para miembros actualizados)  txt (6.7 Kb)   pdf (90.2 Kb)   docx (43.2 Kb)  
Leer 3 páginas más »
Disponible sólo en Clubensayos.com