TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: navass en 25 de Junio de 2015, 01:02:51

Título: Visualizacion de Temperatura en GLCD
Publicado por: navass en 25 de Junio de 2015, 01:02:51
Buenas compañeros como el tema lo dice estoy realizando un pequeño programa para poder visualizar en un GLcd la informacion obtenida de un lm35, nose si alguien me podria dar una mano estoy aprendiendo a utilizar el pic 16f877a, les dejo el codigo para que lo puedan revisar y me den alguna sugerencia de antemano muchas gracias por su ayuda. El programa que utilizo es PIC C Compiler.

#include <16f877a.h>
//#device adc=10
#use delay (clock=4M)
#fuses nowdt, xt
#include <hdm64gs12.c>
#include <graphics.c>
#include <math.h>

#ifndef glcd_width
#define glcd_width  128
#endif

long x;
float y;
char Voltaje[];
//char Vol[]="HG1";
void main(){
 setup_adc_ports(0);
 setup_adc(ADC_CLOCK_INTERNAL);
glcd_init(1);
while(true)
 {
set_adc_channel(0);
x=read_adc();
y=(5.0*x)/10.0;
sprintf(Voltaje,"%f",y); //paso de float a char
glcd_text57(5,5,Voltaje,2,1);
 }
}
Título: Re: Visualizacion de Temperatura en GLCD
Publicado por: RodrigoAndres en 06 de Julio de 2015, 16:03:32
No soy para nada experto, pero tratare de ayudarte.

Te suguiero qe pongas un delay despues de set_adc_channel(0); , un delay de medio milisegundo, porke si no la lectura sale mala, eso tambien me paso.

tambien te suguiero qe pongas un delay de unos 20 milisegundos dentro del while(true) porke si no eso se esta ejecutando demasiadas veces por segundo y puede dañar la pantalla, te recomiendo 20 milisegundos eso taria bien
Título: Re: Visualizacion de Temperatura en GLCD
Publicado por: KILLERJC en 06 de Julio de 2015, 16:55:16
Ademas de lo que te dijo Rodrigo quecasi comparto todo lo que dijo , lo explico mas abajo o muestro mi postura.

tenes mal la formula. estas intentando obtener el voltaje que llega al pin ?

y=(5.0*x)/10.0;

esa formula esta mal, Esta esta mucho mejor :)

y=(5.0*x)/1023;



Rodrigo

Con respecto al delay del set_adc_channel, si es cierto pero no entiendo por que en el caso de tener 1 solo canal uno deberia hacer eso, entiendo cuando es por primera vez y cuando uno cambia de canales, ya que se tiene que acomodar la tension en el capacitor de entrada, por eso tampoco entiendo por que poner el set_adc_channel dentro del while como lo tiene el. Tambien luego de una lectura deberia hacerse, si es que no hay codigo tal que permita la carga del capacitor del S/H

Con respecto a lo que se puede dañar la pantalla eso no lo se, al menos mi conocimiento de las pantallas no me permite decir eso. Lo unico que uno hace es cambiar la memoria RAM que posee la pantalla, y de ahi la misma pantalla lee, y muestra en la pantalla, imagino que barriendo todos los puntos constantemente, asi que no veo como puedas dañarla.
Título: Re: Visualizacion de Temperatura en GLCD
Publicado por: jlmt@hotmail.es en 13 de Julio de 2015, 13:38:44
Que tal amigo mira yo estoy haciendo un proyecto identico unicamente que es con pic 18f4550, te comparto mi programa y tambien saber si tu me puedes ayudar ya que en el simulador funciona perfectamente pero sorpresa problemas en la vida real, bueno sin mas cosas.

https://drive.google.com/folderview?id=0BwW1ZWthSbjEfjhNeHdBdGtHNG0zVjFkUjdOa291V3RVSTc5UnlXQXdBaHUxZ3E2U3N6Nnc&usp=sharing