loading

Estimado lector le invito a revisar el siguiente articulo donde explico como construir un vumetro de 12 LEDS que reaccionan con la música que reproduce WINAMP. (También puede utilizar con otros reproductores como WINDOWS MEDIA PLAYER, AIMP3 O AIMP4)

Materiales

  • ARDUINO UNO + CABLE USB
  • 12 LEDS: 7 VERDES,
  • 3 AMARILLOS,
  • 2 ROJOS
  • 12 RESISTENCIAS 330 OHM
  • 1 PLACA UNIVERSAL
  • 1 METRO DE ESTAÑO
  • HERRAMIENTAS
  • CAUTIN
  • PINZA PELA CABLES

SOFTWARE

Step 1: Configuración Del Plugin

Despues de Instalar el software WINLPT VERSION 2.09 y grabar el sketch en ARDUINO vamos a MENU INICIO/WINLPT y le damos clic en "launch WINAMP" (no iniciar winamp directamente ya que no se iniciará el plugin)


En winamp nos dirigimos al menú Opciones/vizualizacion/iniciar Bajo la pestaña SETTINGS configurar los siguientes parámetros:

  • COM el que esta conectado ARDUINO,
  • Baudrate = 9600,
  • Header = 1,
  • DataBytesCount=12, numero de LEDS que vamos a utilizar

Step 2: Sketch

Para llevar a cabo este proyecto, se utilizo doce LED y doce resistencias de 330 ohm luego se las colocó en una placa perforada de manera que se pueda colocar sobre el ARDUINO y coincida con los pines 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 y GND

El software winlpt envia una cadena de 0 hasta 32 bytes, en este caso, que solo encenderemos doce leds, programaremos para que el software envíe doce bytes únicamente; el primer byte enviado corresponde al inicio de la trama y siempre es 1, los siguientes 12 bytes corresponden a los datos: si el byte es 0 apaga el LED; si el byte es 255 enciende el LED

Ejemplos

1000000000000 Todos los Leds apagados

125500000000000 El primer led encendido

10000000255255255255255 los últimos cinco leds encendidos

El Programa para cargar en Arduino es el siguiente:

// 0 - APAGA TODO
// 255 - ENCIENDE EL LED 
// CABECERA: 1
//                    1 L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12
// PAQUETE COMPLETO:  1 0  0  0  0  0  0  0  0  0  0  0  0
// BYTES: 1..12
/////////////////////////////////////////////////////////////////////
// Program code
////////////////////////////////////////////////////////////////////</p><p>/PINES DEL ARDUINO 2, 3, 4, 5,... 13
const int channels[] = {2,3,4,5,6,7,8,9,10,11,12,13};
const int baudrate = 9600;
// NUMERO DE CANALES
const int numChannels = sizeof(channels);
//CANAL ACTUAL
int curChannel = 0;
void setup()
{
  Serial.begin(baudrate);
  for(int i = 0; i < numChannels; i++)
  {
    pinMode(channels[i], OUTPUT);
    digitalWrite(channels[i], LOW);
  }
}</p><p>void loop()
{
  int y = Serial.available(); 
  for (int i = 0; i < y; i++) 
  {
    int inc = Serial.read(); // LEE EL DATO ENVIADO POR EL COMPUTADOR
    if (inc == 1) // SI RECIBE EL NUMERO 1
    {
      curChannel = 0; //RESETEA EL CANAL ACTUAL A 0
      continue; 
      }
    if (curChannel < numChannels) // SI EL NUMERO DE CANAL ACTUAL ES MENOR AL NUMERO TOTAL DE CANALES
    {
      digitalWrite(channels[curChannel], !!inc); // ESCRIBE LA SEÑAL DE SALIDA
      curChannel++; 
    }
  }
}

Step 3: Programacion De SCRIPTS

Los scripts son secuencias que podemos programar con el software WINLPT; sirven para que los LED se vayan encendiendo en el orden indicado, a continuación pongo algunos ejemplos;

<p>111111111111 ; Turn ON all 12 LEDs</p>
<p>000000000000 ; Turn OFF all 12 LEDs</p>
<p>CYCLE:        ; Define the Label named as "CYCLE"<br>111111111111  ; Turn ON all 12 LEDs
000000000000  ; Turn OFF all 12 LEDs
goto CYCLE    ; Goto the "CYCLE" Label (Infinite cycle)</p>
<p>sleeps 500    ; Specify regular pause between steps (pause = 500 ms)<br>CYCLE:        ; Define the Label named as "CYCLE"
111111111111  ; Turn ON all 12 LEDs
000000000000  ; Turn OFF all 12 LEDs
goto CYCLE    ; Goto the "CYCLE" Label (Infinite cycle)</p>
<p>sleeps 500    ; Specify regular pause between steps (pause = 500 ms)<br>CYCLE:        ; Define the Label named as "CYCLE"
100000000000  ; Engage only LED №1
010000000000  ; Engage only LED №2
001000000000  ; Engage only LED №3
000100000000  ; Engage only LED №4
goto CYCLE    ; Goto the "CYCLE" Label (Infinite cycle)</p>

Step 4: Funcionamiento

En la imagen se muestra la tarjeta electronica construida y para comprender mejor la configuración del Plugin y ver al vumetro funcionando revise el vídeo.

(mas información de este y otros proyectos los puedes ver en mi blog: planetadigital)

About This Instructable

29views

1favorite

License:

More by raulb32:PONG WITH ARDUINO - ARDUINO PONG VUMETRO CON ARDUINO Y MICROFONO ELECTRET Analizador De Espectro Con ARDUINO Y WINAMP 
Add instructable to: