Go Down

Topic: Control de display 7 segmentos grandes (Read 426 times) previous topic - next topic

torhec2012

Aug 23, 2019, 01:49 am Last Edit: Aug 24, 2019, 01:01 am by surbyte
Que tal JavierJM, mi nombre es Samuel, tengo un problema similar al tuyo, estoy armando un reloj digital pero con display de tiras Led de 12V, en un inicio lo quise hacer con el arduino y un max7219 para la multiplexacion, pero tuve el mismo problema que tu tuviste.

Implemente la solución que tu empleaste pero no me funciono, cambiare al hardware por el que tu utilizaste en tu proyecto, el arduino y el tm1637.

Serias tan amable de compartir el diagrama completo de como armaste tu circuito, para poder implementarlo al mio.

de ante mano muchas gracias.

surbyte

Si sigues un buen consejo (perdon mi sobervia en este caso) no uses el tm1637. Ese es un arreglo suyo.
Se puede implementar de muchos modos sin usar el TM1637 y luego tener que desoldar porque viene preparado para otra cosa.

surbyte

Buen dia, y cual me aconsejarias tu que use?, surbyte, ya que lo que utilice en un inicio fue, siempre el arduino uno y un max7219 para la multiplexacion, el max7219 trabaja con display de catodo comun, obviamente los pequeños los enciende muy bien, pero al conectar los displays hechos de tiras leds de 12v, es complicado que los levante.
Lo que habia hecho, es de que habia configurado los displays para catodo comun y tratar de amplificar el voltaje con transistores 2n2222a para el control de digitos y tip42c para el control de segmentos, y lo unico que  sucedio es de que solo se quedaba en ocho.
Luego cambie los display a anodo comun, y para el control de segmentos utilice un ULN2003 que maneja negativos en su salida, y para el control de display use los 42c, igual nada.
Ultimamente implemente la solución proporcionada por JavierJM, y siguio de la misma manera.

En conclusion, ya no se que hacer, ya se me agotaron las ideas.

torhec2012

#3
Aug 26, 2019, 02:51 am Last Edit: Aug 26, 2019, 04:01 pm by surbyte
Muchas gracias surbyte por tu orientación de como trabajar en este foro.

Ahora si, he utilizado el siguiente esquema para realizar un reloj digital con Arduino Uno y un Max7219 para la multiplexación de 6 display, 2 para segundos, 2 para minutos y 2 para horas.

El Max7219 maneja bien los display pequños de catodo comun.

Lo que yo necesito es que los minutos y las horas se vean reflejados en display grandes de tiras led de 12V que yo mismo realice.

Los displays grandes actualmente los arme de forma que sean anodo comun, tratando de controlar los segmentos con un ULN2003, que reciben un voltaje positivo y a su salida manejan GND, y para el control de display he tratado de utilizar un Tip42c.

Según los cortos conocimientos que tengo, en teoria deberia de funcionar, pero no funciona.


torhec2012

Este es el codigo que estoy utilizando...

Code: [Select]
/* CONSTRUCCIÓN DE UN RELOJ DE 6 DÍGITOS UTILIZANDO UN ARDUINO Y UN MODULO MAX7219
CONEXIONES:
MAX7219:
=================================
pin pin Arduino --------------------------------- LOAD pin 10
CLK pin 11
DataIn pin 12
RTC:
============================
pin pin Arduino ---------------------------- DS GND
SCL A5
SDA A4
VCC +5V
GND 0V
*/
// INCLUIMOS LAS LIBRERÍAS NECESARIAS
#include "LedControl.h" //Librería para el control del MAX7219
#include <Wire.h> //Librería necesaria para comunicación con dispositivos I2C / TWI. (Ver Nota 1)
#include "RTClib.h" //Librería para el control del módulo Reloj en tiempo real RTC I2C DS1307
/*
Nota 1:
En la mayoría de las placas Arduino, SDA (línea de datos) está en el pin analógico 4, y SCL (línea de reloj)
está en el pin analógico 5. En Arduino Mega, SDA esta en el pin digital 20 y SCL en el 21.
*/
// INICIALIZO EL RTC
RTC_DS1307 RTC;
//INICIALIZO EL CHIP MAX7219
//ESTRUDTURA DE LA FUNCIÓN: LedControl(int dataPin, int clkPin, int csPin, int numDevices);
LedControl lc=LedControl(12,11,10,1);
void setup() {
//The MAX72XX is in power-saving mode on startup, we have to do a wakeup call
 lc.shutdown(0,false);
//Set the brightness to a medium values (0~15 possible values)
 lc.setIntensity(0,2);
//and clear the display
 lc.clearDisplay(0);
//RTC Setup
Wire.begin();
 RTC.begin();
if (! RTC.isrunning()) {
Serial.print("RTC is NOT running!");
// La siguiente línea establece la fecha y la hora del RTC a la del Sketch cuando fué compilado
 RTC.adjust(DateTime(__DATE__, __TIME__));
 }
//PARA AJUSTAR LA FECHA Y LA HORA DEL RELOJ DE NUEVO TENEMOS QUE FORZAR LA SIGUIENTE LÍNEA DE PROGRAMA
//RTC.adjust(DateTime(__DATE__, __TIME__));
}
void loop() {
DateTime now = RTC.now();
int segundos1=now.second()%10;
int segundos2=(now.second()/10)%10;
 lc.setDigit(0,0,segundos1,false);
 lc.setDigit(0,1,segundos2,false);
int minutos1=now.minute()%10;
int minutos2=(now.minute()/10)%10;
 lc.setDigit(0,2,minutos1,false);
 lc.setDigit(0,3,minutos2,false);
int horas1=now.hour()%10;
int horas2=(now.hour()/10)%10;
 lc.setDigit(0,4,horas1,false);
 lc.setDigit(0,5,horas2,false);
delay(1000);
}



tauro0221

Hi,
Leistes la especificaciones del max7219 segun dice el voltaje de salida es del VCC que es max 6 voltios. Dependiendo de los LEDS que vaz a usar tienes que conciderar cuantos vaz prender con 5 voltios. La corriente max de los digitos son  500ma y la salida de los segmentos son de 100ma.

torhec2012

#6
Aug 27, 2019, 12:27 am Last Edit: Aug 27, 2019, 02:21 am by torhec2012
Buena tarde tauro0221, tienes toda la razon, con el max7219 no podre encender tiras leds de 12v, como dije anteriormente, he probado con transistores pero no he tenido exito, es por eso que acudo a pedir ayuda para saber de que manera puedo o debo contectar los transistores para poder levantar las tiras leds de 12v.

Implemente el siguiente diagrama que encontre en otro post, tomando en cuenta que ahí utilizan el modulo TM1637 y yo estoy utilizando el Max7219, suponiendo en teoría que debía de funcionar.



tauro0221

Hi,
Hay una forma facil de hacerlo y es usando 4 SN7447A para que maneje los segmentos y un MAX6969 para maneje la informacion de los 4. El SN 4746A usa un voltaje de 30 voltios con una corriente de 50ma.que es suficiente para alimentar un tira de leds. Yo estoy usando el MAX6969 para simular los leds del carro de Knight driver. Trabaja bien y es facil de programar.

torhec2012

Si no es mucha la molestia, podrias falicitarme algún diagrama, ya que ese tipos de componentes no los encuentro facilmente en mi region.

tauro0221

#9
Aug 27, 2019, 03:15 am Last Edit: Aug 29, 2019, 09:09 pm by tauro0221
Hi,
Adjunto un dibujo de mas o menos que componentes a usar y como van conectados. Las resistencia hay que calcularlas de acuerdo al cuantos leds vaz a usar y el voltaje que vaz a usar. El SN4646a va a controlar los leds que son common catodo. El MCP23017 se usa para enviar los digitos al SN4646A.y este controla el digito. Yo no le puse los nombres de los pines a usar pues no se si  vaz a usar mi sugerencia. Aqui puedes usar  tiras de leds hasta un voltaje de 30 voltios y una corriente max de 40ma. Recuerda que este circuito yo no lo he montado pues creo que tu eres el unico que lo vaz montar. Puedes contar conmigo para ayudarlte a llevarlo acabo si esa es tu decision. Tambien Adjunto un link de un sketch que explica como prender/apagar los LEDS.

https://tronixstuff.com/2011/08/26/arduino-mcp23017-tutorial/

Tuve que darle un cambio al hilo pues cometi un error al seleccional el MAX6969 ya que este no es digital. Cambie el MAX6969 por el  MCP23017 que es de 16 pin digitales. El dibujo se queda igual con excepcion del max6969.

torhec2012

Que tal buen dia, me disculpo por la gran ausencia, he estado trabajando en otros asuntos.

De acuerdo tauro0221, voy a ver de que manera consigo ese tipo de hardware para dar solucion a mi problema.
Agradezco tu ayuda, luego les comparto como me fue.

tauro0221

#11
Sep 02, 2019, 06:11 pm Last Edit: Sep 02, 2019, 06:13 pm by tauro0221
Hi,
Un consejo es de que dependiendo del voltaje de los segmentos tienes considerar cual de los dos vaz a usar. Si el voltaje es menos de 15 voltios puedes usar el 5447 y si es menor de 30 voltios entonces debe de usar el 5446. De todas meneras ambos son intercambiables  y ambos son de 40 ma. Si tienes dudas entonces usas el de 30 voltios. Ahora mismo tengo uno trabajando sin problemas usando un display de 3/4 pulgadass. Adjunto dos esquematicos del  esquematico que estoy usando para un solo display. El otro como alambrar usando 4 displays sin incluir las resistencias. Mas tarde voy a bajar una foto de como lo tengo montado.





Go Up