Serial communication display Temperature using LM35 Interface with PIC16F877A
By Bernice Zuiya
Introduction
Dans ce projet je voudrais montrer comment vous pouvez surveiller la température à l'aide d'une application de bureau écrite en visuel basique connecté avec un microcontrôleur PIC16F877A par une communication série.
LM35 Sensor
Working
Si vous vous souvenez de notre projet LM35 Digital thermometre ,Vous pouvez probablement trouver que cela simplement une extension ou une modification de cela. Si vous utilisez notre carte, vous aurez simplement besoin du capteur LM35 et de quelques fils pour établir les connexions entre le microcontrôleur et le capteur. Mais si vous voulez construire un comme cela, vous avez besoin d'un adaptateur USB à série pour l'interface du circuit avec votre application de bureau ou un autre périphérique en utilisant l'interface de communication série, OSat v6.10 a un convertisseur intégré USB vers série vous ne vous inquiétez pas À propos, ce que vous avez besoin est de vous connecter capteur à votre conseil puis en utilisant votre câble USB connecter la carte à votre ordinateur.
Steps:
1. Le capteur LM35 fournit un signal analogique à la sortie proportionnellement à la température
2. En utilisant le module convertisseur ADC de notre PIC16F877A MCU, nous convertissons les quantités analogiques à la sortie du capteur en valeurs DC
3. Nous appliquons la formule suivante pour trouver la température correspondante en degrés Celsius comme indiqué ci-dessous:
Formula: dc_v = ((4.9999 * adc)/1024)*100; // temperature
: where > 4.999 est la tension mesurée entre les deux broches (VSS et GND) de notre contrôleur dans votre cas il peut-être 4.53 vous avez juste à vérifier!
> Adc représente la valeur DC convertie à partir du signal AC
> 1024 Ce nombre est utilisé de telle manière que PIC16F877A a une résolution de 2 ^ 10 ce qui signifie 1024 échantillons correspondant à leurs tensions
> Est enfin 100 comme nous savons déjà que 10 mvolt changement à la broche de sortie du capteur correspondent à 1 degré Celsius le changement.
Circuit Diagram
-
Une résistance de valeur 4k7 ohm est connectée en série avec +5 volt et la broche de réinitialisation (1ère broche)
-
Q1 est l'oscillateur de cristal dans ce cas, il est oscillation de fréquence est de 20 MHz.
-
Alimentation: le circuit est connecté à une tension maximale égale à 5 volts
-
C1 & C2 are of 22pF.
Code:
Download the full project here
unsigned int adc;
double dc_v;
int valve;
char temp[7];
void main()
{
UART1_Init(9615); // baudrate = 9615
delay_ms(30); // 30 msecondes delay
while(1){ // infinite while loop
adc = adc_read(0); // read analog value from RA0 of your chip
dc_v = ((4.9999 * adc)/1024)*100; // temperature
valve = dc_v;
IntToStr(valve,temp); // convert
UART1_Write_Text(temp); // Write through serial port
UART1_Write_Text( "."); // The dot show the end of charaters
delay_ms(1000);
}
}
Video:
I decided to record my screen when testing my project with Proteus simulator. Watch this video from youtube