Sunteți pe pagina 1din 22

Proiect la disciplina

Microprocesoare i Microsisteme II
Atudorei Munteanu Gabriel
Grupa 6407

LM34 Precision Fahrenheit


Temperature Sensors
Prezentarea modulului PIC DEM 2 PLUS
Sistemul de dezvoltare PICDEM 2 Plus al firmei Microchi este alctuit din urmtoarele
componente principale:
- placa demonstrative PICDEM 2 Plus
- un depanator/programator n-circuit ( In-Circuit Debugger/Programmer ) MPLAB ICD2.
- douCD-uri cu ghiduri de utilizare, documente de referin, exemple de aplicaii, drivere i
mediul integrat gratuit de instrumente software de dezvoltare MPLAB IDE .
- o surs universal de alimentare de 9 V/0,75 A.
- un cablu de conexiune de date serial RS-232 cu conectori DB9

Prezentare general

Placa demonstrative PICDEM 2 Plus are urmtoarele caracteristici i faciliti hardware :

1. Socluri DIP de 18, 28 i 40 de pini (dei sunt disponibile trei socluri, doar un singur dispozitiv poate fi
utilizat la un moment dat).
2. Surs stabilizat de +5 V, inclus pe plac, pentru alimentare direct de la un alimentator de 9 V, 100
mA sau o baterie de 9 V, i pini speciali pentru alimentare extern prin conectarea unei surse de tensiune
continu stabilizat de +5 V, 100 mA.
3. Conector DB9
i hardware-ul necesar asociat pentru implementarea unui port serial activ pentru conectare direct la o
interfa RS-232.
4. Conector ICD ( I n- Circuit Debugger ) pentru conectarea la MPLAB REAL ICE sau MPLAB
ICD2.
5. Poteniometru de 5 k folosit n aplicaii de conversie A/D n cazul dispozitivelor avnd intrri
analogice.
6. Trei comutatoare push-buton, dou pentru stimuli/comenzi externe i unul pentru Reset 2
7. Un LED care indic prezena tensiunii de alimentare.
8. Patru LED-uri conectate la PORTB al microcontrolerului.
9. Un jumper (J6) pentru deconectarea LED-urilor de la PORTB.
10. Oscilator cu cuar ncapsulat de 4 MHz.
11. Guri libere pentru conectarea unui cristal de cuar cu frecvena dorit de utilizator.
12. Cristal de cuar de 32,768 kHz pentru clock-ul circuitului Timer1.
13. Un jumper (J7) pentru deconectarea oscilatorului RC de pe plac (de aproximativ 2 MHz).
14. EEPROM serial 32K x 8.
15. Afior cu cristale lichide (LCD).
16. Difuzor (buzzer ) piezoelectric comandat de semnalul PWM (impulsuri modulate n durat).
17. Arie prototip pentru hardware-ul utilizatorului.
18. Senzor de temperatur Microchip TC74.

Placa demonstrativ PICDEM 2 Plus este furnizat cu dou eantioane de microcontrolere de 40


de pini cu memorie flash, PIC18F4520 i PIC16F877A. La livrare, n dispozitivul PIC18F4520 instalat pe
plac, este ncrcat un program tutorial demonstrativ, care msoar i afieaz o tensiune continu,
genereaz un semnal sonor cu frecven reglabil, afieaz un ceas cu timpul real i afieaz temperatura
ambiant. Kit-ul
PICDEM 2 Plus include pe CD-ROM exemple de programe demonstrative. Acestea pot fi
utilizate cu microcontrolerele eantion furnizate, cu un ICE sau cu un ICD. Pentru fiecare tip de
dispozitiv(PIC16 sau PIC18), sunt furnizate codurile surs (cteva fiiere ASM) i un cod compilat (un fi
ier hex) pentru programul tutorial demonstrativ.
Placa demonstrative PICDEM 2 Plus are un circuit extrem de simplu, gndit pentru a ilustra
uurina de utilizare a diverselor microcontrolere PIC, i conine urmtoarele elemente hardware:
Socluri pentru microcontrolere Cu toate c sunt disponibile trei socluri:
un soclu cu 18 pini,
un soclu cu 28 de pini,
un soclu cu 40 de pini, doar un singur dispozitiv/microcontroler poate fi utilizat la un moment dat.

Indicatoare

Patru LED-uri (D2 D5) sunt conectate la portul B al fiecrui tip de procesor (de 18, 28 sau 40 de pini).
Pinii portului B trebuie s fie setai pe nivel logic HIGH pentru a aprinde LED-urile. Aceste diode pot fi
deconectate de la portul B prin scoaterea jumper-ului J6. Un alt LED (D1) indic existena (LED aprins)
sau inexistena (LED stins) a tensiunii de alimentare a plcii PICDEM 2 Plus.

Surs de alimentare

Exist trei posibiliti de a asigura energia de alimentare pentru placa PICDEM 2 Plus:
O baterie de 9 V care poate fi conectat la J8.
surs nestabilizat de 9 V/100 mA de curent alternativ sau de curent continuu care poate fi
conectat la J2.
surs stabilizat de curent continuu de +5 V/100 mA care poate fi conectat la pinii speciali
prevzui pe plac.
Utilizatorii MPLAB ICD 2 pot folosi i ICD-ul pentru a alimenta placa (target device) la 5 V cu
pn la 200 mA, dac MPLAB ICD 2, la rndul su, este alimentat de la o surs nestabilizat de 9 V (vezi
detaliile de conectare PC ICD 2 Dispozitiv target n fiierul L A B P I C D E M 2
P l u s \ U s e r ' s G u i d e \ M P L A B I C D 2 \ U s i n g M P L A B I C D 2 P o s t e r ). Port serial RS-
232 Un circuit integrat translator de nivel i hardware-ul necesar (alctuind o interfa complet) asigur o
conexiune RS-232 gazd printr-un conector DB9. Portul este configurat ca DCE ( Data Communications
Equipment ) i poate fi conectat la un PC folosind un cablu cu conexiune direct. Pinii RX i TX ai
PIC16/PIC18 sunt legai la liniile RX i TX ale circuitului MAX232A.

ntreruptoare

Trei ntreruptoare push-button asigur urmtoarele funcii:


S1 conectat la pinul MCLR al microcontrolerului, pentru resetarea hardware a acestuia.
S2 conectat la pinul RA4 al microcontrolerului, activ pe nivel LOW .
S3 conectat la pinul RB0, activ pe nivel cobort, pentru comenzi/stimuli externi.

ntreruptoarele S1 i S3 au montate n paralel pe contacte condensatoare pentru eliminarea efectelor


oscilaiilor mecanice inerente la comutrile ntre cele dou stri apsat/relaxat (hardware debounce), pe
cnd S2 nu are, permind utilizatorului s investigheze/testeze tehnicile pentru eliminarea acestor efecte
( software debounce). Cnd sunt acionate (apsate), ntreruptoarele pun la mas pinul de intrare,
genernd nivel logic 0. Cnd ele nu sunt acionate (relaxate), pinii sunt conectai printr-o rezisten la +5
V, genernd nivel logic 1.

Opiuni pentru oscilator


Oscilator RC (de aproximativ 2 MHz) prezent pe plac. Acesta poate fi invalidat eliminnd
jumper-ul J7.
Oscilator pe frecvena dorit prin montarea, de ctre utilizator, a unui cristal de
cuar corespunztor i a dou condensatoare n gurile special prevzute pe plac
Un oscilator ncapsulat de 4 MHz care poate fi nlturat (este montat pe soclu).
Un cristal de cuar de 32,768 kHz pentru clock-ul circuitului Timer1 al microcontrolerului.

Intrare analogic

Un poteniometru de 5 k este conectat printr-un rezistor serie de 470 la pinul AN0.


Poteniometrul permite reglarea unei tensiuni de la 0 V la VDD folosit ca intrare analogic n cazul
microcontrolerelor care au un modul convertor analog-digital.

Conector ICD

Prin itermediul conectorului modular (J5), MPLAB ICD 2 poate fi conectat pentru operaii de
programare/depanare n-circuit (in-circuit programming/debugging ), la costuri reduse. Pentru aceste
operaii, conectorul ICD utilizeaz pinii RB6 i RB7 ai microcontrolerului.

Senzor de temperatur

Acesta este un senzor digital serial de temperatur (TC74) care este conectat la microcontrolerele
avnd 28 sau 40 de pini prin intermediul pinilor RC3 i RC4. Comunicaia cu TC74 este realizat prin
intermediul portului serial pe dou fire, compatibil I2C, al microcontrolerului. Dispozitivul TC74 are
adresa binar1001101
.
EEPROM serial

Un EEPROM serial 24L256 de 256 Kbii (32K x 8) este inclus pe plac pentru a ilustra conceptul
bus-ului I2C.

Afior LCD

Un afior LCD, cu dou linii a cte 16 caractere fiecare, este conectat la soclul cu 40
de pini.Comunicaia cu microcontrolerul se realizeaz pe trei linii de control (RD6:RD4) i patru linii de
date (RD3:RD0).

Dispozitive eantion

Unul din cele dou dispozitive eantion livrate cu kit-ul, programat cu un program tutorial
demonstrativ, este montat n placa PICDEM 2 Plus. Tabelul 2.1 listeaz caracteristicile de intrare/ieire
i conexiunile la porturi pentru fiecare tip de procesor (n funcie de numrul pinilor).
Echiparea i schemele plcii

Amplasarea componentelor plcii demonstrative PICDEM 2 Plus este prezentat n Fig. 2.2 iar
schemele circuitelor sunt prezentate n Fig. 2.3 i Fig. 2.4

Fig. 2.2. Amplasarea componentelor plcii demonstrative PICDEM 2 Plus


Fig. 2.3. Schema plcii demonstrative PICDEM 2 Plus
Fig. 2.4. Schema plcii demonstrative PICDEM 2 Plus (continuare)
Prezentarea senzorului de temperatura LM34
Descriere general
Senzorul de precizie LM34 este un circuit integrat ce msoar temperatura, a crui ieire este
proporional liniar cu temperatura Fahrenheit. LM34 are un avantaj fa de senzorii calibrai in grade
Kelvin, i acela c nu necesit voltaj mare de absorbie la ieire pentru a obine o scar convenabil,
deasemeni nu necesit nici calibrare extern pentru a asigura o precizia necesar.
Impedana joas la ieire , liniaritatea ieirilor si precizia de calibrare fac ca utilizarea senzorului
s fie uoar. LM34 absoarbe un curent de 75uA de la surs , aadar nu se inclzete foarte tare , mai
puin de 0.2oF in aer liber.Acest senzor un interval de temperatur cuprins intre -50o i +300oF.Seria
LM34 este disponibil sub forma unor tranzistoare TO-46 mpachetate ermetic.

Carateristici
Calibrare direct in grade Fahrenheit
Factor scalar liniar +10.0mV/oF
Precizie garantat de 1.0 oF
Interval de masurare cuprins intre -50o i +300oF
Convenabil pentru aplicaii telecomandate
Funcioneaz de la 5 la 30 V
Nivel sczut de inclzire 0.18of in aer liber
Impredan scazut la ieire
Caracteristici de performan tipice
Aplicaii tipice
Dimensiuni fizice
LM34 poate fi aplicat cu uurin n acelai mod ca i ali senzori de temperatur cu circuit
integrat. Acesta poate fi lipit sau "cimentat" pe o suprafa i temperatura acestuia se va ncadra
aproximativ 0,2 C fa de temperatura de suprafa. Aceasta presupune c temperatura aerului
nconjurtor este aproape la fel ca temperatura de suprafa; dac temperatura aierului este mai nalt sau
mai joas dect temperatura de suprafa, temperatura real a matriei LM34 ar fi la o temperatur
intermediar ntre temperatura suprafeei i temperatura aerului.
Pentru a asigura o conductibilitate termic bun spatele matriei LM34 este ataat direct la pinul
GND. Traseele LM34 s fie parte a plcii de circuit imprimat, care este obiectul a crui temperatur se
msoar.
Ecuaia de calcul al senzorului LM34

Graficul funiei t=U-500/10

350

300

250

200

150

100

50

0
0 500 1000 1500 2000 2500 3000 3500 4000
-50

-100

Senzorul are o caracteristic liniar , intervalul de funionare este de la -50oF 3000F. Am


calibrat senzorul aa nct la temperatura minim de -50oF , tensiunea s fie 0 V. Treptat ea va crete
pn atinge maximul de 3000F la o tensiune de 3500 V (3,5 V).

y = ax + b ,unde y este temperatura iar x este tensiunea

(500)
t= t = 0,1 x 50
10

Funcia implementat in program:

Temp_F=(value-500)/10;
Temp_C=(Temp_F-32)/2;
Partea de program pentru afiarea mrimii calculate pe UART i LCD.

//Atudorei Munteanu Gabriel - LM34 Temperature Sensor

#include <p18f452.h>
#include <delays.h>
#include "xlcd_OLD.h"
//#include "xlcd_NEW.h"
#include "adc.h"
#include "USART.h"
#include <math.h>

#pragma config WDT=OFF

//mesaje pentru LCD


const char Mesaj_LCD1[]={"\x80T(gr F)="};
const char Mesaj_LCD5[]={"\x80T(gr F)=-"};
const char Mesaj_LCD2[]={"\xc0T(gr C)="};
const char Mesaj_LCD4[]={"\xc0T(gr C)=-"};
const char Mesaj_LCD3[]={"\xe,"};
const char Mesaj_LCD6[]={"\x8e,"};
#define rata 25

// mesaje pentru USART


const rom char Mesaj_USART1[]={"Masurare canal 0\n\r"};
const rom char Mesaj_USART2[]={"\n\r Numarul generat de ADC = "};
const rom char Mesaj_USART3[]={"\n\r Tensiunea masurata de ADC = "};

const rom char Mesaj_USART4[]={" mV\r\n"};

const rom char Mesaj_USART5[]={"\n\r Temp in grade C= "};


const rom char Mesaj_USART6[]={"\n\r Temp in grade C= -"};
const rom char Mesaj_USART7[]={"\n\r Temp in grade F= "};
const rom char Mesaj_USART8[]={"\n\r Temp in grade F= -"};
const rom char CrLf[]={""};
const rom char virgula[]={","};

void main( void )


{
unsigned int res;
float value;
float Temp_C;
float Temp_F;

unsigned int x, y;

Init_ADC();
InitUSART(rata);
InitLCD();

Write_CString_USART(Mesaj_USART1);

while(1)
{
Delay10TCYx(5);
Start_ADC();
while(!Busy_ADC());
res=Read_ADC();
value=((Read_ADC())*5000.0)/1024;

Temp_F=(value-500)/10;
Temp_C=(Temp_F-32)/2;

if(Temp_F>=0)
{
x=(Temp_F-(int)(Temp_F))*100;
Write_CString_USART(Mesaj_USART7);
Write_U_INT_USART(Temp_F);
Write_CString_USART(virgula);
Write_U_INT_USART(x);
Write_CString_USART(CrLf);
DisplayC(Mesaj_LCD1);
Write_U_INT_LCD(Temp_F);
DisplayC(Mesaj_LCD6);
Write_U_INT_LCD(x);
}
else{
Temp_F=-Temp_F;
x=(Temp_F-(int)(Temp_F))*100;
Write_CString_USART(Mesaj_USART8);
Write_U_INT_USART(Temp_F);
Write_CString_USART(virgula);
Write_U_INT_USART(x);
Write_CString_USART(CrLf);
DisplayC(Mesaj_LCD5);
Write_U_INT_LCD(Temp_F);
DisplayC(Mesaj_LCD6);
Write_U_INT_LCD(x);
}

if(Temp_C>=0)
{
y=(Temp_C-(int)(Temp_C))*100;
Write_CString_USART(Mesaj_USART5);
Write_U_INT_USART(Temp_C);
Write_CString_USART(virgula);
Write_U_INT_USART(y);
Write_CString_USART(CrLf);
DisplayC(Mesaj_LCD2);
Write_U_INT_LCD(Temp_C);
DisplayC(Mesaj_LCD3);
Write_U_INT_LCD(y);
}
else{
Temp_C=-Temp_C;
y=(Temp_C-(int)(Temp_C))*100;
Write_CString_USART(Mesaj_USART6);
Write_U_INT_USART(Temp_C);
Write_CString_USART(virgula);
Write_U_INT_USART(y);
Write_CString_USART(CrLf);
DisplayC(Mesaj_LCD4);
Write_U_INT_LCD(Temp_C);
DisplayC(Mesaj_LCD3);
Write_U_INT_LCD(y);
}
Write_CString_USART(Mesaj_USART2);
Write_U_INT_USART(res);
Write_CString_USART(CrLf);

res=(int)((float)value);
Write_CString_USART(Mesaj_USART3);
Write_U_INT_USART(res);
Write_CString_USART(Mesaj_USART4);
Write_CString_USART(CrLf);

Read_Char_USART();
}
Close_ADC();
}
Temperatura minim la care senzorul LM34 funcioneaz este de -50o F

Am luat i o temperatur aleatorie ,


Temperatura maxim de funcionare a senzorului LM34 este de 300o F.

S-ar putea să vă placă și