TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: pic_877a en 16 de Febrero de 2020, 14:12:08

Título: No se Visualiza mensaje en el Lcd 16x2 con pic 16f88
Publicado por: pic_877a en 16 de Febrero de 2020, 14:12:08
hola amigos del foro cordial saludo

bueno  les comento que he diseñado un codigo en ccs para un vultimetro de 0 a 50V usando pic 16f88, adjunto el codigo

#include <16f88.h>
#device adc=10//Resolucion del ADC
#use delay (clock=4M)
#include <lcd.c>
#fuses NOWDT,INTRC,NOMCLR,NOLVP,CPD,WRT,PROTECT

///////////////////////////////////////////////////
    //Programa Principal//
//////////////////////////////////////////////////
void main()
{
  unsigned long valor=0;//Declaracion de variables
  float voltaje;                        //Variable que contendra el resultado
    ///////////////////////////////////////////////////////////////////////////////////////
    //Se habilita el A/D y se declara el PORT a usar//
    ///////////////////////////////////////////////////////////////////////////////////////
  setup_adc( ADC_CLOCK_INTERNAL );           
  setup_adc_ports(sAN0);
  set_adc_channel(0);
    //////////////////////////////////////////////
      //Se inicia la LCD//
  //////////////////////////////////////////////   
  lcd_init();
lcd_gotoxy(1,1);
lcd_putc("Iniciando.....");
delay_ms(2000);
lcd_putc("\f" ) ;
lcd_gotoxy(4,1);
lcd_putc("VOLTIMETRO");
     
  do//Bucle
  {
      delay_ms(100);
      valor = read_adc();
      voltaje = (float)valor*0.004882812*10.44 ;
    lcd_gotoxy(5,2);
    printf(lcd_putc,"%g V",voltaje);
  }while(true);
  }
  pero al visualizar en el lcd 16x2 NO se visualiza el mensaje Iniciando..... adjunto la imagen, y espero me puedan ayudar  y ver por que NO  se esta visualizando lo deseado gracias  :(

jose
Título: Re:No se Visualiza mensaje en el Lcd 16x2 con pic 16f88
Publicado por: MSANTHIAGO en 16 de Febrero de 2020, 16:05:31
Hola creo que debe definir los pin de la lcd, en tu caso me parece que puede ser asi:
Código: [Seleccionar]
#include <16f88.h>
#device adc=10//Resolucion del ADC
#use delay (clock=4M)
#fuses NOWDT,INTRC,NOMCLR,NOLVP,CPD,WRT,PROTECT
#define LCD_ENABLE_PIN  PIN_B2                                   
#define LCD_RS_PIN      PIN_B0                                   
#define LCD_RW_PIN      PIN_B1                                   
#define LCD_DATA4       PIN_B4                                   
#define LCD_DATA5       PIN_B5                                   
#define LCD_DATA6       PIN_B6                                   
#define LCD_DATA7       PIN_B7 
#include <lcd.c>
Título: Re:No se Visualiza mensaje en el Lcd 16x2 con pic 16f88
Publicado por: pic_877a en 16 de Febrero de 2020, 17:57:27



amigo gracias por la ayuda, ya me funciono y si me falto declarar los bits, ahora tengo un problema con el divisor de voltaje,  en la salida de la tengo un voltaje maximo de 51.4Vdc, y en el lcd me registra 52.15Vdc.

se que la falla esta en el divisor de voltaje cierto amigo? :?
Título: Re:No se Visualiza mensaje en el Lcd 16x2 con pic 16f88
Publicado por: Sebas1010 en 16 de Febrero de 2020, 18:21:30
Buenas, para tener un mejor ajuste en tu divisor resistivo podrias poner un preset para que lo puedas ajustar bien, por otro lado lo que estas haciendo lo vas a realizar fisico? como estas tomando lo valores vas a ter varaciones en la medicion que lo vas a tener reflejado en el LCD , te combien tomar varias muestras y promediar.

Saludos
Título: Re:No se Visualiza mensaje en el Lcd 16x2 con pic 16f88
Publicado por: pic_877a en 16 de Febrero de 2020, 21:06:05


acabo de arreglar el divisor de voltaje con resistencias 2.2M en serie, adjunto imagen amigos.
Título: Re:No se Visualiza mensaje en el Lcd 16x2 con pic 16f88
Publicado por: Robert76 en 16 de Febrero de 2020, 23:25:21
Hola, lee en la hoja de datos del microcontrolador y chequea la impedancia de entrada del ADC. Pero seguramente es muy inferior que 2M2.
Yo utilizaría entre el divisor resistivo y la entrada del ADC, un op-amp en modo seguidor con ganancia 1, ya que éste se caracteriza por tener alta impedancia de entrada y baja impedancia de salida. Además de proteger dicho ADC, por cualquier despiste en la tensión de entrada.
Título: Re:No se Visualiza mensaje en el Lcd 16x2 con pic 16f88
Publicado por: Eduardo2 en 17 de Febrero de 2020, 02:00:09
....
 ahora tengo un problema con el divisor de voltaje,  en la salida de la tengo un voltaje maximo de 51.4Vdc, y en el lcd me registra 52.15Vdc.

se que la falla esta en el divisor de voltaje cierto amigo? :?

La falla está en usar un divisor x4  con una tensión de entrada de 51.4V ---> 51.4/4=12.85v   --> te está conduciendo el zener.

En el otro circuito, para un circuito real, 2M2 es una resistencia demasiado alta y además para valores cercanos a 5V se te va a derivar corriente por el zener de 5.1V.   Además, mientras las resistencias del divisor no sean muy bajas no lo necesitás porque actúan los diodos de protección de la entrada. 
Título: Re:No se Visualiza mensaje en el Lcd 16x2 con pic 16f88
Publicado por: pic_877a en 19 de Febrero de 2020, 22:04:07


bueno amigos, ya arregle el divisor de tension, y elimine el zener,  modifique la ecuación en el código

adjunto la imagen

y gracias por la ayuda  ;-)

jose