Arduino vúmetro con potenciómetro


Arduino vúmetro con potenciómetro en un ejercicio practico de luces rítmicas con potenciómetro, este para generar el efecto de movimiento en los leds

oscar Escrito por oscar 20 August 2015 21350 4

Arduino vúmetro con potenciómetro, es un ejercicio adicional del proyecto arduino luces rítmicas realizado en el contenido anterior, pero en esta ocasión le añadimos el potenciómetro el cual no arroja una señal análoga, donde ingresa por el puerto análogo de nuestro arduino para hacer la conversión de análogo a digital.

Vídeo del circuito

A continuación, encontraras un vídeo en donde se explica al detalle el circuito.

Objetivo

El ejercicio tiene como objetivo poder obtener en valor del voltaje de salida del potenciómetro y expresarlo en los leds dependiendo de la conversión realizada, donde al manipulado, el efecto de los led cambiara de forma tal que muestre un incremento o decremento del voltaje.

Materiales

Los materiales son los mismos que usamos en el circuito arduino luces rítmicas, lo unico que adicionamos es el potenciómetro para controlar la secuencia.

Materiales de vúmetro con potenciómetro
Materiales de vúmetro con potenciómetro
Material Cantidad Descripción
Arduino 1 Usado para controlar el circuito
Leds 8 Mostrara la secuencia de luces
Resistencias de 1kΩ 8 Protección de los leds
Potenciómetro de 250kΩ 1 Control para la secuencia de luces
Cables macho a macho 11 Aprox Conexión al circuito

Código

El código se describe a continuación, también lo puedes encontrar en el siguiente link.

//Paso 1
const int pins[8] = {2,3,4,5,6,7,8,9}; 

//Paso 2
const byte vumeter[9] = {0b00000000,  //0
                            0b00000001, //1
                            0b00000011, //2
                            0b00000111, //3
                            0b00001111, //4
                            0b00011111, //5
                            0b00111111, //6
                            0b01111111, //7
                            0b11111111  //8
                        };

//Paso 3
void setup() {
    //Ponemos los pines como salida
    for(int i = 0; i < 8; i++) {
    pinMode(pins[i], OUTPUT);  
    }
}

//Paso 4
void loop() {
    //Lectura del puerto A0
    int valueAnalog = analogRead(0);
    //Conversión para obtener la secuencia
    int positionLed = (valueAnalog * 9) / 1024;
    delay(10);
    lightVumeter(positionLed);
}

//Paso 5
void lightVumeter(int number) {
    byte numberBit = vumeter[number];
    for (int i = 0; i < 8; i++)  {
    int bit = bitRead(numberBit, i);
    digitalWrite(pins[i], bit);
    }
}

El código funciona de la siguiente manera:

  1. Creamos la variable pins[] de tipo array como constante, para almacenar los pines de conexión a nuestros leds.
  2. Creamos la variable vumeter[] para almacenar los byte de la secuencia de nuestros leds
  3. En el setup declaramos los pines como salida con pinMode(), estos pines son los de la variable pins.
  4. Para el loop() leemos el pin analógico A0 con analogRead(), luego realizamos la regla de 3 para determinar la posición a obtener de array "paso 2" y llamamos la funcion lightVumeter()
  5. Por ultimo la funcion lightVumeter() recorremos los pines de los led, obtenemos el valor de byte, con la posición para poder colocar en la salida el bit correspondiente.

Comentario

Debe aceptar antes de enviar
lausofchaleo
lausofchaleo

22 October 2017 15:24

hola buenas tardes, tengo un problema con el que quisiera que me ayudaras, al momento de compilar el código al arduino me dice que no es posible por un problema en la placa, pero no me especifica que es, te agradecería recibir una respuesta lo mas pronto posible, gracias.
Pablotriton88
Pablotriton88

22 November 2017 00:26

Muy bueno el proyecto y la explicación.se podrá hacer estéreo.Gracias...
cztr8090
cztr8090

06 October 2018 14:48

hay alguna forma de resumir todo el proceso te agradeceria tu ayuda :D
ctrlxsistemas
ctrlxsistemas

07 January 2020 09:49

gracias voy a probar