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.
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:
- Creamos la variable
pins[]
de tipo array como constante, para almacenar los pines de conexión a nuestros leds. - Creamos la variable
vumeter[]
para almacenar los byte de la secuencia de nuestros leds - En el
setup
declaramos los pines como salida conpinMode()
, estos pines son los de la variablepins
. - Para el
loop()
leemos el pin analógico A0 conanalogRead()
, luego realizamos la regla de 3 para determinar la posición a obtener de array "paso 2" y llamamos la funcionlightVumeter()
- 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
lausofchaleo
22 October 2017 15:24
Pablotriton88
22 November 2017 00:26
cztr8090
06 October 2018 14:48
ctrlxsistemas
07 January 2020 09:49