martes, 27 de diciembre de 2011

Vúmetro – Leds al ritmo de la música

23 comentarios
Como primer proyecto para el blog haremos una cosa bastante fácil, un vúmetro. Un vúmetro no es mas que un instrumento el cual nos indica el nivel de la señal de audio. Nosotros lo que haremos será representarlo con unos leds para que sea mas vistoso. 

Para realizar esto necesitaremos:
  • Arduino
  • Leds
  • Resistencias. Yo he usado de 1 kΩ por cada led
  • Cable de audio
  • Una fuente de audio. Un pc, reproductor, etc
Cosas como la protoboard o cables para hacer las conexiones no creo que haga falta ponerlos :)
El esquema seria una cosa así:



Como podeis ver en la imagen yo no he "pelado" un cable de audio sino que he utilizado un conector de audio que extraje de un lector de cd antiguo, es bastante mas comodo.

Código:

//www.playingwitharduino.blogspot.com

//Declaramos los leds

int LED1 = 3;

int LED2 = 4;

int LED3 = 5;

int LED4 = 6;

int LED5 = 7;

int LED6 = 8;

int LED7 = 9;

int LED8 = 10;



//Las variables que usaremos para el silencio

int Valor;

int Valor1;

int Valor2;

int Valor3;

int Valor4;



//Configuramos los pines y el serial para poder visualizar la entrada analogica

void setup (){

 Serial.begin(9600);

 pinMode(LED1,OUTPUT);

 pinMode(LED2,OUTPUT);

 pinMode(LED3,OUTPUT);

 pinMode(LED4,OUTPUT);

 pinMode(LED5,OUTPUT);

 pinMode(LED6,OUTPUT);

 pinMode(LED7,OUTPUT);

 pinMode(LED8,OUTPUT);

}



void loop (){

  //Leemos el valor

 Valor = analogRead(A0);

 //Transferimos los valores para saber cual era el estado anterior

 Valor4 = Valor3;

 Valor3 = Valor2;

 Valor2 = Valor1;

 Valor1 = Valor;



//Visualizamos los valores en Serial Monitor

 Serial.print("Valor: ");

 Serial.print(Valor);

 Serial.print("\t Valor1: ");

 Serial.print(Valor1);

 Serial.print("\t Valor2: ");

 Serial.print(Valor2);

 Serial.print("\t Valor3: ");

 Serial.print(Valor3);

 Serial.print("\t Valor4: ");

 Serial.println(Valor4);

 

 //Condicionamos que si el programa lee 4 veces seguidas 0 que se apagen los leds, si no ponemos esto los leds parpadearan mucho

if (Valor1+Valor2+Valor3+Valor4==0){

  digitalWrite(LED1,LOW);

  digitalWrite(LED2,LOW);

  digitalWrite(LED3,LOW);

  digitalWrite(LED4,LOW);

  digitalWrite(LED5,LOW);

  digitalWrite(LED6,LOW);

  digitalWrite(LED7,LOW);

  digitalWrite(LED8,LOW);

}

//Encendemos los leds segun el valor de entrada. En este caso la salida de mi pc como mucho me llega a 400 asi que lo dividimos entre ocho leds.

else{

 if (Valor>0){

   digitalWrite(LED1, HIGH);

 }

 else{

   digitalWrite(LED1, LOW);

 }



 if (Valor>50){

   digitalWrite(LED2, HIGH);

 }

 else{

   digitalWrite(LED2, LOW);

 }

 if (Valor>100){

   digitalWrite(LED3, HIGH);

 }

 else{

   digitalWrite(LED3, LOW);

 }



 if (Valor>150){

   digitalWrite(LED4, HIGH);

 }

 else{

   digitalWrite(LED4, LOW);

 }



 if (Valor>200){

   digitalWrite(LED5, HIGH);

 }

 else{

   digitalWrite(LED5, LOW);

 }



 if (Valor>250){

   digitalWrite(LED6, HIGH);

 }

 else{

   digitalWrite(LED6, LOW);

 }



 if (Valor>300){

   digitalWrite(LED7, HIGH);

 }

 else{

   digitalWrite(LED7, LOW);

 }



 if (Valor>350){

   digitalWrite(LED8, HIGH);

 }

 else{

   digitalWrite(LED8, LOW);

}

}




Este es el resultado final:




Espero que os haya gustado.

lunes, 26 de diciembre de 2011

Bienvenidos

0 comentarios

Bienvenidos a “Playing with Arduino”. En este blog iré poniendo los proyectos que vaya haciendo con Arduino, espero que os resulten interesantes. Al principio serán cosas bastante fáciles, luego irán incrementando la dificultad. En caso de duda comentar la entrada y intentare responderos.