Objetivos
e al contenido!
Material requerido.
Arduino UNO o equivalente. | |
Una Protoboard más cables. | |
8 resistencias de 330Ω. | |
Un chip FJB10R con 10 LEDs alineados. |
Los LED bar o barras de LEDs.
Con mucha frecuencia, vamos a querer indicar el nivel relativo de algo. Bien sea sobre el valor de un potenciómetro, de un sensor de luz, de un sensor de temperatura, o de cualquier otra variable.
No es raro en este tipo de tutoriales encontrar razones para un indicador así, y con mucha frecuencia se hace con, digamos 8 LEDS, y se representa el porcentaje de algo con respecto a su valor máximo.
El sistema funciona, pero es poco práctico y aún menos eficaz como indicador, por eso vamos a presentaros un integrado muy simpático: FJB10R. Los LEDs encapsulados en un único chip, listo para hacer esas cosas. Seguro que los habéis visto en más de un equipo por ahí, y son muy agradables de ver como bailan siguiendo las señales de audio.
Son pequeños, baratos y muy eficaces a la hora de mostrar este tipo de señales en porcentaje que mencionábamos, y además están diseñados para `poderse cascadear, si con 10 LEDs, no os parece suficiente y además están disponibles en varios colores.
La conexión es de lo más sencilla, porque al final son simplemente 10 LEDs encapsulados en barritas paralelas, pero se manejan exactamente igual que un LED normal.
A partir de ahora, conviene que, por costumbre, busquéis en internet, la referencia de los componentes que vayáis usando, Así que buscad la referencia FJB10R en Google, para encontrar la hoja de normas del fabricante.
Nos interesa sobre todo, la descripción de los pines del chip (Que en este caso es el obvio, pero no os fieis)
Veamos el esquema del fabricante
Como esperábamos, el fabricante ha colocado los ánodos (Positivo) de los diodos en una cara y los cátodos (Negativo) en la otra…
La conexión de estos chips es trivial, pues basta con poner una resistencia de limitación de 330Ω a cada LED y conectar los positivos a 10 puertas de nuestro Arduino.
La única dificultad que veo, es que en mi chip no encuentro ninguna marca indicando el pin número 1, por lo que hay que probar a ver cuál es. Para ello conectad el positivo y negativo de un único LED y comprobar que se ilumina, antes de conectar el resto.
Diagrama del circuito.
Aquí tenemos el esquema de protoboard:
El chip encapsula los 10 LEDs y hay que conectarlos en paralelo con su resistencia y los conectamos a los pines de Arduino del 3 al 12.
El Programa de control.
Hemos escrito un programa básico, para mostrar la función Ed estos displays. Simplemente, leemos el potenciómetro y mapeamos la lectura a un valor entre 3, el primer pin y 14, porque queremos que el 13 sea el último.
El programa ilumina los LEDs por debajo del valor leído y apaga el resto.
void setup() { for (int i= 3; i<14 ; i++) pinMode(i, OUTPUT); } void loop() { int v = analogRead(A5); int k = map ( v, 0, 1000, 3 , 13); for ( int j=3 ; j < 14 ; j++) { if (j <= k) digitalWrite(j, HIGH); else digitalWrite(j, LOW); } }
Aquí tenéis un video con el resultado
Resumen de la sesión