Digito 7 Segmentos Rgb
Digito 7 segmentos controlado con un solo pin.
este pequeño ejemplo compondríamos hacer un digito con una tira led, la cual nos permite realizar barias secuencias utilizando pocos recursos de hardware; ya que con un solo pin podríamos majear la cantidad del dígitos que soporte nuestra fuente.
para ensamblar:
1.cortamos la tira led deforma que cada segmento que de del mismo tamaño cortando la tira cortando la tira
2.luego de cortadas se empiezan a organizar dando forma al digito en su orden Standar
Dyspla_7seg Stardar conecion
3.hacemos la respectivas conexiones, solo se debe tener en cuanta el orden ya que es una conexión en serie entre los segmentos, pero internamente la tira tiene cada led conectados en paralelo.
Armado
4.una ves ordenados y conectados todos los segmentos, deberemos soldar los pines de alimentación y de control; en este caso tenemos vcc,data,gnd.
ya estamos listo para conectar nuestro digito al Arduino
EN MI CASO USE EL ARDUINO UNO, perero podrían usar el que mas le convenga teniendo en cuenta el pin de control.
1.trabajaremos con la librería Adafruit_NeoPixel.h; deberás descargarla e instalarla en el gestor de librerías:
<Adafruit_NeoPixel.h> //Descarga la libreria
descarga lalibreria:$ https://github.com/adafruit/Adafruit_NeoPixel.git $
2.definimos y declaramos algunas variables de control y configuración .
#define PIXEL_PIN 6 // Pin 6 conectado a la tira led. pin IO Digital .
#define PIXEL_COUNT 5 // Número de leds (pixels) de la tira led por segmento.
#define Dig7Seg 1 //numero de dígitos conectados
#define SegXdigito 7 //numero de Segmentos por Digito
int PIXEL_COUNT=PIXEL_COUNT *7; //numero de leds= segmentos * la cantidad de dígitos
3.definición de colores por su nombre: es una combinación de 3 bytes separados por, representan la numeración por color rgb, así mismo puede crear mas colores y o definir un nombre, esto facilita el invocarlos en distintas funciones de forma un poco mas eficiente.
#define Rojo strip.Color(127, 0, 0)
#define Blanco strip.Color(127, 127, 127)
#define Azul strip.Color(0,0,127)
#define Verde strip.Color(0, 255, 0)
#define Off strip.Color(0, 0, 0)
4.el setup, inicializamos la tira led, y actualizamos su estado por primera vez.
void setup() {
strip.begin(); // con begin inicializamos la tira led.
strip.show(); // con show actualizamos toda la tira de una sola vez.
}
5.en la loop, solo tenernos una secuencia de funciones simples, de una forma fácil y des complicada como podemos manejar la tira, creando algunos efectos y tambien mostrando los dígitos numéricos programados
void loop() {
Barrido1A1(Rojo, 300);
delay(100);
Barrido1A1(Verde, 200);
delay(1100);
Barrido1A1(Azul, 100);
delay(150);
BarridoCompleto(Verde, 330);
delay(100);
BarridoCompleto(Rojo, 250);
delay(100);
BarridoCompleto(Azul, 50);
delay(100);
OffSeg();
barridoSegmento(Azul);
delay(100);
ValorAscii("0000110", Rojo); //1
delay(1000);
OffSeg();
ValorAscii("1011011", Verde); //2
delay(1000);
OffSeg();
ValorAscii("1001111", Azul); //3
delay(1000);
OffSeg();
ValorAscii("1100110", Rojo); //4
delay(1000);
ValorAscii("1100110", Rojo); //4
OffSeg();
ValorAscii("1101101", Rojo); //5
delay(1000);
OffSeg();
ValorAscii("1111101", Verde); //6
delay(1000);
OffSeg();
ValorAscii("0000111", Azul); //7
delay(1000);
OffSeg();
ValorAscii("1111111", Rojo); //8
delay(1000);
OffSeg();
ValorAscii("1101111", Verde); //9
delay(1000);
OffSeg();
}
Supplies
código:
https://github.com/johancass/ArdPublico/blob/92d5633a22bcac747dab8d418ebefeb2f6afdb50/tira_Wsrgb/tira_Wsrgb.ino
Funciones Y Parametros
void ValorAscii(String CadenaBinaria, uint32_t c)
esta función es encargada de leer el String que debe contener un numero binario el cual representara lo segmentos que se debe apagar o encender para crear y proyectar el numero deseado.
- String CadenaBinaria: cadena de caracteres con numero binario //"00110100"
- uint32_t c: color definido, o strip.Color(127, 127, 127) para color no definido personalizado
Barrido1A1(uint32_t c, uint8_t wait)
esta función es un siclo que va encendiendo y apagando led a led del digito completo.
- uint8_t wait: tiempo de encendido entre cada led.
- uint32_t c: color definido, o strip.Color(127, 127, 127) para color no definido personalizado.
BarridoCompleto(uint32_t c, uint8_t wait)
esta función es un siclo que va encendiendo led a led del digito completo y queda encendido.
- uint8_t wait: tiempo de encendido entre cada led.
- uint32_t c: color definido, o strip.Color(127, 127, 127) para color no definido personalizado.
BarridoSegmento(uint32_t c,uint8_t wait,uint8_t Tp)
- esta función es un siclo que va encendiendo segmento del digito completo.
- uint8_t wait: tiempo de encendido entre cada led.
- uint32_t c: color definido, o strip.Color(127, 127, 127) para color no definido personalizado.
OffSeg()
apaga de forma rápida todo el digito
- uint8_t wait: tiempo de encendido entre cada led.
- uint32_t c: color definido, o strip.Color(127, 127, 127) para color no definido personalizado.