Arduino vúmetro con potenciómetro

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 potenciometro para controlar la secuencia.
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
Potenciometro 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.

Comentarios

Para dejar el comentario solo necesitamos tu correo que registraste en la pagina, pero si aun no te haz registrado se creara el usuario automaticamente.

  • cztr8090
    cztr8090
    hay alguna forma de resumir todo el proceso te agradeceria tu ayuda :D
  • Pablotriton88
    Pablotriton88
    Muy bueno el proyecto y la explicación.se podrá hacer estéreo.Gracias...
  • lausofchaleo
    lausofchaleo
    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.

Detalle contenido

arduino vúmetro potenciómetro
Generic placeholder image
Oscar Fernandez Alzate

20, Agosto 2015

7980
Categorías
ARDUINO