Mensajes recientes

Páginas: 1 2 3 4 5 6 7 8 9 [10]
91
Simuladores de circuitos / Re:¿Porque no funciona este circuito de visualizar 7 segmentos?
« Último mensaje por DominusDRR en 17 de Abril de 2026, 17:27:00 »
Hola a todos,
De nuevo con una nueva petición de ayuda para ver como puedo conseguir el poder visualizar el valor de 2 contadores en 2 pares de displays de 7 segmentos de ánodo común y alimentados a 12V.

Para el proyecto parte de un esquema realizado con un pic16F870, 4 displays de cátodo común y un driver para los displays del tipo MAX7219. Con esta configuración lo pruebo en Proteus y en físico y funciona perfectamente. Ver imagen adjunta marcada como "PRUEBA OK"

Esa configuración la modifico para visualizar los datos en los displays de ánodo común, pero para ello, dado que el MAX7219, esta pensado para trabajar solo con cátodo común, lo que realizo es la inversión de todas las salidas del MAX7219 de forma que:

1º.- Cambio los display al tipo de ánodo común tanto en físico como en Proteus.
2º.- Para la activación de los datos de los segmentos, los datos los hago pasar por un ULN2803 y de la salida de este al cátodo de cada segmento de cada display.
3º.- Para la habilitación y control de del multiplexado de cada display, monto el arreglo de transistores adjunto captura del esquema Proteus. No puedo adjuntar el fichero de Proteus ya que me indica que es muy grande.
 

El resultado es que en físico no funciona y evidentemente en simulación tampoco. Los display aparecen fluctuando y cuando se trabaja sobre los pulsadores para subir y bajar el valor de los contadores, no cambian nunca de valor (aunque estén fluctuando los displays)
Tambien he probado retirando, en Proteus, los displays y los he sustituido por arreglos de leds para cada segmento.
Además he probado la lógica del arreglo de transistores y del ULN2803 aparte, de manera individual, sin el microcontrolador y sin el MAX7219 y responden perfectamente a cada pulso que se da, de forma manual, a cada segmento y display.

El programa del micro controlador es el mismo en ambos casos.

A ver si alguien me puede decir donde esta el error.

F.

Tal vez deberías compartir la parte del código que muestras información hacia los display.
92
Simuladores de circuitos / ¿Porque no funciona este circuito de visualizar 7 segmentos?
« Último mensaje por Fer_TACA en 17 de Abril de 2026, 10:50:19 »
Hola a todos,
De nuevo con una nueva petición de ayuda para ver como puedo conseguir el poder visualizar el valor de 2 contadores en 2 pares de displays de 7 segmentos de ánodo común y alimentados a 12V.

Para el proyecto parte de un esquema realizado con un pic16F870, 4 displays de cátodo común y un driver para los displays del tipo MAX7219. Con esta configuración lo pruebo en Proteus y en físico y funciona perfectamente. Ver imagen adjunta marcada como "PRUEBA OK"

Esa configuración la modifico para visualizar los datos en los displays de ánodo común, pero para ello, dado que el MAX7219, esta pensado para trabajar solo con cátodo común, lo que realizo es la inversión de todas las salidas del MAX7219 de forma que:

1º.- Cambio los display al tipo de ánodo común tanto en físico como en Proteus.
2º.- Para la activación de los datos de los segmentos, los datos los hago pasar por un ULN2803 y de la salida de este al cátodo de cada segmento de cada display.
3º.- Para la habilitación y control de del multiplexado de cada display, monto el arreglo de transistores adjunto captura del esquema Proteus. No puedo adjuntar el fichero de Proteus ya que me indica que es muy grande.
 

El resultado es que en físico no funciona y evidentemente en simulación tampoco. Los display aparecen fluctuando y cuando se trabaja sobre los pulsadores para subir y bajar el valor de los contadores, no cambian nunca de valor (aunque estén fluctuando los displays)
Tambien he probado retirando, en Proteus, los displays y los he sustituido por arreglos de leds para cada segmento.
Además he probado la lógica del arreglo de transistores y del ULN2803 aparte, de manera individual, sin el microcontrolador y sin el MAX7219 y responden perfectamente a cada pulso que se da, de forma manual, a cada segmento y display.

El programa del micro controlador es el mismo en ambos casos.

A ver si alguien me puede decir donde esta el error.

F.
93
Simuladores de circuitos / Re:Duda y Aclaración de funcionamiento
« Último mensaje por dogflu66 en 12 de Abril de 2026, 14:05:06 »
Todos los días aprendemos algo, ni me di cuenta :mrgreen:
94
Simuladores de circuitos / Re:Duda y Aclaración de funcionamiento
« Último mensaje por Fer_TACA en 12 de Abril de 2026, 13:16:38 »
Gracias Eduardo por la respuesta.
No sé en qué estaría pensando, es obvio que es por eso.

F .
95
Simuladores de circuitos / Re:Duda y Aclaración de funcionamiento
« Último mensaje por Eduardo2 en 12 de Abril de 2026, 11:41:37 »
El ULN2803 es un inversor con salida de colector abierto. 
- Con 0V en la entrada la salida queda en alta impedancia.
- A traves de R9 recibe los 5V de VDD .

96
Simuladores de circuitos / Re:Duda y Aclaración de funcionamiento
« Último mensaje por dogflu66 en 12 de Abril de 2026, 10:36:22 »
Asegúrate que el simulador está teniendo en cuenta que el pin 9 esta conectado a masa, no se me ocurre otra cosa.
97
Simuladores de circuitos / Duda y Aclaración de funcionamiento
« Último mensaje por Fer_TACA en 12 de Abril de 2026, 07:23:39 »
Hola a todos.
tengo el circuito adjunto y agradecería que alguien me pudiera indicar porque la medida indicada en el voltímetro resaltado en rojo se queda mostrando un valor de 5V.

Gracias de antemano

F.
98
Conexión electrica del módulo HW-084 con el Pic18F46K22:
99
🔧 Módulo (I²C) con RTC DS3231 y E²PROM 24C32
Librería desarrollada para trabajar con módulos que integran el circuito integrado DS3231.
Incluye librería y ejemplos de prueba.

El módulo utilizado en esta practica se puede encontrar con el nombre de HW-084.

Versión probada con:
• Microcontrolador: PIC18F46K22 @ 64 MHz
• Tarjeta entrenadora: HL-K18
• Entorno de desarrollo: PIC18 Basic Compiler v6.10

Este popular módulo está pensado para realizar practicas de comunicación I2C, y contiene un chip DS3231M, un zócalo integrado en la PCB para insertar una batería recargable para mantener activo el reloj, y otro chip independiente que es una memoria E²PROM tipo 24C32.
El DS3231 es un reloj en tiempo real (RTC) de alta precisión y bajo coste, que integra un oscilador interno compensado por temperatura (TCXO) junto con su cristal, lo que mejora notablemente la estabilidad y reduce la necesidad de componentes externos.
Este dispositivo dispone de una entrada para batería de respaldo, lo que le permite mantener la hora incluso cuando se pierde la alimentación principal.


🧠 Características principales del DS3231
    • Comunicación mediante bus I²C (hasta 400 kHz).
    • Reloj/calendario completo:
        ◦ segundos, minutos, horas.
        ◦ día, fecha, mes y año.
        ◦ compensación automática de meses y años bisiestos (hasta 2100).
    • Formato de hora:
        ◦ 24 horas.
        ◦ 12 horas con AM/PM.
    • Alta precisión:
        ◦ ±2 ppm (≈ ±1 minuto/año en 0–40 °C).
    • Oscilador interno compensado en temperatura (TCXO).
    • Sensor de temperatura integrado (±3 °C), accesible por I²C.
    • Pin 32Khz: salida 32768hz.
    • Pin _INT/SQW salida configurable:
        ◦ Puede funcionar como salida de onda cuadrada (una o varias frecuencias dependiente de la versión del chip).
        ◦ O como salida de interrupción por alarma, activa a nivel bajo (dispone de dos alarmas independientes sobre el mismo pin).
        ◦ Nota: ambas funciones son mutuamente excluyentes:
            ▪ Si el pin se configura como onda cuadrada, no se pueden utilizar las alarmas.
            ▪ Si se configura como salida de alarma, no se puede usar como generador de onda cuadrada.
    • Pin _RST: no implementado en el módulo.
        ◦ salida de reset por fallo de alimentación.
        ◦ entrada para reset manual del microcontrolador.
    • Detección automática de fallo de alimentación y conmutación a batería.
    • Dirección base I2C para la comunicación con RTC DS3231: 0xD0.
⚠️ Nota importante sobre versiones

Existen varias versiones del chip:
    • DS3231SN → mayor precisión, salida SQW configurable (1 Hz, 1.024 kHz, 4.096 kHz, 8.192 kHz) .
    • DS3231M → menor precisión, salida SQW solo 1 Hz.
Conviene comprobar qué versión monta el módulo.

📦 Características del módulo HW-084
    • Tensión de alimentación: 3,3 V – 5,5 V
    • Chip RTC: DS3231M 
    • Zócalo para batería de respaldo del RTC.
    • EEPROM integrada: AT24C32 (32 Kbit = 4 KB)

🧩 EEPROM AT24C32
    • Capacidad: 32 Kbit (4 KB).
    • Dirección I²C base en el módulo: 0x57.
    • Dirección I2C configurable mediante pines A0/A1/A2.
    • Necesita librerías anteriormente publicadas:
    • _I2CLib.bas y _AT24C32Lib.bas.

🔋 Batería de respaldo
El módulo está preparado para usar una batería tipo LIR2032 (recargable), que mantiene el reloj en funcionamiento en ausencia de alimentación principal.
⚠️ Nota: algunos módulos están diseñados para baterías no recargables (CR2032). Conviene revisar si el circuito incluye circuito de carga que suele estar compuesto por una resistencia y un diodo.

🔌 Conexión típica (ejemplo I2C mediante módulo interno MSSP):
Módulo -- Pic
VCC ----- 5V
GND ----- GND
SDA ----- C4 (MSSP)
SCL ----- C3 (MSSP)

🔹 Librería

Librerías necesarias:
📡 Librería I2C para PIC18F46K22 usando MSSP1
Esta librería proporciona funciones esenciales para gestionar la comunicación I2C en modo maestro utilizando el módulo MSSP1 del PIC18F46K22. Incluye inicialización, lectura, escritura y control de transacciones I2C, tales como señales START, STOP y RESTART. Está diseñada para trabajar con dispositivos esclavos I2C como memorias EEPROM, sensores o RTCs.
    • Init_I2C: Inicializa el módulo MSSP1 en modo maestro I2C y configura la velocidad del reloj.
    • START_I2C: Envía una condición START para iniciar la comunicación en el bus I2C.
    • STOP_I2C: Envía una condición STOP para finalizar una transacción en el bus I2C.
    • ReStart_I2C: Envía una condición RESTART para continuar una transacción sin finalizarla.
    • WRITE_I2C: Escribe un byte en el bus I2C y verifica la recepción de ACK por parte del dispositivo esclavo.
    • READ_I2C: Lee un byte del bus I2C y envía un ACK o NACK tras la lectura.
    • WriteDevice_I2C: Envía la dirección del esclavo y escribe datos en el dispositivo mediante I2C.
    • ReadDevice_I2C: Envía la dirección del esclavo y lee un byte desde el dispositivo mediante I2C.

🕒 Librería DS3231 para PIC18 Basic (I2C)
Esta librería permite la comunicación con el módulo de reloj en tiempo real DS3231 (RTC), proporcionando funciones para leer, escribir y configurar el reloj. Incluye soporte para formatos de 12 y 24 horas, modos AM/PM, control de las salidas de onda cuadrada y programación de las dos alarmas internas del chip.
    • Const DS3231_ADDR = 0xD0: asigna dirección base del dispositivo.
     
    • DS3231_Init: inicializa el DS3231 verificando y reiniciando el oscilador si es necesario.
    • DS3231_Set_24h: configura el DS3231 en modo de 24 horas.
    • DS3231_Set_12h: configura el DS3231 en modo de 12 horas.
    • DS3231_Set_AM_PM: establece el modo AM o PM en formato de 12 horas.
    • DS3231_Get_AM_PM_24h: obtiene el modo actual AM/PM/24h.
    • DS3231_Set_DateTime: configura la fecha y hora en el DS3231.
    • DS3231_Get_Date: lee la fecha actual del DS3231.
    • DS3231_Get_Time: lee la hora actual del DS3231.
    • DS3231_Set_Hour: establece la hora en el DS3231, asegurando compatibilidad con el modo horario actual (12h/24h).
    • DS3231_Set_Minutes: establece los minutos en el DS3231.
    • DS3231_Set_Seconds: establece los segundos en el DS3231.
    • DS3231_Set_DayOfWeek: establece el día de la semana en el DS3231.
    • DS3231_Get_DayOfWeek: lee el día de la semana del DS3231.
    • DS3231_SquareWave: activa/desactiva la salida _INT/SQW de onda cuadrada del DS3231 y configura su frecuencia.
    • DS3231_32Khz: activa la salida 32Khz.
    • DS3231_ReadTemperature: devuelve una lectura de temperatura.
    • DS3231_SetAlarm1: establece la alarma interna 1.
    • DS3231_EnableAlarm1: On/Off alarma 1.
    • DS3231_SetAlarm2: establece la alarma interna 2.
    • DS3231_EnableAlarm2: On/Off alarma 2.
    • DS3231_ClearAlarmFlags: borra los flags de las alarmas.
    • DS3231_Write: envía un comando y datos al DS3231 en el registro especificado.
    • DS3231_Read: lee un byte de datos del registro especificado del DS3231.


💾 Librería EEPROM AT24C32 para PIC18 Basic (I2C)
Dirección base I²C en el módulo: 0x57.
En la librería "_AT24C32Lib.bas" editar la nueva dirección base de la E2Prom para este módulo:
' I2C address of the AT24C32 EEPROM (0x57 is the base address).
Const AT24C32_ADDR = 0x57

📂 Archivos incluidos:
• Test RTC DS3231.bas: código de test (rutina principal).
• _Pic18F46K22Lib.bas: librería para facilitar la configuración Pic18F46K22.
• _I2CLib.bas: librería para facilitar la configuración y control I2C hardware.
• _DS3231Lib.bas: librería especifica para el control del DS3231.
Los resultados se muestran por UART.


Salida de datos por consola serie:


100
Off Topic / Re:informacion sobre un curso de la editorial F&G Editores
« Último mensaje por Gusfavio en 07 de Abril de 2026, 15:21:46 »
Alguien aquí podría volver a compartir los 4 libros? Todos los enlaces están caídos
Páginas: 1 2 3 4 5 6 7 8 9 [10]
anything