Skip to Content

Interfacing an LED Bar Graph With Arduino

Interfacing an LED Bar Graph With Arduino

In this tutorial you will learn how to use interface an LED Bar with an Arduino. If you are looking for a good status indicator, LED bars are an excellent option. 

Las barras de LEDs son un grupo de LEDs independientes dispuestos uno al lado del otro. Vienen en una variedad de colores, y conteo de LEDs.

En este artículo, te llevaré a través de una guía de conexión paso a paso, ejemplos de proyectos de Arduino, fundamentos de la barra de LED, y algunos consejos para hacer lo mejor de tus proyectos de barra de LED. 

Puede encontrar las aplicaciones de las barras de LED en balanzas, decoraciones, festivales de música, pantallas de espectro sonoro, etc.

Destacan bien en entornos exteriores, lo que las convierte en la opción preferida para muchas aplicaciones. 

Comencemos.

Componentes necesarios para construir el proyecto Arduino y el gráfico de barras LED

Componentes de hardware 

Software

Makerguides.com participa en el Programa de Asociados de Amazon Services LLC, un programa de publicidad de afiliados diseñado para proporcionar un medio para que los sitios ganen honorarios de publicidad mediante la publicidad y los enlaces a productos en Amazon.com.

¿Qué es un gráfico de barras LED? ¿Cómo funciona el gráfico de barras LED?

Veamos uno de los gráficos de barras de luz LED de Everlight.

los gráficos de barras de luz LED de Everlight

El gráfico de barras de LEDs de arriba tiene diez LEDs rojos independientes. Puedes acceder al ánodo y al cátodo de cada LED por separado. Por lo tanto, tiene 20 pines.   

La figura siguiente muestra el típico circuito controlador que se utiliza para manejar el gráfico de barras. No tienes que usar el driver obligatoriamente.

Si no utilizas el driver IC, necesitas 10 pines GPIO del Arduino para controlar los 10 LEDs del gráfico de barras. 

Si su diseño limita el número de entradas disponibles, puede elegir un CI controlador dedicado a la conducción de dichos gráficos de barras LED. Encontrará varias opciones a la hora de elegir el CI dedicado. 

Puedes comunicarte con el driver IC a través de un protocolo serie (2 hilos) o incluso utilizar una señal DAC para controlar la entrada analógica del driver IC.

circuito de accionamiento típico

También hay módulos de gráficos de barras LED con controladores incorporados. Como diseñador, debes decidir entre el coste y los pines GPIO.

Para controlar varios de estos gráficos de barras LED es necesario utilizar un controlador específico. 

Algunos gráficos de barras LED son monocolor, y otros serán multicolor.

Los colores múltiples son más informativos en términos de indicación de estado.

También son mis favoritos.

Gráficos de barras LED

Algunos gráficos de barras de LEDs tendrán sólo 2 LEDs, y otros hasta 14 LEDs en un caso.

Puedes elegir el gráfico de barras LED adecuado en función del tamaño, el consumo de energía y la cantidad de información que quieras mostrar.

Instrucciones paso a paso para conectar un gráfico de barras LED a Arduino

Como hay tantas variantes, hay que adaptar ligeramente las conexiones en función del número de pines disponibles.

Empecemos con un gráfico de barras LED comúnmente encontrado con 8 LEDs.

¿Cómo conectar un gráfico de barras LED a un Arduino?

Esta sección proporcionará una guía paso a paso para completar las conexiones necesarias entre Arduino y el gráfico de barras LED.

La conexión final tiene el aspecto de la imagen siguiente.

Conectar un gráfico de barras LED a un Arduino

Paso 1: Empezar con el LED1

Comenzar con el LED1

Conecta el ánodo del LED1 del gráfico de barras al pin 0 del Arduino UNO. 

Paso 2: Conectar los siete pines restantes

Conecta los pines 1 a 7 del Arduino a los 7 gráficos de barras LED restantes, como se muestra en la imagen siguiente.

Conecta los siete pines restantes

Puedes usarlos fácilmente para bucles y otra lógica si los conectas a los pines secuenciales de Arduino, como en la figura anterior.

Paso 3: Conectar las resistencias limitadoras de corriente

Conecta resistencias de 220 ohmios en serie para cada uno de los LEDs. Proteges los LEDs de la quema limitando la corriente que fluye a través de ellos.

Cualquier resistencia entre 220 ohmios y 470 ohmios debería ser un buen valor.

Conecte las resistencias limitadoras de corriente

Paso 4: Conectar el pin GND

Conectar el pin GND

¡Felicidades! Has completado todas las conexiones necesarias entre el Arduino y el gráfico de barras LED.

Gráfico de barras LED y ejemplos de código Arduino

En esta sección, encontrarás el código de Arduino para manejar un gráfico de barras LED con 8 LEDs. Empecemos.

Proyecto 1: Ejemplo de gráfico de barras con Arduino y LED

El siguiente código le ayuda a verificar las conexiones que ha realizado. El código enciende y apaga los LEDs secuencialmente. Cambia el valor del retardo para adaptarlo a tus preferencias. 

const int ledCount = 8;    // the number of LEDs in the bar graph
 
int ledPins[] = {
  0, 1, 2, 3, 4, 5, 6, 7
};   // an array of pin numbers to which LEDs are attached
 
void setup() {
  // loop over the pin array and set them all to output:
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT);
  }
}
 
void loop() {
  // loop over the LED array:
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    digitalWrite(ledPins[thisLed], HIGH);
    // wait for 200 ms before you turn off the LED
    delay(200);
    digitalWrite(ledPins[thisLed], LOW);
 
  }
}

If you have difficulties understanding how the code and electronics to control an LED works, have a look at our tutorial on How To Blink An LED Using Arduino (4 Different Ways).

Proyecto 2: Ejemplo de gráfico de barras con Arduino, potenciómetro y LED

El siguiente código maneja el gráfico de barras del LED proporcional al valor analógico leído del potenciómetro. 

El potenciómetro está conectado al pin A0 del Arduino. Reasigna, si es necesario, a otros pines de entrada analógica disponibles. El mismo código funciona para cualquier otro sensor analógico que planees utilizar. 

La función de reasignación puede modificarse para que el rango del sensor cubra todos los LEDs de su gráfico de barras LED.

A continuación se muestra el diagrama de conexión del gráfico de barras del LED de valores analógicos.

Ejemplo de gráfico de barras con Arduino, potenciómetro y LED

El código de Arduino es fácil de interpretar. Te recomiendo que juegues con el código y veas los resultados por ti mismo.

Copie el siguiente código en un nuevo boceto.

const int analogPin = A0;   // the pin that the potentiometer is attached to
const int ledCount = 10;    // the number of LEDs in the bar graph
 
int ledPins[] = {
  2, 3, 4, 5, 6, 7, 8, 9, 10, 11
};   // an array of pin numbers to which LEDs are attached
 
 
void setup() {
  // loop over the pin array and set them all to output:
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT);
  }
}
 
void loop() {
  // read the potentiometer:
  int sensorReading = analogRead(analogPin);
  // map the result to a range from 0 to the number of LEDs:
  int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
 
  // loop over the LED array:
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    // if the array element's index is less than ledLevel,
    // turn the pin for this element on:
    if (thisLed < ledLevel) {
      digitalWrite(ledPins[thisLed], HIGH);
    }
    // turn off all pins higher than the ledLevel:
    else {
      digitalWrite(ledPins[thisLed], LOW);
    }
  }
}

For more information about potentiometers and how to use them to control LEDs have a look at the tutorial on How use Arduino to control an LED with a Potentiometer.

Proyecto 3: Gráfico de barras de LEDs y código Arduino del sensor de luz

El proyecto que se presenta a continuación acciona el gráfico de barras de los LEDs de forma proporcional a la cantidad de luz que incide en el fotosensor. A continuación se muestra el diagrama de conexión.

Cuando la intensidad de la luz es menor, el gráfico de barras de LEDs permanece apagado. Si la intensidad de la luz aumenta, los LED del gráfico de barras LED se iluminan uno a uno. 

Puedes editar el código y hacerlo más interesante. Si tienes alguna duda, publícala en la sección de comentarios.

Gráfico de barras de LEDs y código Arduino del sensor de luz

El código de Arduino para el proyecto anterior es el siguiente.

// These constants should match the photoresistor's "gamma" and "rl10" attributes
const int sensorPin = A0; // Set pin of the Photoresistor sensor
const float GAMMA = 0.7;
const float RL10 = 50;
const int ledCount = 10;  // Set number of LEDs in the bar graph
 
// Array of pins for LEDs in the bar graph
int ledPins[] = {
  2, 3, 4, 5, 6, 7, 8, 9, 10, 11
};
 
void setup() {
  // Loop over the LEDs pins and set all to output
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT);
  }
}
 
void loop() {
  // Read the Photoresistor sensor value
  int sensorReading = analogRead(sensorPin);
 
  // Convert the analog value into lux value
  float voltage = sensorReading / 1024. * 5;
  float resistance = 2000 * voltage / (1 - voltage / 5);
  float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
 
  // Map the result to a range from lux to the number of LEDs
  int ledLevel = map(lux, 0, 1023, 0, ledCount);
 
  // Loop over the LEDs pins and set element
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    // If the array element's index is less than ledLevel
    if (thisLed < ledLevel) {
      // Turn the pin for this element on
      digitalWrite(ledPins[thisLed], HIGH);
    } else {
      // Turn off all pins higher than the ledLevel
      digitalWrite(ledPins[thisLed], LOW);
    }
  }
}

Preguntas frecuentes sobre el Arduino y los proyectos de gráficos de barras LED

En esta sección, obtendrás respuestas a las preguntas más frecuentes sobre las barras de LED y los proyectos de Arduino. He recopilado las preguntas en un solo lugar.

Estaré encantado de ampliar la lista si tiene más preguntas que aún no han sido respondidas.

Por favor, publique todas sus preguntas en la sección de comentarios. 

1) ¿Cómo se conecta la barra de LEDs a Arduino?

Puedes conectar simples barras de LEDs directamente a los pines GPIO de Arduino. Los pines GPIO pueden estar en cualquier orden.

Conectar los pines secuencialmente ayuda hasta cierto punto mientras se codifica Arduino para crear patrones en la barra de LED. 

Los módulos de barras LED vienen con una barra LED y un chip que acepta los datos en serie y, a su vez, acciona la barra LED.

En ese caso, necesitas dos GPIOs configurados para actuar como relojes Seriales y datos Seriales. 

2) ¿Qué es un gráfico de barras LED?

Un gráfico de barras de LEDs es una serie de LEDs conectados en fila en una carcasa.

Un gráfico de barras LED

3) ¿Cuáles son las aplicaciones de los gráficos de barras LED?

Aquí he enumerado algunos proyectos de ejemplo en los que encontrarás aplicaciones para las barras de LED. Los gráficos de barras LED son una excelente adición a los proyectos.

Se utilizan en una gran variedad de aplicaciones. 

Salida analógica de los sensores: Las barras de LEDs son una excelente opción para mostrar el trabajo analógico de los sensores de una manera agradable a la vista. Por ejemplo, suponga que tiene un sensor de flujo de líquido que le da un voltaje analógico (equivalente al caudal). 

Puede leer la tensión analógica y reasignar el valor en el gráfico de 8 de 16 LEDs. 

Visualización de la posición del potenciómetro: Puede utilizar barras de LED para mostrar el nivel de volumen o la posición del potenciómetro. La barra de LEDs ofrece una mejor información sobre la posición al usuario final.

4) ¿Se necesita una resistencia limitadora de corriente para las barras de LED? 

Los LEDs necesitan una resistencia limitadora de corriente. Los módulos de barra de LEDs pueden venir con resistencias limitadoras de corriente también. Por lo tanto, recomiendo comprobar constantemente la hoja de datos del módulo de barras LED. 

Supongamos que no tiene ningún documento técnico sobre la barra de LED.

Es mejor utilizar las resistencias limitadoras de corriente en la etapa inicial.

Conclusión

Espero que este artículo le haya proporcionado todo lo que necesita saber sobre las barras LED para que pueda planificar su uso en sus próximos proyectos de visualización.

He utilizado barras de LED en dos proyectos: un indicador de la calidad del aire y un indicador de potencia de la señal de radiofrecuencia. Fue divertido trabajar con ellas. También puedes ponerlas en cascada para crear proyectos de visualización muy chulos.

Por favor, háganos saber si tiene algún comentario para mejorar el artículo o el estilo de presentación. Sus sugerencias nos ayudan a crear contenidos más útiles para nuestros lectores.

¿Sobre qué proyecto le gustaría leer a continuación? ¿Hay algún tema sobre el que le gustaría que escribiéramos?

Háganoslo saber en la sección de comentarios. 

Si te ha resultado útil este artículo sobre el gráfico de barras LED, compártelo con tus amigos y entusiastas de Arduino.