miércoles, 12 de diciembre de 2012

LABORATORIO # 8

En este laboratorio  vamos controlar con el Arduino una la reproducción de una canción en un Piezo (Buzzer) o un Speaker la melodia (Inspector Gadget).



MATERIALES QUE SE USARON 

- 1 Piezo (Buzzer)

- Placa Arduino UNO



DIAGRAMA DEL LABORATORIO



ESQUEMA DEL LABORATORIO








CODIGO DEL LABORATORIO



 //     LA PANTERA ROSA
#define  c3    7634
#define  d3    6803
#define  e3    6061
#define  f3    5714
#define  g3    5102
#define  a3    4545
#define  b3    4049
#define  c4    3816    // 261 Hz
#define  c4s   3607    // 277,183 Hz
#define  d4    3401    // 294 Hz
#define  d4s   3214    // 311,127 Hz 
#define  e4    3030    // 329 Hz 
#define  f4    2865    // 349 Hz 
#define  f4s   2702    // 369 Hz 
#define  g4    2551    // 392 Hz
#define  g4s   2407    // 405 Hz
#define  a4    2272    // 440 Hz 
#define  a4s   2146
#define  b4    2028    // 493 Hz 
#define  c5    1912    // 523 Hz
#define  d5    1706
#define  d5s   1608
#define  e5    1517
#define  f5    1433
#define  g5    1276
#define  a5    1136
#define  a5s   1073
#define  b5    1012
#define  c6    955
    #define  R     0//defino el silencio
    int salida = 2;//pin de salida
    void setup() {
      pinMode(salida, OUTPUT);
    }
    //declaro la cancion en melodia con las notas y el tiempo de duracion
    //super mario
    int melody[] = {R,c4s,d4,d4s,e4,R,c4s,d4,d4s,e4,R,e4,d4s,d4,c4s,R,c4s,d4,d4s,e4,R,R,d4s,e4,R,f4s,g4,R,d4s,e4,f4s,g4,c5,b5,d4,g4,b4,a4s,R,a4s,b4,f4s,e4,f4s,R};
    int beats[] = {16,16,16,16,224,128,16,16,16,224,128,16,16,16,224,16,16,16,16,128,192,16,16,32,16,16,32,16,16,16,16,16,16,16,16,16,16,74,10,10,10,10,10,74,220};
     
    int tamanoTotal = 45; //tamaño  de la cancion
    long tiempo = 30000;//defino el tiempo para cada toque
    int pause = 1000; //el tiempo para volver a reproducir
    int rest_count = 10; // declaro variables para la reproduccion
    int toneM = 0;
    int beat = 0;
    long duration  = 0;
     
    //metodo que reproduce la cancion nota por nota
    void playTone() {
      long elapsed_time = 0;// el tiempo que va corriendo
      if (toneM > 0) {
        while (elapsed_time < duration) {//mientras que llegue al tiempo esperado
          digitalWrite(salida,HIGH);
          delayMicroseconds(toneM /5);
          digitalWrite(salida, LOW);
          delayMicroseconds(toneM /5);
     
          elapsed_time += (toneM);//sumo el tono o su frecuencia para el tiempo
        }
      }
      else {
        for (int j = 0; j < rest_count; j++) {
          delayMicroseconds(duration);  //cuando termine de reproducir la cancion espero unos segundos
        }                                
      }                                
    }
     
    void loop() {
      for (int i=0; i
        toneM = melody[i];//saco cada nota con su respectivo tiempo
        beat = beats[i];
        duration = beat * tiempo; // Set up timing
        playTone();
        delayMicroseconds(pause);
      }
    }


VIDEO DEL LABORATORIO








No hay comentarios:

Publicar un comentario