❤️ Curso de PIC 👉 goo.gl/5riyKn 🧡 Descargar CODIGO 👉 bit.ly/2lxNYlY 🧡 Explicación del I2C 👉 bit.ly/2lARHPR 💙Curso de ARDUINO👉 bit.ly/2q7Ln1c 😱 Como ser Experto en PIC en 7 Días 👉 bit.ly/2OTkNry ⏱ MARCAS DE TIEMPO ⏱ 00:00 LCD via I2C con PIC 01:24 Interfaz LCD I2C 04:10 Librería I2C_FLEX_LCD 06:00 Configuración de la Librería 07:06 Pines A0, A1, A2 (Dirección i2c) 09:17 Funciones de la Librería 10:04 Circuito de Ejemplo 12:20 Código en CCS C 14:14 Revisión del código de la Librería 17:04 Void main() 19:01 Programación del PIC 21:00 Funcionamiento LCD16x2 21:50 Funcionamiento LCD20x4
Como siempre, tus vídeos son Fascinantes Sergio, nunca me pierdo los Vídeos de PIC Excelente aporte, no sabía esto, y quedé fascinado, gracias por el aporte, espero más vídeos así! Saludos ✌
Probé este código en un PIC 16F887 sin problemas. Sin embargo, no me funciona en un PIC 16F877A. Supongo que la librería i2c_Flex_LCD no es compatible con este último PIC.
Hola, muy buen vídeo me funciono, lo implemente para controlar varios lcd con un solo pic, el problema esque no busco como hacer que se ejecuten al mismo tiempo:(, si que va por ciclos
Gracias por tus vídeos. Seria bueno que hicieras un vídeo donde enseñes a adaptar las librerías de arduino de algunos sensores que usan la comunicación I2C, ya que hay pocos programas en Internet con esos sensores para pic, por ejemplo, el sensor de color RGB TCS34725 no hay librería de ese sensor para pic pero si para arduino.
Hola amigo me funciono excelente el video solo quisiera saber como hacer para crear caracteres personalizados con esta libreria no se si puedas ayudarme con eso, e intentado varias formas pero no logro que aparezcan.
Hola, excelente video y muy funcional la librería de comunicación I2C, ya que nos va liberar puertos disponibles del PIC pero nos limita un poco ya que solo es funcional para enviar datos al lcd, pero no me permite hacer lectura de datos desde el lcd, es posible implementar la función lcd_getc para la comunicación I2C. Gracias por todo la información y conocimientos que compartes y por una pronta respuesta.
Me funciono a la perfeccion!, muchas gracias, solo una duda, como se podrian colocar caracteres personalizados con esta libreria?, fuera de los demas, me encanto esta libreria, saludos
Señor Sergio, la libreria usada "emula" la comunicacion I2C o es necesario que el microcontrolador usado tenga el módulo I2C ...? ya que en su ejemplo con el PIC16F628A dicho microcontrolador no tiene el modulo I2C ...
Amigo. Sería muy bueno que explicarás lo mismo pero con un LCD gráfico, ya que no existe data en Internet sobre cómo simular un glcd 128x64 con pic usando el bus i2c en proteus. Es como que no se pudiera. No lo sé. Serías el primero en explicarlo en todo internet. Yo no eh podido lograr que funcione.
Hola Sergio muy interesante, le quería consultar lo siguiente, yo tengo que armar una especie como terminal serial y quiero usar un teclado matricial y tengo un LCD I2c,la idea es conectar a un proyecto realizado en la cual tengo que cambiar una información esta basado en códigos DTMF ,entonces la idea es visualizar los datos entregado por el teclado matricial, de todo lo que he visto en la red está relacionado con un teclado y la pantalla I2c de forma directa la programación funciona y visualiza las funciones que está realizando directamente. Donde pudría encontrar algo parecido Gracias .Saludos
Hola, una duda, por qué no agregaste los capacitores en el diagrama y en la implementación? Y la otra duda la resistencia que conectas al pin 1 es necesaria para la programación icsp?
Los capacitores del cristal??? es porque no los tenia, es recomendable ponerlos para aumentar la precisión del cristal, debería haberlos colocado por lo menos en el diagrama, pero si están en el primer diagrama, al comienzo de la entrada. La resistencia no es necesaria para el icsp, es para colocar el master clear a positivo y no se reinicie el PIC, puedes deshabilitarlo por código si lo deseas en #fuses nowdt.
hola amigo quetal ? espero que estés protegido de corona ...:) muchas gracias por tu apoyos !!! una consulta es posible hacer el video explicativo de librería de lcd? saludos que tenga un buen dia ... te recomiendo consumir curcuma para proteger de bacterias y aumentar la defensa corporal.
Pide que me loguee con faceboo, o Google, no quiero compartir mis datos.. Reedito,visto el vídeo que me mandaste lo veo aceptable, es que hay que tener cuidado con estos temas.
Revisando, quiero trabajar con la libreria en el XC8 de MPLAB; pero me marca errores de la libreria i2c_Flex_LCD.c ya que se dirigue hacia unas subrutinas, creo que falta agregar la libreria "20X4_LCD_I2C_DRIVER.h", me podrias ayudar por favor
Yo tengo la misma pregunta por qué estoy utilizando Spi, y los dos pines lo tengo ocupados y no creo q funcione el i2c. He leído que se puede configurar por software, alguien sabe acerca de eso?
Buen dia, espero me pueda ayudar, en un programa que genera pwm hago el uso de lcds por medio de i2c, la cosa es que en la configuracion al iniciar las lcd, no me genera el pwm, y al comentar estas lineas si se hace el pwm, que podría ser :(
Hola, oye tengo una pregunta, al implementar este protocolo, puedes también mostrar datos de algún tipo de sensor? porque he intentado y no me funciona para nada, saludos.
Hola Jorge, no entiendo porque no te funciona. Primero que todo, los mensajes normales se te muestran correctamente en el LCD??? Probaste colocar el printf?? Te dejo un ejemplo para mostrar una variable que sea del tipo FLOAT llamada sensor. Imagino ya hiciste la conversión de bits a float de tu sensor. printf(lcd_putc,"Temperatura: %f",sensor); Probaste usar ese comando? Saludos!!
@@SergioACGiraldo Hola, ya logré el muestreo de datos de un sensor mediante este protocolo, basado en tu código, o más bien usando la librería y funciones que aparecen en tu video, mil gracias, una que otra cosita ya le modificaré yo, saludos
BUENOS DIAS, al copilar el codigo me salta un error en libreria del delay_ms(50) lo pongo como comentario y salta error del delay_us(2) tambien lo pongo comentario y se repite hasta que comento todos los delay, como puedo solucionarlo? sera que hace falta la libreria delay.h
Buenas tardes Sergio disculpa yo tengo el mismo integrado de i2c y seguí todo además he hecho algunos cambios pero aún así no me muestra el texto solo me realiza lo que supuestamente hace el código que crees que pueda ser?
@@SergioACGiraldo si no sé si tenga que ver qué programo con bootloader? No sé si tengas algún lugar donde te pudiera enviar un vídeo y es que no sé si soy yo o a ti te paso algo similar ví en tu vídeo que en la parte donde ajustas el contraste se contar y primero no se ve nada pero en la otra toma ya de ve
@@SergioACGiraldo sabes lo único que hace es activar los pixeles y se que trabaja por qué hace la función del apagado y encendido del led de retroiluminacion
@@SergioACGiraldo yes I see.. but often (always) you have to put pull up resistor (value's based on simple formula) to sda and scl lines.. in certain PIC you can enable those by code.. is a low level part of code maybe you have generate it by some code configurator..
Yes, you are right. You can note that I used the I2C LCD module (usually used with Arduino) if you see the last circuit on the website (link on the video description) You will see the two pull up resistors by hardware implemented into the I2C LCD module. So, you only need to connect the microcontroller pins on the module and you don't need to activate the pull-up resistors by software. regards.
Hola, te hago una consulta, tengo tu mismo codigo, en proteus me simula todo bien pero cuando lo cargo en el pic el LCD se me queda en azul y no hace nada, tenes idea que puede ser? Gracias!
@@SergioACGiraldo El el modulo i2c va directo al PIC? ya tiene las resistencias de pullup incluida? Busque y sigó sin lograr mostrar algo en el LCD, queda prendido y nada más. Tengo absolutamente el mismo codigo que ustede!!
@@catrielmiceli8397 si el PIC va directo al módulo I2C dado que las resistencias pullup se encuentran dentro del módulo, como puedes apreciarlo en el circuito que se encuentra disponible en el sitio web. De forma general no he recibido comentários reportando problemas de implementación de la práctica, solo al comienzo algunas personas tuvieron problemas pero después corregí una linea en el código y desde entonces parece ejecutar bien. Igual como ves en el video a mi me funciona adecuadamente. Has provado talvez el módulo con arduino? para verificar que el módulo se encuentre en correctas condiciones.
Enserio? que interrupciones estás corriendo? Yo he realizado interrupciones con los Timers y comunicación serial usando esta librería y no he tenido inconvenientes.
@@SergioACGiraldo Francisco tiene razón. No se pueden ejecutar interrupciones por cambios de Estado (INT_IOC_B4, por ejemplo) y en Proteus te tira la advertencia clásica "Simulation is not running in real time due to excessive CPU Load."
@@elementalwattson mmm pero solo simulado? Lo has implementado para ver si te funciona? Lo digo es porque por ejemplo en mi curso de controladores con PIC (bit.ly/Control_PIC) yo uso las interrupciones por desbordamiento por timer y por recepción serial junto con esta librería del LCD I2C y me trabajó sin problemas en el 18F4550. Simulado no lo he hecho pero en el montaje fisico desarrollé todo el curso.
@@SergioACGiraldo I have tried that but It seems 16F628a doesn't have SCL SDA pins, so I couldn't make it whatever I tried, make me so sad for long days I'm trying to make that
If your PIC doesn't have an MSSP module, the CCS compiler will generate code for a software i2c Master on the pins that you specify in the #use i2c() statement. But, you can't do an i2c slave. The #use i2c() statement requires a hardware SSP or MSSP module to do a i2c slave. So for a 16F628 you can make: #include #fuses XT,NOWDT,PUT,NOBROWNOUT,NOLVP #use delay(clock=4000000) #use i2c(Master,Fast=100000, sda=PIN_A2, scl=PIN_A3,force_sw) #include "i2c_Flex_LCD.c" Remember to put the "i2c_Flex_LCD.c" library in the same folder of the project. Also, you need to put the MCLR (pin5) to Vcc. In this specific example, I used an external crystal of 4MHz. I implemented it in proteus and it worked. In the web site, you can download the proteus file, You only to need to replace the PIC18F4550 to PIC16F628A and connect the PIN A2 and A3 as SDA and SCL respectively
@@SergioACGiraldo Dear Segio, I'm writing this for your information, after 2 days I still couldn't make it. I tried the adress its supposed to be, everything is fine but no.. But thank you for your effort and answer again. I'm giving up with 16f628, too much effort but nothing happening with this pic regarding i2c Lcd
Hola, Yo he intentado hacerlo funcionar con un PIC18F45k50, y no me genera ninguna impresión he modificado el inicio de mi código pero sin exito alguno.
Hola Juan Carlos, creo que te había respondido en el blog. Hace 2 dias modifiqué la librería, la volviste a descargar? La librería tenia un error que ya corregí. Incluso coloqué la simulación en Proteus. bit.ly/2lxNYlY
Si ya corre muy bien muchas gracias. Cuál era la falla? Me dijeron que tal vez podía ser el valor de los pines B0 y B1 que no se establecía como sda y SCL pero no tengo idea.
Muy buen video, estoy teniendo problemas para realizar la mensura de distancia con dos sensores de distancias ultrasónicos te dejo mi correo para pasarte el código (martin.rodriguez@estudiantes.utec.edu.uy) saludos.
@@SergioACGiraldo no, me refiero a los comandos en su forma "pura" no desde una librería, es decir, por ejemplo en la inicialización para interfaz de 8 bits: encender la lcd --> esperar más de 15ms --> rs=0 rw=0 y el bus de datos le ingresas un 0x30 hexadecimal, etc..... a eso me refiero con los comandos (0x30) bueno lo que pasa es que yo lo programo en ensamblador, solo quería saber como cambiaban esos comando ahora con el modulo I2C, pero en fin ya lo descifré, con ayuda del multímetro encontré que P0=RS, P1=R/W, P2= ENABLE, y P = DB por lo tanto es una interfaz de 4 bits, con eso es suficiente para saber enviar los nuevos comandos a la LCD mediante I2C.
@@ing.oscarcortez Excelente Esimio, que bueno que lo has solucionado. Efectivamente todo el procedimiento que describes el cual haces en ensamblador hablé un poco sobre él en el min 15:04 y en este caso se una una comunicación a 4 bits con el lcd. Éxitos!
❤️ Curso de PIC 👉 goo.gl/5riyKn
🧡 Descargar CODIGO 👉 bit.ly/2lxNYlY
🧡 Explicación del I2C 👉 bit.ly/2lARHPR
💙Curso de ARDUINO👉 bit.ly/2q7Ln1c
😱 Como ser Experto en PIC en 7 Días 👉 bit.ly/2OTkNry
⏱ MARCAS DE TIEMPO ⏱
00:00 LCD via I2C con PIC
01:24 Interfaz LCD I2C
04:10 Librería I2C_FLEX_LCD
06:00 Configuración de la Librería
07:06 Pines A0, A1, A2 (Dirección i2c)
09:17 Funciones de la Librería
10:04 Circuito de Ejemplo
12:20 Código en CCS C
14:14 Revisión del código de la Librería
17:04 Void main()
19:01 Programación del PIC
21:00 Funcionamiento LCD16x2
21:50 Funcionamiento LCD20x4
¡Excelente video! Me gustaría que hicieras un video explicando línea por línea las librerías.
Me funciono perfecto muchas gracias!!! Lo testee un un 887
Muy buen video. Me gustaría mucho que hicieras otro video explicando línea por línea las librerías.
Hola Sergio , video y compendio , mas completo imposible !!!! que buen trabajo tenes en cada video , excelente !!!!
Muchas Gracias Vicente. Un saludo grande!
Como siempre, tus vídeos son Fascinantes Sergio, nunca me pierdo los Vídeos de PIC
Excelente aporte, no sabía esto, y quedé fascinado, gracias por el aporte, espero más vídeos así! Saludos ✌
Gracias Emmanuel, me alegra que te haya gustado y servido el video. Saludos y muchos éxitos!!
Probé este código en un PIC 16F887 sin problemas. Sin embargo, no me funciona en un PIC 16F877A. Supongo que la librería i2c_Flex_LCD no es compatible con este último PIC.
Muchas gracias Maestro por la aportación de este contenido. Saludos.
Muchas gracias Daniel, me alegra que te haya gustado. Saludos!!
Hola, muy buen vídeo me funciono, lo implemente para controlar varios lcd con un solo pic, el problema esque no busco como hacer que se ejecuten al mismo tiempo:(, si que va por ciclos
Gracias por tus vídeos. Seria bueno que hicieras un vídeo donde enseñes a adaptar las librerías de arduino de algunos sensores que usan la comunicación I2C, ya que hay pocos programas en Internet con esos sensores para pic, por ejemplo, el sensor de color RGB TCS34725 no hay librería de ese sensor para pic pero si para arduino.
Hola amigo me funciono excelente el video solo quisiera saber como hacer para crear caracteres personalizados con esta libreria no se si puedas ayudarme con eso, e intentado varias formas pero no logro que aparezcan.
Hola, excelente video y muy funcional la librería de comunicación I2C, ya que nos va liberar puertos disponibles del PIC pero nos limita un poco ya que solo es funcional para enviar datos al lcd, pero no me permite hacer lectura de datos desde el lcd, es posible implementar la función lcd_getc para la comunicación I2C.
Gracias por todo la información y conocimientos que compartes y por una pronta respuesta.
me encanta los vídeos que realiza Sergio A. Castaño Giraldo.
podría hacer vídeos de pic, pero con la funcion RTOS (Real Time Operating System)
Justo lo que necesitaba. Graciaaas❤❤❤❤❤❤❤❤❤
De nada Rebeca, que bueno que te gustó. Saludos.
Me funciono a la perfeccion!, muchas gracias, solo una duda, como se podrian colocar caracteres personalizados con esta libreria?, fuera de los demas, me encanto esta libreria, saludos
Muchas gracias sigue a si por favor !!!!!!!!!
A y cuando veo sus videos no me da sueño!!!!!
Gracias Abraham, que bueno que te ha gustado. Saludos.
Señor Sergio, la libreria usada "emula" la comunicacion I2C o es necesario que el microcontrolador usado tenga el módulo I2C ...? ya que en su ejemplo con el PIC16F628A dicho microcontrolador no tiene el modulo I2C ...
Y yo pensando que iba a tener que desoldar el modulo del PCF de mi display y utilizar todo un puerto del pic para usarlo...
Mil gracias fenomeno!
Excelente Giuliano. Saludos!!!
Isso aí Sérgio com pic es outro nível, gracias.
Vlw Antonio Obrigado por comentar. Que bom que vc gostou. Abs!!
manooo me ayudooo muchisimooo gracias en serio :)
Me parece excelente tu aporte !!
Gracias Jose, un saludo!!
Amigo. Sería muy bueno que explicarás lo mismo pero con un LCD gráfico, ya que no existe data en Internet sobre cómo simular un glcd 128x64 con pic usando el bus i2c en proteus. Es como que no se pudiera. No lo sé. Serías el primero en explicarlo en todo internet. Yo no eh podido lograr que funcione.
hola que tal buen vídeo sabes no se si tu sepas como poder usar el pcf84574 para poder controlar un teclado matricial
Buen dia Sergio. podria esplicar como programar en un PIC con sensores DS18F20. Gracias .
Ya me inscribí , gracias por tu aporte , genial.
Hola Sergio muy interesante, le quería consultar lo siguiente, yo tengo que armar una especie como terminal serial y quiero usar un teclado matricial y tengo un LCD I2c,la idea es conectar a un proyecto realizado en la cual tengo que cambiar una información esta basado en códigos DTMF ,entonces la idea es visualizar los datos entregado por el teclado matricial, de todo lo que he visto en la red está relacionado con un teclado y la pantalla I2c de forma directa la programación funciona y visualiza las funciones que está realizando directamente.
Donde pudría encontrar algo parecido
Gracias .Saludos
Hola, una duda, por qué no agregaste los capacitores en el diagrama y en la implementación?
Y la otra duda la resistencia que conectas al pin 1 es necesaria para la programación icsp?
Los capacitores del cristal??? es porque no los tenia, es recomendable ponerlos para aumentar la precisión del cristal, debería haberlos colocado por lo menos en el diagrama, pero si están en el primer diagrama, al comienzo de la entrada. La resistencia no es necesaria para el icsp, es para colocar el master clear a positivo y no se reinicie el PIC, puedes deshabilitarlo por código si lo deseas en #fuses nowdt.
Hola Sergio, quisiera saber si me pudieras ayudar con este mismo proyecto pero para un atmega328p
Muy buen proyecto, una consulta cuenta con videos de proyectos con pic y celdas de carga?
Por lo pronto no Galo. Saludos.
Hola y si quisiera conectar ese módulo I2c a un módulo de reles con 4 canales, cómo seria las conexiones
hola amigo quetal ? espero que estés protegido de corona ...:) muchas gracias por tu apoyos !!! una consulta es posible hacer el video explicativo de librería de lcd? saludos que tenga un buen dia ... te recomiendo consumir curcuma para proteger de bacterias y aumentar la defensa corporal.
Pide que me loguee con faceboo, o Google, no quiero compartir mis datos..
Reedito,visto el vídeo que me mandaste lo veo aceptable, es que hay que tener cuidado con estos temas.
Hola José, no tienes que compartir tus datos. Viste el video de como descargar el código? te dejo el link: ua-cam.com/video/jX0RhZkys-o/v-deo.html
Amigo ayudame a usar la dac mcp4725 con mikro c ya intenté pero nadamas no logro hacerla funcionar estoy utilizando el pic 18f4550 😬
buenos dias, una pregunta maestro, el SDA y SCL obligatoriamente deben estar en los pines B0 y B1?
Puedes probrar forzar por software otros pines y ver si te trabaja.
#use i2c(Master,Fast=100000, sda=PIN_B0, scl=PIN_B1,force_sw)
Muy buena profe!
Cree que pueda enseñar nos como se programa un pic con la shield sim 900?
Hola Adolfo, por el momento es complicado, pues no tengo esa placa y ando haciendo otros proyectos.
Poderia gravar um vídeo ensinando a como implementar um LQR com PIC?
Puedo utilizar i2c y si al mismo tiempo
si por favor explica la librería paso a paso quiero hacer una para XC8, gracias por otro buen video...
Gracias Midian. Saludos!!!
Podría ser un video de como hacer una librería, por ejemplo del expansor
Petter, pero en el video del I2C enseñamos como hacer 3 librerías. Puedes darle un vistazo a esos videos
Como se pueden crear caracteres especiales con esta libreria?
Revisando, quiero trabajar con la libreria en el XC8 de MPLAB; pero me marca errores de la libreria i2c_Flex_LCD.c ya que se dirigue hacia unas subrutinas, creo que falta agregar la libreria "20X4_LCD_I2C_DRIVER.h", me podrias ayudar por favor
El programa que hemos visto en este video no es para el compilador XC8, es para el compilador CCS C.
Puedo utilizar i2c y SPI al mismo tiempo
Yo tengo la misma pregunta por qué estoy utilizando Spi, y los dos pines lo tengo ocupados y no creo q funcione el i2c. He leído que se puede configurar por software, alguien sabe acerca de eso?
UNA PREGUNTA, SI EL INTEGRADO DEL I2C QUE TENGO ES EL PCF8574AT. YA NO ME FUNCIONARÍA AL MOMENTO DE MONTARLO EN FISICO, CIERTO?=
En teoria deberia funcionar, son integrados que se comunican por I2C, creo yo que te debe servir.
@@SergioACGiraldo muchas gracias amigo! Ya me funcionó, solo que la dirección de este dispositivo es la 0x7E 👍🏽
Hola!, excelente vídeo, pero podrías traer el uso de lcd con I2C con MikroC Pro?, te lo agradecería bastante, Saludos...
Buen dia, espero me pueda ayudar, en un programa que genera pwm hago el uso de lcds por medio de i2c, la cosa es que en la configuracion al iniciar las lcd, no me genera el pwm, y al comentar estas lineas si se hace el pwm, que podría ser :(
hmmm no funciona en proteus (Excessive CPU Load) y compila con advertencias en CCS (Data: Variable sin uso).
Te pasaste checho
Gracias Nestor. Que bueno que te ha gustado. Ahora es solo que lo pases a XC8, basicamente es la misma cosa, pues todo eso es lenguaje C. Saludos!
Hola, tengo una pregunta ¿se podría ocupar el lcd y el modulo rfid? ya que comparten lineas de comunicación como sda y scl.
Si. Puedes usar otros pines para la comunicación I2C. El compilador tiene la capacidad de generar un I2C por software.
@@SergioACGiraldo Gracias Sergio, que amable. 😊💚
can we use this i2c code for 16f628a?
Parabéns pelo vídeo, muito bom!
Obrigado Alan, fico feliz que vc tenha gostado do video. Sucessos!!!
@@SergioACGiraldo Aguardo mais vídeos de microcontroladores pic e compilador CCS.
GRACIAS
De nada :)
Hola, oye tengo una pregunta, al implementar este protocolo, puedes también mostrar datos de algún tipo de sensor? porque he intentado y no me funciona para nada, saludos.
Hola Jorge, claro que funciona. En el LCD puedes mostrar los datos que requieras de tu proyecto.
Hola Jorge, no entiendo porque no te funciona. Primero que todo, los mensajes normales se te muestran correctamente en el LCD??? Probaste colocar el printf?? Te dejo un ejemplo para mostrar una variable que sea del tipo FLOAT llamada sensor. Imagino ya hiciste la conversión de bits a float de tu sensor.
printf(lcd_putc,"Temperatura: %f",sensor);
Probaste usar ese comando?
Saludos!!
@@SergioACGiraldo Probaré entonces con ese comando, esperando de esa manera funcione, muchas gracias
@@SergioACGiraldo Hola, ya logré el muestreo de datos de un sensor mediante este protocolo, basado en tu código, o más bien usando la librería y funciones que aparecen en tu video, mil gracias, una que otra cosita ya le modificaré yo, saludos
¡¡¡Ma-es-tra-zo!!!
Gracias David, me alegra que te haya servido el video. Saludos!!
Fue como encontrar oro. Muchas gracias por compartir, estimado Sergio.
BUENOS DIAS, al copilar el codigo me salta un error en libreria del delay_ms(50) lo pongo como comentario y salta error del delay_us(2) tambien lo pongo comentario y se repite hasta que comento todos los delay, como puedo solucionarlo? sera que hace falta la libreria delay.h
Y si colocar #use delay(clock=20000000)?
alguien mas esta aqui por la tarea de Arquitectura
Hola, intento implementar tu mismo codigo a un pic16f84a y me marca error en la linea 10 cuando declaras los #FUSES, ¿A que cree que se deba?:(
Probablemente algún FUSE no es soportado en ese PIC, intenta dejar solo los FUSES necesarios para tu proyecto.
Buenas tardes Sergio disculpa yo tengo el mismo integrado de i2c y seguí todo además he hecho algunos cambios pero aún así no me muestra el texto solo me realiza lo que supuestamente hace el código que crees que pueda ser?
Pero solo muestra el ejemplo y cuando cambias los mensajes no lo hace? Que extraño.
@@SergioACGiraldo si no sé si tenga que ver qué programo con bootloader? No sé si tengas algún lugar donde te pudiera enviar un vídeo y es que no sé si soy yo o a ti te paso algo similar ví en tu vídeo que en la parte donde ajustas el contraste se contar y primero no se ve nada pero en la otra toma ya de ve
@@SergioACGiraldo sabes lo único que hace es activar los pixeles y se que trabaja por qué hace la función del apagado y encendido del led de retroiluminacion
Do you use internal pull up resistor??
Where? I didn't use internal pull up resistor. I used the i2c lcd module.
@@SergioACGiraldo yes I see.. but often (always) you have to put pull up resistor (value's based on simple formula) to sda and scl lines.. in certain PIC you can enable those by code.. is a low level part of code maybe you have generate it by some code configurator..
Yes, you are right. You can note that I used the I2C LCD module (usually used with Arduino) if you see the last circuit on the website (link on the video description) You will see the two pull up resistors by hardware implemented into the I2C LCD module. So, you only need to connect the microcontroller pins on the module and you don't need to activate the pull-up resistors by software. regards.
buen video pero mejor seria usando un registro de desplazamiento
Gracias Luis. Si usando un registro de desplazamiento seria otra forma. Saludos
Se puede aplicar a un PIC 16F876A
En cualquier PIC que tenga comunicación I2C. Saludos!
si lo quisiera simular en proteus como seria la configuracion ?
Hola Tom. Yo lo intente hacer en el proteus pero no me estaba dando. Por falta de tiempo paré de ver en que estaba fallando.
@@SergioACGiraldo También he estado intentando ver el texto en simulación
Hola, te hago una consulta, tengo tu mismo codigo, en proteus me simula todo bien pero cuando lo cargo en el pic el LCD se me queda en azul y no hace nada, tenes idea que puede ser? Gracias!
en más, saque todo y deje una linea que imprima algo en el lcd y tampoco
Probaste mover el contraste con el potenciometro de la interfaz?
@@SergioACGiraldo Sisi pero nada :/
@@SergioACGiraldo El el modulo i2c va directo al PIC? ya tiene las resistencias de pullup incluida? Busque y sigó sin lograr mostrar algo en el LCD, queda prendido y nada más. Tengo absolutamente el mismo codigo que ustede!!
@@catrielmiceli8397 si el PIC va directo al módulo I2C dado que las resistencias pullup se encuentran dentro del módulo, como puedes apreciarlo en el circuito que se encuentra disponible en el sitio web. De forma general no he recibido comentários reportando problemas de implementación de la práctica, solo al comienzo algunas personas tuvieron problemas pero después corregí una linea en el código y desde entonces parece ejecutar bien. Igual como ves en el video a mi me funciona adecuadamente. Has provado talvez el módulo con arduino? para verificar que el módulo se encuentre en correctas condiciones.
La librería no deja correr las interrupciones
Enserio? que interrupciones estás corriendo? Yo he realizado interrupciones con los Timers y comunicación serial usando esta librería y no he tenido inconvenientes.
@@SergioACGiraldo Francisco tiene razón. No se pueden ejecutar interrupciones por cambios de Estado (INT_IOC_B4, por ejemplo) y en Proteus te tira la advertencia clásica "Simulation is not running in real time due to excessive CPU Load."
@@elementalwattson mmm pero solo simulado? Lo has implementado para ver si te funciona? Lo digo es porque por ejemplo en mi curso de controladores con PIC (bit.ly/Control_PIC) yo uso las interrupciones por desbordamiento por timer y por recepción serial junto con esta librería del LCD I2C y me trabajó sin problemas en el 18F4550. Simulado no lo he hecho pero en el montaje fisico desarrollé todo el curso.
Puedo aplicar la programación para el pic 16f877a?
Puedes hacerlo Brandon sin problemas. Saludos.
te funcionó? qué le tuviste que modificar para el PIC16f877a??
@@gustavocasanova4322 En ese caso solo modifica en qué terminales tienes tus pines SCL y SDA, saludos
Oye no me funciona porque creo que la dirección del chip es incorrecta, la dirección que uso es 3F pero en arduino
¿cuál será en pic?
En el video y en el sitio web en la descripción esta como poder determinar la dirección tanto para PIC cuanto para Arduino. Dale un vistazo. Saludos.
Dear Sergio. I have 16F628a. I need to comunicate i2c LCD but i can't make it. I'm struggled so much. can you help me ?
You can download the code, the library (for ccs c compiler) and the proteus simulation at the end of the website: bit.ly/2lxNYlY
@@SergioACGiraldo I have tried that but It seems 16F628a doesn't have SCL SDA pins, so I couldn't make it whatever I tried, make me so sad for long days I'm trying to make that
If your PIC doesn't have an MSSP module, the CCS compiler will generate code for a software i2c Master on the pins that you specify in the #use i2c() statement.
But, you can't do an i2c slave. The #use i2c() statement requires a hardware SSP or MSSP module to do a i2c slave.
So for a 16F628 you can make:
#include
#fuses XT,NOWDT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=4000000)
#use i2c(Master,Fast=100000, sda=PIN_A2, scl=PIN_A3,force_sw)
#include "i2c_Flex_LCD.c"
Remember to put the "i2c_Flex_LCD.c" library in the same folder of the project. Also, you need to put the MCLR (pin5) to Vcc. In this specific example, I used an external crystal of 4MHz. I implemented it in proteus and it worked.
In the web site, you can download the proteus file, You only to need to replace the PIC18F4550 to PIC16F628A and connect the PIN A2 and A3 as SDA and SCL respectively
@@SergioACGiraldo Dear Sergio, Thank you for your answer, I apreciated very much
@@SergioACGiraldo Dear Segio, I'm writing this for your information, after 2 days I still couldn't make it. I tried the adress its supposed to be, everything is fine but no.. But thank you for your effort and answer again. I'm giving up with 16f628, too much effort but nothing happening with this pic regarding i2c Lcd
Alguien me podria proporcionar la libreria del i2c por favor
Hola, Yo he intentado hacerlo funcionar con un PIC18F45k50, y no me genera ninguna impresión he modificado el inicio de mi código pero sin exito alguno.
Hola Juan Carlos, creo que te había respondido en el blog. Hace 2 dias modifiqué la librería, la volviste a descargar? La librería tenia un error que ya corregí. Incluso coloqué la simulación en Proteus. bit.ly/2lxNYlY
@@SergioACGiraldoGenial! muchas gracias justo ahora lo pruebo!
Esperemos que ahora si te funcione.
Si ya corre muy bien muchas gracias. Cuál era la falla? Me dijeron que tal vez podía ser el valor de los pines B0 y B1 que no se establecía como sda y SCL pero no tengo idea.
que bien que te funcionó. Habia una operación mal hecha en la función del envio del nibble. Saludos!
tu libreria marca error en los i2c_, ya que no estan definidos
Hola Emiliano, las funciones i2c_ son propias del compilador CCS C Compiler, o sea ya deben venir instaladas en el compilador.
@@SergioACGiraldo me puedes decir la version del picc que usaste para el video. Gracias
Emiliano estoy usando la 5.076.
@@SergioACGiraldo gracias
Muy buen video, estoy teniendo problemas para realizar la mensura de distancia con dos sensores de distancias ultrasónicos te dejo mi correo para pasarte el código (martin.rodriguez@estudiantes.utec.edu.uy) saludos.
pero no muestras ningún comando....
a que te refieres? los comandos están en el minuto 9:21
@@SergioACGiraldo no, me refiero a los comandos en su forma "pura" no desde una librería, es decir, por ejemplo en la inicialización para interfaz de 8 bits: encender la lcd --> esperar más de 15ms --> rs=0 rw=0 y el bus de datos le ingresas un 0x30 hexadecimal, etc..... a eso me refiero con los comandos (0x30) bueno lo que pasa es que yo lo programo en ensamblador, solo quería saber como cambiaban esos comando ahora con el modulo I2C, pero en fin ya lo descifré, con ayuda del multímetro encontré que P0=RS, P1=R/W, P2= ENABLE, y P = DB por lo tanto es una interfaz de 4 bits, con eso es suficiente para saber enviar los nuevos comandos a la LCD mediante I2C.
@@ing.oscarcortez Excelente Esimio, que bueno que lo has solucionado. Efectivamente todo el procedimiento que describes el cual haces en ensamblador hablé un poco sobre él en el min 15:04 y en este caso se una una comunicación a 4 bits con el lcd. Éxitos!