Autor Tema: Visualizar voltaje en Lcd  (Leído 5853 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Visualizar voltaje en Lcd
« Respuesta #45 en: 06 de Febrero de 2016, 21:54:48 »
Hola elgarbe comentando las dos ultimas lineas que seria la escritura en la segunda linea del LCD si funciona.

Miquel Servera
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Visualizar voltaje en Lcd
« Respuesta #46 en: 06 de Febrero de 2016, 22:08:10 »
prueba de escrivir las dos líneas en la primera linea del LCD, con un delay en medio. me explico?

sds.
-
Leonardo Garberoglio

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Visualizar voltaje en Lcd
« Respuesta #47 en: 07 de Febrero de 2016, 16:08:08 »
prueba de escrivir las dos líneas en la primera linea del LCD, con un delay en medio. me explico?

sds.
Hola elgarbe de esta manera si parece funcionar:
Código: C
  1. while(1)
  2.         {
  3.             SetChanADC(0);  //Seleccionamos canal
  4.             ConvertADC();    //Iniciamos conversion
  5.            
  6.             while(BusyADC()){}    //Esperamos que termine la conversion
  7.             valor_adc = ReadADC();  //Leemos conversion y la guardamos en valor_adc
  8.             voltios = (valor_adc/1024.0)*5.0;   //Convertimos valor ADC
  9.             gotoxyXLCD(1,1);    //Nos posicionamos en el Lcd
  10.             putrsXLCD("Bateria: ");
  11.             sprintf(cadena_de_texto,"%.2f",voltios);    //Visualizamos voltaje en formato float
  12.             putrsXLCD(cadena_de_texto);
  13.            
  14.             for(i=0; i<=15; i++)
  15.             {
  16.                 for(j=0; j<=i; j++)
  17.                 {
  18.                     Delay10KTCYx(20);
  19.                 }
  20.             }
  21.             comandXLCD(0x01);
  22.             gotoxyXLCD(1,1);
  23.             putrsXLCD("Estado: ");
  24.            
  25.             for(i=0; i<=15; i++)
  26.             {
  27.                 for(j=0; j<=i; j++)
  28.                 {
  29.                     Delay10KTCYx(20);
  30.                 }
  31.             }
  32.         }
  33.     }

Saludos!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Visualizar voltaje en Lcd
« Respuesta #48 en: 07 de Febrero de 2016, 16:53:29 »
Código: C
  1. }
  2.             }
  3.             comandXLCD(0x01);
  4.             gotoxyXLCD(1,1);
  5.             putrsXLCD("Estado: ");

eliminá ese comandXLCD(0x01) y proba.
Si sigue funcionando, prová lo mismo pero escriviendo solo en la línea 2 y nos cuentas.
-
Leonardo Garberoglio

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Visualizar voltaje en Lcd
« Respuesta #49 en: 07 de Febrero de 2016, 17:34:15 »
Código: C
  1. while(1)
  2.         {
  3.             SetChanADC(0);  //Seleccionamos canal
  4.             ConvertADC();    //Iniciamos conversion
  5.            
  6.             while(BusyADC()){}    //Esperamos que termine la conversion
  7.             valor_adc = ReadADC();  //Leemos conversion y la guardamos en valor_adc
  8.             voltios = (valor_adc/1024.0)*5.0;   //Convertimos valor ADC
  9.             gotoxyXLCD(1,2);    //Nos posicionamos en el Lcd
  10.             putrsXLCD("Bateria: ");
  11.             sprintf(cadena_de_texto,"%.2f",voltios);    //Visualizamos voltaje en formato float
  12.             putrsXLCD(cadena_de_texto);
  13.            
  14.             for(i=0; i<=15; i++)
  15.             {
  16.                 for(j=0; j<=i; j++)
  17.                 {
  18.                     Delay10KTCYx(20);
  19.                 }
  20.             }
  21.             //comandXLCD(0x01);
  22.             gotoxyXLCD(1,2);
  23.             putrsXLCD("Estado: ");
  24.            
  25.             for(i=0; i<=15; i++)
  26.             {
  27.                 for(j=0; j<=i; j++)
  28.                 {
  29.                     Delay10KTCYx(20);
  30.                 }
  31.             }
  32.         }
  33.     }
Lo que pasa es que aunque ponga el comandXLCD(0X01) al principio antes de posicionarme en el LCD no se me borra la primera linea.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Visualizar voltaje en Lcd
« Respuesta #50 en: 07 de Febrero de 2016, 17:47:00 »
Por que la primer batería lo escrive en la linea 1??
No debería escribir siempre en la linea 2?
-
Leonardo Garberoglio

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Visualizar voltaje en Lcd
« Respuesta #51 en: 08 de Febrero de 2016, 03:31:55 »
Por que la primer batería lo escrive en la linea 1??
No debería escribir siempre en la linea 2?
Eso mismo creo yo, no se porque motivo no se borra la primera linea.

Saludos.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Visualizar voltaje en Lcd
« Respuesta #52 en: 09 de Febrero de 2016, 05:31:53 »
Después de muchas pruebas estoy casi seguro que el problema radica en no poder dejar de escribir en la primera linea del LCD, con eso quiero decir que aunque le digas que escriba en la segunda linea el aparte de escribir en la segunda linea escribe lo mismo en la primera, mi primera opción sera probar de posicionarme en el Lcd sin usar la función
Código: C
  1. gotoxyXLCD()
creada en su día por Suky.
Código: C
  1. /* Ubica cursor en ( x = Posicion en linea , y = N de linea ) */
  2. void gotoxyXLCD(unsigned char x, unsigned char y)
  3. {
  4.     unsigned char direccion;
  5.  
  6.     if(y != 1)
  7.         direccion = 0x40;
  8.     else
  9.         direccion = 0;
  10.  
  11.     direccion += x-1;
  12.     comandXLCD(0x80 | direccion);
  13. }

Miquel_S
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re:Visualizar voltaje en Lcd
« Respuesta #53 en: 09 de Febrero de 2016, 11:28:20 »
y si cambias de LCD, esas mismas instrucciones hacen que otro LCD no escriba en la línea 1?
que micro estás usando?
podrías poner el código completo, con los fuses y todo lo necesario del programa que funciona bien unos segundos y luego se muere?

cuales son los LCD que tenes?

saludos
-
Leonardo Garberoglio

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re:Visualizar voltaje en Lcd
« Respuesta #54 en: 15 de Febrero de 2016, 19:07:05 »
Perdón elgarbe por no haber contestado antes pero estaba probando cosas, tengo dos LCD's iguales los cuales pongo la foto y funcionan correctamente siempre y cuando sea mensaje fijo y fuera del while, el PIC que estoy usando es el 18F2550, luego tengo otro ya muy viejo y para colmo lo desmonte para limpiarlo y ahora apenas se ve los mensajes y este con el mismo código que no funciona el los anteriores LCD's en este funciona correctamente, esto me da a entender que lo que debe de estar pasando esta relacionado con los delay's de las librerías pero no consigo ver donde esta fallando.
Nota: El otro LCD que estoy usando que es el que funciona es el modelo WM-C1602M



Gracias.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.


 

anything