Autor Tema: Error al cargar el source code (PIC 16F887, LCD y LM35)  (Leído 1429 veces)

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

Desconectado Kaiser57

  • PIC10
  • *
  • Mensajes: 6
Error al cargar el source code (PIC 16F887, LCD y LM35)
« en: 11 de Noviembre de 2015, 20:59:13 »
Me e reventado la cabeza tratando de hacer funcionar el siguiente código, me he iniciado en CSS hace algunas semanas y necesito que alguien que conozca sobre C++ y CSS, me diga o recomiende, el por que no me anda el código fuente en el Proteus.

Este es el código, es un termómetro, el LM35 debe registrar la temperatura, mayor a 40°C deben encenderse el cooler y el led TH(Temp. High) y apagarse el led TL(Temp. Low), la idea es montarlo en una PC.

#include <16F887.h>
#fuses XT,NOWDT
#device adc=10
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,bits=8)//Puerto Serial. Eliminar sino funciona.
#use fast_io(A)//Define los bancos de memoria automaticamente, solo hay que definir los set_tris_x.
#use fast_io(B)//D
#use fast_io(D)//D

/////////////////////////////////////////////////////////////

#define use_portb_lcd TRUE
#define lcd_ENABLE_pin pin_b0
#define lcd_RW_pin     pin_b1
#define lcd_RS_pin     pin_b2
#define lcd_DATA4      pin_b3
#define lcd_DATA5      pin_b4
#define lcd_DATA6      pin_b5
#define lcd_DATA7      pin_b6
#include <lcd.c> //Siempre colocar la librería lcd.c despues de definir sus pines.

/////////////////////////////////////////////////////////////

#define TL     pin_d5//ledl variable
#define TH     pin_d6//ledh variable
#define COOLER pin_d7//cooler variable

/////////////////////////////////////////////////////////////

float T;
int i;

void main(){

set_tris_a(0b00000001);//Seteo de puertos, se debe realizar al usar "use fast_io".
set_tris_b(0b00000000);//S
set_tris_d(0b00000000);//S

setup_adc_ports(sAN0);
setup_adc(ADC_CLOCK_INTERNAL);
setup_counters(RTCC_INTERNAL,RTCC_DIV_1);
set_adc_channel(0);

////////////////////////////////////////////////////////////

lcd_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"Cargando...");

for(i=1;i<16;++i){
   lcd_gotoxy(i,2);
   printf(lcd_putc,"*");
   delay_ms(500);
}   
printf(lcd_putc,"\f");
delay_ms(200);
lcd_gotoxy(5,1);
printf(lcd_putc,"SENSOR");
delay_ms(1000);
printf(lcd_putc,"\f");

while(true){

   T=(float)read_adc()/2;
   lcd_gotoxy(5,1);
   printf(lcd_putc,"%f",T);
   lcd_gotoxy(14,1);
   printf(lcd_putc,"Grados C°");
   delay_ms(500);

////////////////////////////////////////////////////////////

if(T<=150&&T>=40){

   output_high(COOLER);
   output_high(TH);
   output_low(TL);
   
   lcd_gotoxy(5,2);
   printf(lcd_putc,"Disipando Calor");
   delay_ms(350);
}

else{

   output_low(COOLER);//
   output_low(TH);//
   output_high(TL);//
   
   lcd_gotoxy(5,2);
   printf(lcd_putc,"Función Normal");
   delay_ms(350);
}
}
}

Desde ya muchas gracias a los que comenten.......

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Error al cargar el source code (PIC 16F887, LCD y LM35)
« Respuesta #1 en: 11 de Noviembre de 2015, 21:11:27 »
Quisiera saber que es lo que no te anda, todo ? para mi esta bien dentro de todo. Lo que si esta mal es la temperatura como esta medida. tenes que darte cuenta que vos medis una tension de 0 a 5V, el cual se representa de 0 a 1023 ( 10 bits ) y ademas eso representa una temperatura, no es que el ADC directamente va a leer la temperatura. Ese es el unico error que veo

Desconectado Kaiser57

  • PIC10
  • *
  • Mensajes: 6
Re:Error al cargar el source code (PIC 16F887, LCD y LM35)
« Respuesta #2 en: 11 de Noviembre de 2015, 21:19:15 »
No solo quería saber, si algo estaba mal en el code o era el proteus, a lo mejor es el proteus que no lee bien por linea el código, pero gracias, voy a arreglar el ADC.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Error al cargar el source code (PIC 16F887, LCD y LM35)
« Respuesta #3 en: 11 de Noviembre de 2015, 22:01:18 »
¿por qué no pruebas a intentar meter un código básico como encender un led?

Así vas descartando problemas.

¿Antes te funcionaba?
¿as probado un código anteriormente en proteus que funcionara?
¿es la primera vez que lo haces?

Para descartar problemas, yo siempre empiezo desde lo mas básico, si consigues ejecutar un código que ponga en alto un pin o algo así sencillo, pues ya buscas problemas por tu parte, si no lo consigues quizás le pasa algo a tu instalacion proteus.

Un saludo
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado Kaiser57

  • PIC10
  • *
  • Mensajes: 6
Re:Error al cargar el source code (PIC 16F887, LCD y LM35)
« Respuesta #4 en: 12 de Noviembre de 2015, 13:25:28 »
Ya he hecho códigos básicos como prender y apagar un led, pero lo hice en Proteus 7.6, el que estoy usando en este proyecto es el 8.0, así que tendré que hacer un código base como para volver a probarlo. Gracias, espero que sea el Proteus.


 

anything