Autor Tema: Programa no se ve en LCD o pic no arranca. Simulación proteus oks.  (Leído 3061 veces)

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

Desconectado Cesareus01

  • PIC10
  • *
  • Mensajes: 8
Hola a todos, realice 2 programas para termostatos distintos para el pic16f886, uno para una sonda lm35 y el otro para una ds18b20 one wire, los compile con picc,  las simulaciones en proteus me funciónan perfecto pero en la protoboard no me funcionan, tiendo a pensar que es el lcd (ya que lo compre muy barato y no en una casa del rubro) o el grabador pero el picpgm-1.9.2.3-win32-x86 me detecta bien el pic y en el log me salen perfecto los fuses que cargue y no me salta ningún error en la grabación ni en la lectura, y creo haber hecho todo el conexionado apropiado y VDD es correcto. Probé 100 configuraciones distintas en el programa y elimine casi todo dejando solo los comandos de impresión en pantalla, también configure pines directamente en main.h y cambie frecuencia de reloj y config de la declaración #use delay(internal 8M), incluí la declaración  setup_oscillator(OSC_8MHZ|OSC_INTRC). en el display (que es azul) se ven los cuadraditos de pixels en blanco sobre fondo azul  Les agradecería cualquier ayuda y desde ya muchas gracias :(
MCLR resist de 10k a VCC y pulsador a masa.
conexiones LCD
V0 en medio de pot de 10k a vcc y gnd
k GND y A a Vcc por medio de resistor de 100 ohms
vdd 5v
vss GND
RB7 D7
RB6 D6
RB5 D5
RB4 D4

RB2 RW
RB1 RS
RB0 E

El programa: Main.h y main. c:

MAIN.H


#include <16F886.h>
#device ADC=10
#fuses INTRC_IO,NOWDT,PUT,MCLR,NOPROTECT,NOCPD,NOBROWNOUT
#fuses NOIESO,NOFCMEN,NOWRT,NODEBUG,NOLVP

#use delay(internal,clock=8000000)
#define use_portb_lcd TRUE

MAIN.C

#include <main.h>
#include <lcd.c>
#define RELE PIN_C4
#define RELE1 PIN_C3
#define SW1 PIN_A1
#define SW2 PIN_A2
#define SW3 PIN_A3
#define SW4 PIN_A4
#use fast_io(A)   // Configuración rápida del puerto A
#use fast_io(B)  // Configuración rápida del puerto B
#use fast_io(C) // Configuración rápida del puerto C
 
long conversion;   
float temo;         

// ************** Programa Principal ************** //
void main ()
{
//******* Variables *******//
   int mical=25;
   int mahel=27;

   set_tris_a(0x3f);
   set_tris_b(0x00);
   set_tris_c(0x00);

 
   delay_ms(1000);   
   lcd_init (); // Inicializa la libreria para manejar el LCD.
   delay_ms(1000);
   printf ( LCD_PUTC, "\f" ); // Limpia la LCD.
   delay_ms(200);
   lcd_gotoxy(4,1);
   printf(lcd_putc,"TEMP:");
   delay_ms(200);
   lcd_gotoxy(12,1);          //Acomoda cursor LCD
   lcd_putc("oC");
   delay_ms(200);
   lcd_gotoxy(4,2);
   printf(lcd_putc,"TC:");
   delay_ms(200);
   lcd_gotoxy(9,2);
   printf(lcd_putc,"-TR:");
   delay_ms(200);
   
      while ( true )
   {
   setup_adc(adc_clock_div_32); 
   setup_adc_ports(sAN0);   
   set_adc_channel(0);                         
   delay_us (20);                             
   conversion=read_adc();                   
   temo= conversion*(0.48875);               
   lcd_gotoxy(9,1);
   printf(lcd_putc,"%F",temo);
   lcd_gotoxy(7,2);
   printf(lcd_putc,"%d",mical);
   lcd_gotoxy(13,2);
   printf(lcd_putc,"%d",mahel);
   delay_ms(300);

  if(input(SW1)){
mical++;}
   if(input(SW2)){
mical--;}
   if(input(SW3)){
mahel++;}
   if(input(SW4)){
mahel--;}

if(temo<mical)
output_high(RELE);
else
output_low(RELE);

if(temo>mahel)
output_high(RELE1);
else
output_low(RELE1);
   } 
}


 

Desconectado Cesareus01

  • PIC10
  • *
  • Mensajes: 8
Re:Programa no se ve en LCD o pic no arranca. Simulación proteus oks.
« Respuesta #1 en: 24 de Abril de 2017, 19:17:52 »
Bueno, error de conexión del lcd, ya funciona, pero le conecto el lm35 con r de 100k a gnd y me da 0.00 grados. Evidentemente no me esta leyendo AN0, no se cual puede ser el problema. Gracias desde ya.
« Última modificación: 24 de Abril de 2017, 19:20:17 por Cesareus01 »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Programa no se ve en LCD o pic no arranca. Simulación proteus oks.
« Respuesta #2 en: 24 de Abril de 2017, 20:50:38 »
le mediste con el multimetro a la salida del LM35 ?.. Por lo menos para ver si es que tiene salida de tension. Y si es posible probarlo afuera del circuito, no vaya a ser cosa que el PIC lo este pulleando a 0V

Desconectado Cesareus01

  • PIC10
  • *
  • Mensajes: 8
Re:Programa no se ve en LCD o pic no arranca. Simulación proteus oks.
« Respuesta #3 en: 25 de Abril de 2017, 15:25:54 »
Gracias por responder Killer  :). El problema es que el lm35 tira 10mv x grado, para una salida decente para tester lo tendría que poner a 100 o 120 grados. Quizas sea mejor medirlo con el osciloscopio. Pero la idea es buena, me fijo y te cuento. Estuve leyendo en algunos foros que algunos le amplifican la salida con un operacional. Pero supuestamente no debería ser necesario. Saludos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Programa no se ve en LCD o pic no arranca. Simulación proteus oks.
« Respuesta #4 en: 25 de Abril de 2017, 17:13:46 »
Pero a 25ºC tranquilamente tenes 0.25V o 250mV, y un multimetro comun tiene escalas de 200mV seguro. La idea es ver si la salida no es 0V.

Desconectado Cesareus01

  • PIC10
  • *
  • Mensajes: 8
Re:Programa no se ve en LCD o pic no arranca. Simulación proteus oks.
« Respuesta #5 en: 27 de Abril de 2017, 13:37:27 »
Toda la razón Killer. El lm35 me marcaba cerca de 30v a la salida!!. De todas formas se aprende un montón, configuración adc, vref, amplificación por op etc... modifiqué el programa que había hecho para one wire  con un DS18B20 Y con las especificaciones de la librería 16f886.h y salió andando perfecto. Igualmente, cuando compre voy a hacer pruebas con sondas lm35 en buenas condiciones. Saludos y gracias. :mrgreen:
« Última modificación: 27 de Abril de 2017, 15:23:35 por Cesareus01 »