Naaaa simplemente perfecta explicacion. Muy buen video, esto demuestra que no hace faltan videos de una hora para poder explicar bien algo. Ademas muy prolija la programacion y se entiende. Gracias.
Buenas tardes, primero agradecer por la claridad de sus videos, permiten entender lo que se quiere mostrar, quiero usar en un pic 18f2550 por puerto I2C un display 16X2 y un teclado matricial 4x4... hay algun video para esta opcion ? Le agradesco su atencion.
Hola carlos queria hacerte una pregunta yo tengo un ds1307 que lo mismo mi duda es que en la hoja de datos veo en el esquema un cristal de 32.768 khz y queria saber si anda sin el cristal ya que el que tenia lo perdi y la unica casa de electronica cerca de mi casa es muy caro y se me hace imposible moverme para compraro en otro lado por la cuerntena establecida en Argentina por el COVID-19 Un saludo Eduardo
Hola Carlos quería saber si el pasaje puede hacer con estructura de bits más uniones Hasta el momento logro obtener la hora en Proteus desde el sistema pero no logro que se muestre en el LCD Nosé si me podes orientar en caso de que tengas conocimientos en estos dos temas mapas de bits y uniones
Carlos¡¡ una consulta tengo que hacer un proyecto con este modulo, pero como hago para guardar la hora actual justa en el DS3231 a la hora de compilar en el micro el codigo?, porque el proteus toma la hora del sistema como podria hacer para que el micro tome la hora del sistema y la almacene en el DS 3231?
Hola Daniel, en este caso tienes que utilizar algún método para configurar la hora. Puede ser mediante un teclado matricial, mediante el puerto UART o incluso mediante pulsadores. La idea es tener un periférico mediante el cual el usuario va establecer la hora actual.
Hola Carlos tengo un problema cuando desenchufo el pic y luego de enchufarlo no me actualiza la hora sino que me pone la ultima que le cargue desde el mplbax la pila que trae la medi con un tester y tiene 3.5v ¿Puede ser la pila que esta vencida ??
Hola Eduardo, tal vez estas invocando el código para cargar la hora al inicio del programa y por eso el reloj esta tomando la hora que grabaste anteriormente. Si ese no es el caso, mándame un pantalla del código al correo carlos359_7@hotmail.com
@@CarlosQL Disculpa que no te conteste antes tuve problemas con el servicio del internet A las funciones las llamo antes de entrar al while y dentro del while lo que hago es leer desde el rtc Ahora te mando una foto del código al correo que me pásate para ver si ahí un error
Una consulta amigo si quiero prender un LED a activar una carga dependiendo de la hora , minutos o segundo que yo quiera como haría.... gracias tu ayuda amigo
Hola estuve mirando el código que implementas para manejar el I2C me entro una duda cuando configuras los registros ssp para manejar la comunicación para configurar un bit especifico mencionas directamente el bit ej SSPCON2bits.SEN los demás bits del registro no se usan y se pueden poner en 0 Pregunto esto porque quiero mudar el código a otro compilador y maneja el registro completo no bit a bit Un saludo Eduardo
@@eduardoferazzi6487 Es correcto Eduardo, para mostrar una variable de tipo entera o float, primero se debe convertir a una cadena de caracteres y luego enviarlo como tal a una pantalla LCD, puedes crear una función propia para eso o usar algunas funciones del lenguaje C, como spritng()
Estamos simulando que la hora y la fecha han llegado en una cadena de caracteres, por ejemplo del puerto usar, entonces la función convertirHora lo que hace es convertir esta cadena de caracteres en números con formato bcd para guardar en el DS3231. Primero con el for le estamos quitando 0x30 para convertir ese carácter en un número entero. Por ejemplo ‘1’ es igual a 0x31 si le quitamos 0x30 mediante un AND lógico quedaría 0x01, Convertimos el carácter ‘1’ en 1 entero. Lo mismo hacemos con los seis caracteres. Luego estos numero los convertimos en BCD, ejemplo Hora[2] = 5 = 0b00000101 y Hora[3] = 00001000. Desplazamos 4 posiciones a la izquierda Hora[2] = 0b00000101
Hola carlos una cosulta recomendas usar el oscilador interno que trae un pic para un reloj Mi duda surgido ya que el oscilador interno no es tan preciso como uno externo como es el cristal de cuarzo Un saludo Eduardo
Hola Eduardo, el uso del oscilador interno, depende mucho de la aplicación que vas a realizar, inclusive del ambiente donde va estar el MCU. Si hablamos de este ejemplo, con el DS3231, no hay problema, porque el que va marcar el tiempo el el chip DS3231, y estos son muy exactos. El micro lo único que va hacer es pedir la hora y fecha al DS3231. Saludos
@@CarlosQL Si lo voy a realizar con un ds1307 que tengo ahí guardado junto con su cristal Entonces tendré en cuenta eso que si se necesita precisión usar un cristal externo Gracias
@@eduardoferazzi6487 Los DS1307 no son muy precisos, con el tiempo notaras que se ira desfasando del tiempo real. Mi recomendación es que utilices el DS3231.
Podrías hacerlo con un if, después de usar la función leer_hora() Recuerda que esta función devuelve los datos en formato BCD. Por ejemplo para encender un led a las 10:35 en formato 24 horas if(hora==0x10 && min == 0x35) { encender_led(); } Si estas usando la hora en formado am/pm, también debes incluir en la comparación el bit que indica este dato. Si quieres más pecisión también puedes incluir en la comparación los segundos. Saludos
Hola Primero que nada agradecerte por compartir tus conocimientos con todos nosotros si pedir nada a cambio segundo necesitaría orientación para cambiar el lcd 16x2 por unos display 7segmentos ya que es mas fácil conseguir los 7seg grandes que un lcd16x2 para se se pueda ver la hora y fecha desde lejos Un saludo Eduardo
Gracias por los comentarios Eduardo, en este video ya tienes el manejo del reloj, aquí te dejo el enlace del video con display de siete segementos, intenta unir los dos proyectos y conforme te surjan dudas me vas comentando th-cam.com/video/KwkjN3be9sI/w-d-xo.html
@@CarlosQL Gracias por la rápida respuesta Tendría dos dudas que tendría que haber puesto en el comentario anterior 1) Para no usar un pc para configurar la hora eliminamos los arreglos que creaste y remplazo por pulsadores y esos datos recibidos los convierto a BCD con la función creada? 2) Tengo un problema con el mplab x que tarda en abrir cundo compilo y cuando quiero cargar el código al pic puede ser una mala configuración del programa o es mi netbook Anexo las características de la netbook sistema operativo windows 10 Procesador: Intel(R) Celeron(R) CPU N2808 @ 1.58GHz (2 CPUS)~1.6GHz Memoria RAM 4GB Tarjeta grafica Intel(R) HD Graphics Si me puede ayudar se lo agradecería mucho Un saludo Eduardo
@@eduardoferazzi9753 Así es puedes crear una variable para los minutos, segundos y hora, incrementar y decrementar estas variables mediante pulsadores y luego hacer las conversiones a BDC para almacenarlo en el DS3231. Para la segundo, que programador estas usando ? si es un pickit3 también puedes descartar con el Aplicativo de pickit3 independiente
Si. Varias veces se me cerró al estar cargando y me canse y descarge el aplicativo Lo que se me hace raro es que tengo una PC con mayor recursos y aún así medio que se traba cuando lo abro cuando construyó el proyecto para general el .hex y cuando quiero cargar al pic tarda un poco luego anda todo bien
Una consulta... cuando yo quito la alimentacion del circuito el RTC o todo circuito, no se grava en la eepron del rtc la hora que de ser .... vuelve a la hora que esta en el programa ...una ayudadita amigo gracias.
Hola Jhoel, si hablamos de un RTC, como el ds1307 o DS3231, no son memorias de tipo Eprom. Estos dispositivos pueden almacenar información sin que se pierda, gracias a las pilas de 3.3 v que poseen. Las memorias EEPROM como la AT24C32, si pueden guardar información, inslusive después de estar sin energía. Existen módulos que traen ambos dispositivos un RTC y una memoria EEPROM, pero cada uno debe tener una dirección I2C diferente, para que el microcontrolador pueda comunicarse con ellos
Naaaa simplemente perfecta explicacion. Muy buen video, esto demuestra que no hace faltan videos de una hora para poder explicar bien algo. Ademas muy prolija la programacion y se entiende. Gracias.
Hola Agustin, gracias por los comentarios, un gusto que se entienda el contenido del video. Saludos
Muy buen video ... muy claro y preciso ....!!!! saludos desde Colombia ..
Gracias, estimado. Igualmente saludos desde Perú.
Gran contenido!
Gracias por los comentarios Julio. Saludos
Buenas tardes, primero agradecer por la claridad de sus videos, permiten entender lo que se quiere mostrar, quiero usar en un pic 18f2550 por puerto I2C un display 16X2 y un teclado matricial 4x4... hay algun video para esta opcion ?
Le agradesco su atencion.
Hola carlos queria hacerte una pregunta yo tengo un ds1307 que lo mismo mi duda es que en la hoja de datos veo en el esquema un cristal de 32.768 khz y queria saber si anda sin el cristal ya que el que tenia lo perdi y la unica casa de electronica cerca de mi casa es muy caro y se me hace imposible moverme para compraro en otro lado por la cuerntena establecida en Argentina por el COVID-19
Un saludo
Eduardo
Hola Eduardo, lamentablemente el ds1307 necesita del cristal para poder funcionar
Hola Carlos quería saber si el pasaje puede hacer con estructura de bits más uniones
Hasta el momento logro obtener la hora en Proteus desde el sistema pero no logro que se muestre en el LCD
Nosé si me podes orientar en caso de que tengas conocimientos en estos dos temas mapas de bits y uniones
Carlos¡¡ una consulta tengo que hacer un proyecto con este modulo, pero como hago para guardar la hora actual justa en el DS3231 a la hora de compilar en el micro el codigo?, porque el proteus toma la hora del sistema como podria hacer para que el micro tome la hora del sistema y la almacene en el DS 3231?
Hola Daniel, en este caso tienes que utilizar algún método para configurar la hora. Puede ser mediante un teclado matricial, mediante el puerto UART o incluso mediante pulsadores. La idea es tener un periférico mediante el cual el usuario va establecer la hora actual.
@@CarlosQL gracias por responder Carlos, si en mi caso la idea era tomarlo directamente pero veré lo del puerto UART, gracias Carlos¡¡¡
Hola quisiera saber si tiene un tutotial o si podrias hacer para manerar por SPI el modulo RFID RC522
Un saludo
Eduardo
Hola Eduardo, me doy un tiempo y hago un video del tema, porque me parece muy interesante. Saludos
@@CarlosQL Gracias
Hola Carlos tengo un problema cuando desenchufo el pic y luego de enchufarlo no me actualiza la hora sino que me pone la ultima que le cargue desde el mplbax la pila que trae la medi con un tester y tiene 3.5v ¿Puede ser la pila que esta vencida ??
Hola Eduardo, tal vez estas invocando el código para cargar la hora al inicio del programa y por eso el reloj esta tomando la hora que grabaste anteriormente. Si ese no es el caso, mándame un pantalla del código al correo carlos359_7@hotmail.com
@@CarlosQL Disculpa que no te conteste antes tuve problemas con el servicio del internet
A las funciones las llamo antes de entrar al while y dentro del while lo que hago es leer desde el rtc
Ahora te mando una foto del código al correo que me pásate para ver si ahí un error
Una consulta amigo si quiero prender un LED a activar una carga dependiendo de la hora , minutos o segundo que yo quiera como haría.... gracias tu ayuda amigo
Hola estuve mirando el código que implementas para manejar el I2C me entro una duda cuando configuras los registros ssp para manejar la comunicación para configurar un bit especifico mencionas directamente el bit ej SSPCON2bits.SEN los demás bits del registro no se usan y se pueden poner en 0
Pregunto esto porque quiero mudar el código a otro compilador y maneja el registro completo no bit a bit
Un saludo
Eduardo
Hola Eduardo, efectivamente los bits que no manipulo, tienen el valor por defecto en 0x00
@@CarlosQL Gracias. Una consulta mas para imprimir las variable por el lcd se puede mostrar asi nomas o hay que pasarlas a caracter primero
@@eduardoferazzi6487 Es correcto Eduardo, para mostrar una variable de tipo entera o float, primero se debe convertir a una cadena de caracteres y luego enviarlo como tal a una pantalla LCD, puedes crear una función propia para eso o usar algunas funciones del lenguaje C, como spritng()
@@CarlosQL Gracias por eso no me mostraba nada
Podrías hablar sobre las pantallas oled para usarlo en el pic18f4550
muchas gracias Carlos !! se podría hacer esto aplicando las funciones del mcc, cuando tengas tiempo. un saludo desde Buenos Aires Argentina
Gracias por los comentarios Fernando, también tocare esos temas. Saludos de Lima, Perú
una pregunta la función "CONVERTIRHORA" el lazo for que función tiene ????? podrías explicar esa parte del código seria de mucha ayuda para entender.
Estamos simulando que la hora y la fecha han llegado en una cadena de caracteres, por ejemplo del puerto usar, entonces la función convertirHora lo que hace es convertir esta cadena de caracteres en números con formato bcd para guardar en el DS3231.
Primero con el for le estamos quitando 0x30 para convertir ese carácter en un número entero. Por ejemplo ‘1’ es igual a 0x31 si le quitamos 0x30 mediante un AND lógico quedaría 0x01, Convertimos el carácter ‘1’ en 1 entero. Lo mismo hacemos con los seis caracteres.
Luego estos numero los convertimos en BCD, ejemplo Hora[2] = 5 = 0b00000101 y Hora[3] = 00001000.
Desplazamos 4 posiciones a la izquierda Hora[2] = 0b00000101
amigo estan muy didacticos tus videos, me pregunto si podrias hacer algun tutorial del protocolo SPI, gracias
Gracias por los comentarios Diego. Me comprometo a tocar el tema de SPI con PIC. Saludos.
Hola carlos una cosulta recomendas usar el oscilador interno que trae un pic para un reloj
Mi duda surgido ya que el oscilador interno no es tan preciso como uno externo como es el cristal de cuarzo
Un saludo
Eduardo
Hola Eduardo, el uso del oscilador interno, depende mucho de la aplicación que vas a realizar, inclusive del ambiente donde va estar el MCU. Si hablamos de este ejemplo, con el DS3231, no hay problema, porque el que va marcar el tiempo el el chip DS3231, y estos son muy exactos. El micro lo único que va hacer es pedir la hora y fecha al DS3231. Saludos
@@CarlosQL Si lo voy a realizar con un ds1307 que tengo ahí guardado junto con su cristal
Entonces tendré en cuenta eso que si se necesita precisión usar un cristal externo
Gracias
@@eduardoferazzi6487 Los DS1307 no son muy precisos, con el tiempo notaras que se ira desfasando del tiempo real. Mi recomendación es que utilices el DS3231.
@@CarlosQL excelente lo cambiare
@@CarlosQL Por ahi la pregunta es tonta tendrás un video donde expliques a detalle las funciones que desarrollaste para el manejo del LCD
tengo un pregunta, como configuras las alarmas es que eso no lo entiendo
eh estado intentando pero no logro hacer que una alarma me encienda un led no puedo configurarla
una pregunta como haria para prender un led la hora que yo quiero
gracias
Podrías hacerlo con un if, después de usar la función leer_hora() Recuerda que esta función devuelve los datos en formato BCD. Por ejemplo para encender un led a las 10:35
en formato 24 horas
if(hora==0x10 && min == 0x35)
{
encender_led();
}
Si estas usando la hora en formado am/pm, también debes incluir en la comparación el bit que indica este dato. Si quieres más pecisión también puedes incluir en la comparación los segundos.
Saludos
Gracias amigo muchas gracias
Hola
Primero que nada agradecerte por compartir tus conocimientos con todos nosotros si pedir nada a cambio segundo
necesitaría orientación para cambiar el lcd 16x2 por unos display 7segmentos ya que es mas fácil conseguir los 7seg grandes que un lcd16x2 para se se pueda ver la hora y fecha desde lejos
Un saludo
Eduardo
Gracias por los comentarios Eduardo, en este video ya tienes el manejo del reloj, aquí te dejo el enlace del video con display de siete segementos, intenta unir los dos proyectos y conforme te surjan dudas me vas comentando th-cam.com/video/KwkjN3be9sI/w-d-xo.html
@@CarlosQL Gracias por la rápida respuesta
Tendría dos dudas que tendría que haber puesto en el comentario anterior
1) Para no usar un pc para configurar la hora eliminamos los arreglos que creaste y remplazo por pulsadores y esos datos recibidos los convierto a BCD con la función creada?
2) Tengo un problema con el mplab x que tarda en abrir cundo compilo y cuando quiero cargar el código al pic puede ser una mala configuración del programa o es mi netbook
Anexo las características de la netbook
sistema operativo windows 10
Procesador: Intel(R) Celeron(R) CPU N2808 @ 1.58GHz (2 CPUS)~1.6GHz
Memoria RAM 4GB
Tarjeta grafica Intel(R) HD Graphics
Si me puede ayudar se lo agradecería mucho
Un saludo
Eduardo
@@eduardoferazzi9753 Así es puedes crear una variable para los minutos, segundos y hora, incrementar y decrementar estas variables mediante pulsadores y luego hacer las conversiones a BDC para almacenarlo en el DS3231. Para la segundo, que programador estas usando ? si es un pickit3 también puedes descartar con el Aplicativo de pickit3 independiente
Si. Varias veces se me cerró al estar cargando y me canse y descarge el aplicativo
Lo que se me hace raro es que tengo una PC con mayor recursos y aún así medio que se traba cuando lo abro cuando construyó el proyecto para general el .hex y cuando quiero cargar al pic tarda un poco luego anda todo bien
@@eduardoferazzi9753 Eso esta raro, yo tengo la última versión de mplab x, la 5.35, las últimas versiones están más pesadas.
Una consulta... cuando yo quito la alimentacion del circuito el RTC o todo circuito, no se grava en la eepron del rtc la hora que de ser .... vuelve a la hora que esta en el programa ...una ayudadita amigo gracias.
Hola Jhoel, si hablamos de un RTC, como el ds1307 o DS3231, no son memorias de tipo Eprom. Estos dispositivos pueden almacenar información sin que se pierda, gracias a las pilas de 3.3 v que poseen. Las memorias EEPROM como la AT24C32, si pueden guardar información, inslusive después de estar sin energía. Existen módulos que traen ambos dispositivos un RTC y una memoria EEPROM, pero cada uno debe tener una dirección I2C diferente, para que el microcontrolador pueda comunicarse con ellos
Mira yo estoy trabajando con el modulo rtc ds3231 y el pic 16f876a
@@jhoelventuragil2180 en este caso para que el RTC almacene la hora cuando esta sin energía, es asegurandote que el módulo tenga la pila de 3.3V.
Claro tiene una pila
Boy a revisar el código ... muchas gracias por tu ayuda amigo
cONSULTA donde adquiriste la placa o como se llama ?
Es un diseño propio.
@@CarlosQL Muy buena tenes los archivos ?
@@thecubeprojects dame un correo para mandarte los archivos, saludos
@@CarlosQL Si te lo dejo thecubeprojects@gmail.com Muchas gracias !