Autor Tema: Simbolos personalizados en LCD20X4 CGRAM  (Leído 1513 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado genti

  • PIC10
  • *
  • Mensajes: 28
Simbolos personalizados en LCD20X4 CGRAM
« en: 11 de Junio de 2026, 18:15:19 »
Hola , estoy intentando añadir Simbolos personalizados utilizando un LCD 20X4 y una aplicación que termite generar el simbolos pintando cuadros pixeles y luego te genera el código que deberías implementar en el programa .He conseguido que funcione en lcd 16x2 .Pero en el LCD 20X4 me salen rayas y no símbolos .Para este LCD20X4 estoy utilizando una librería algo modificada (LCD420_V2) ya que esta dentro de un proyecto y no puedo utilizar otra librería del LCD. Como podría integrar esos simbolos u otros en LCD20X4 utilizando esta libreria retocada. Si alguien ha podido hacerlo con la librería normal del lcd20x4 o me puede ayudar a integrarlo para que se vea como en la foto del lcd16x2. Adjunto código en texto plano con un ejemplo para experimentar y foto del lcd16x2 donde se ven los símbolos creados (visionado correcto) y foto del lcd20x4 (visionado erróneo) supongo que será por la librería ,haber si alguien arroja luz ...  Gracias. :shock:


ejemplo :

#include <18F2550.H>
#fuses XT
#fuses NOWDT
#FUSES PUT
#FUSES NOPROTECT
#USE DELAY (clock = 4M)

#DEFINE LCD_DB4 pin_D4
#DEFINE LCD_DB5 pin_D5
#DEFINE LCD_DB6 pin_D6
#DEFINE LCD_DB7 pin_D7
#DEFINE LCD_RS pin_D1
#DEFINE LCD_RW pin_D2
#DEFINE LCD_E pin_D0

#include <lcd.c>

void main(){
   int BARRAT[8] = {0,10,10,0,17,14,0,0};
 
   
   lcd_init();
   delay_ms(700);
   lcd_set_cgram_char(0,BARRAT);
   
   
   lcd_putc("\f");// Borrar contenido de la LCD
   
      while(1){
         
         lcd_gotoxy(7,2);//             lcd_gotoxy("columna", "fila")
         printf(lcd_putc,"%c", 0);
       
         
      }
}

Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:Simbolos personalizados en LCD20X4 CGRAM
« Respuesta #1 en: 23 de Junio de 2026, 21:03:49 »
En el código que subiste usás un 18F2550 y  el display en el port D --> El 18F2550 no tiene port D porque es de 28 pines.

De todas maneras el problema que me hace el programa subido es que las filas 3 y 4 se muestran en la 2,   el caracter especial (smiley) lo muestra bien.

Ese problema es de la libreria LCD.C, se soluciona modificando la funcion lcd_gotoxy con un switch()  (LCD_20x4.C == LCD.C parcheada)


Desconectado genti

  • PIC10
  • *
  • Mensajes: 28
Re:Simbolos personalizados en LCD20X4 CGRAM
« Respuesta #2 en: 06 de Agosto de 2026, 17:46:58 »
Hola Eduardo2 , Siento no haber respondido antes  ,ya que he tenido un parón largo .Te comento he probado tu version del lcd_20x4.c y a la hora de compilar con el programa que utilizo me da un error y no termina de realizar la compilación . Subo captura del error haber a que puede ser ese error (error comienza en el sombreado). De todas formas esta versión difiere bastante de la que subí en el inicio del post que es la que hace funcionar todo el programa salvo la integración de CGRAM .

Por otro lado lado tienes razón al decir que el pic no tiene por "D" y que el código que subí lo estaba haciendo con un pic18f2550. Hay me equivoque . Ya que las pruebas iniciales las hice un PIC16F876 . y un lcd 16x2 mezcle alguna cosa. Pero cuando pase a realizar pruebas con el PIC18F2550 Y LCD20X4 utilizando la compilación el lcd(LCD420_V2) que hace que me funciona el proyecto correctamente . Hay en es donde ya no funcionaba nada de las figuras ya que esta  versión (LCD420_V2) tiene modificado los puertos acorde al diseño de circuito en PCB que estoy utilizando y que m funciona perfectamente. De hay las capturas que subí con un lcd 16x2 y pic 16f876 y la otra captura que subí era con un lcd20x4 y pic18f2550 y compilación (LCD420_V2).

No se si se podría trabajar en esta compilación  y añadir las líneas necesarias para que se integre CGRAM. o BIEN tengo que utilizar la versión que me enviaste ultima y que aparte del error que me da al compilar ,posiblemente no tenga algún otro problema por la modificación de los puertos para poder visualizar en el lcd con la configuración de la pcb. Gracias . Haber si es posible...



Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:Simbolos personalizados en LCD20X4 CGRAM
« Respuesta #3 en: 06 de Agosto de 2026, 19:20:08 »
La resolución de esa imagen es muy baja, no se alcanza a leer nada.

Mucho mejor es que subas los fuentes.

Desconectado genti

  • PIC10
  • *
  • Mensajes: 28
Re:Simbolos personalizados en LCD20X4 CGRAM
« Respuesta #4 en: 07 de Agosto de 2026, 16:51:22 »
La resolución de esa imagen es muy baja, no se alcanza a leer nada.

Mucho mejor es que subas los fuentes.


Hola Eduardo2 , He echo una captura con mas calidad. vuelvo a subirla y añado código del programa base F.A. ,librería LCD420_v2 ,la ultima que me enviastes y la que genera el error que ves en la captura (imagen) y librería del LCD420_V2_b con la que el programa base funciona sin problemas pero no tiene implementado la posibilidad de caracteres CGRAM . Haber si ahora sale algo en claro.... Saludos.

Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:Simbolos personalizados en LCD20X4 CGRAM
« Respuesta #5 en: 07 de Agosto de 2026, 20:07:15 »
El problema parece ser el argumento de nombre which .
¿No tenés un macro definido con ese nombre?   Renombrala witch (mas acorde al problema) y fijate si compila.