Crea un BARGRAPH (gráfico de barras) con ARDUINO


p2.jpg

Video

En esta práctica realizaremos un bar graph. Un bar graph es una serie de LEDs en una línea, similar a ver un display de audio. Con un Arduino, controlaremos el encendido y apagado de la serie de LEDs.

- Materiales:


Para realizar el circuito necesitas:

• 1 Arduino UNO,
• 9 LEDs
• 1 potenciómetro de cualquier valor,
• 9 Resistencia de 220 ohms,
• 1 Protoboard y Jumpers.


- Código


Comenzamos el desarrollo del programa definiendo cuantos LEDs pondremos en el circuito. Posteriormente, definir los pines donde estarán conectados los LEDs y el potenciómetro. Utilizaremos variables de tipo entero para la asignación de pines.
Agregaremos un array para almacenar todos los pines y optimizar código.

int totalLEDS = 9;
int POT= A0;
int LEDS[] = {2,3,4,5,6,7,8,9,10};

En la función void setup() pondremos todos los pines digitales como salida. Usaremos un ciclo “for” para reducir código. Iniciaremos dentro del ciclo una variable de tipo entero para iniciar el conteo actual de los leds, lo llamaremos “actualLED”

Cada vez que empieza de nuevo el ciclo la variable actualLED aumentará en 1 su valor y solo finalizará el ciclo “for” cuando actualLED no sea menor que totalLEDS.

void setup() {
for (int actualLED = 0; actualLED < totalLEDS; actualLED++) {
pinMode(LEDS[actualLED], OUTPUT);
}
}

Dentro de loop() escribiremos la lógica del programa. Leeremos la medición mandada por el potenciómetro y la almacenaremos en una variable entera.

Implementaremos la función map() para transformar el valor entero del rango de entrada del potenciómetro al valor correspondiente al rango de salida de los LEDs. En pocas palabras, map() realiza una regla de 3 para sacar cuantos LEDs deben prender dependiendo del valor leído del potenciómetro.

El valor procesado por la función map() la agregaremos en una variable entera diferente.

void loop() {
int potvalue = analogRead(POT);
int calculoLEDS = map(potvalue, 0, 1023, 0, totalLEDS);

Con la misma estructura que hicimos el primer ciclo “for” dentro de setup() la implementaremos en loop(), modificando las instrucciones dentro del ciclo para que encienda los LEDs correspondientes.

void loop() {
int potvalue = analogRead(POT);
int calculoLEDS = map(potvalue, 0, 1023, 0, totalLEDS);
for (int actualLED = 0; actualLED < totalLEDS; actualLED++) {
if (actualLED < calculoLEDS) {
digitalWrite(LEDS[actualLED], HIGH);
}
else {
digitalWrite(LEDS[actualLED], LOW);
}
}
}


La sintaxis de la funcion map() es map(valor de entrada, inicio rango de entrada, final rango de entrada, inicio rango de salida, final rango de salida).

- Instrumentación


Empezaremos conectando las tres patas del potenciómetro a 3 pistas de la protoboard, no importa en qué dirección esté la perilla. Realizaremos un puente de conexión entre la pata de en medio del potenciómetro al pin A0 del Arduino UNO mediante un jumper. Posteriormente conectaremos las patas extremas a 5v del Arduino y a tierra por el pin GND, como se muestra en la imagen.

Colocaremos todos los LEDs haciendo una línea conectando los ánodos con las resistencias y está conectada a los pines digitales de la placa y los cátodos conectados a la tierra del Arduino. Compilamos y subimos programa para ver resultados.

Imágenes

p2.jpg
p2_2.jpg
p2_3.jpg

APRENDE LO QUE NECESITAS

NUESTROS CURSOS


cursoarduinoyandroid.jpg

Creación de un HMI en Android Studio y Arduino

Nivel: Básico 2 horas y 30 min (146 min.)

Diseña, maqueta y programa un HMI completo en Android Studio vinculado a un Arduino mediante Bluetooth.

cursodispensadorautomatico.jpg

CONSTRUYE un DISPENSADOR AUTOMÁTICO CASERO sin ARDUINO desde CERO

Nivel: Básico 27 minutos

Construye desde cero un dispensador automático casero sin Arduino desde cero, utilizando pura electrónica.

cursocarritorobot4wd.jpg

Creación de carrito robot desde cero usando mando de PS4

Nivel: Básico 2 horas y 19 min (139 min.)

Construye desde cero un carrito robot con arduino manipulado por un control de PS4 y un teléfono Android.