Pomos so LM335Z

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
SKOLS
Pocetnik na forumu
Pocetnik na forumu
Posts: 48
Joined: 06-02-2011, 17:28
Location: Skopje,Makedonija
Contact:

Pomos so LM335Z

Post by SKOLS »

Zdravo,
go imam senzorot LM335Z i sakam da go iskoristam.Dali ima nekoj programa,naravno vo PBP so MCS so primer za ovoj senzor?
Ako ima i ako go postavi ke bidam mnogu blagodaren
:)
yt1nvs
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 286
Joined: 30-03-2009, 16:54

Re: Pomos so LM335Z

Post by yt1nvs »

Ja nisam radio sa njim,ali poenta je AD konverzija i meris neki napon koji zavisi od temperature.Pogledaj pdf od LM35!
Milentije
Pocetnik na forumu
Pocetnik na forumu
Posts: 26
Joined: 20-05-2011, 20:55

Re: Pomos so LM335Z

Post by Milentije »

Evo jedan banalan kod koji sam pisao za sistem sa LM35C senzorom. Kod je pisan u CCS C-u. Kopiraj ovo sebi u notepad, bice preglednije.

Code: Select all

#include <16F876.h>
#device ADC = 10
#fuses HS, NOWDT, NOLVP, NOPROTECT, PUT
#use delay (clock = 20000000)
#use rs232 (baud = 9600, xmit = PIN_C6, rcv = PIN_C7)

///////////////////////////////////////////////////////////////////////////////
//U ovom projektu je koristen temperaturni senzor LM35C koji ima opseg od
//-40°C do +110°C. Osnova sistema je PIC 16F876A uC
///////////////////////////////////////////////////////////////////////////////

float vrijednost, temperatura, rezolucija, odnos;

void main()
{
setup_adc_ports(ALL_ANALOG);                                                     //svi pinovi AD konvertroa su analogni, referentni napon je radni napon uC (Vdd)
setup_adc(ADC_CLOCK_INTERNAL);                                                   //koristi se interni oscilator
set_adc_channel(0);                                                              //setuje se kanal 0 (pin AN0)
delay_us(10);                                                                    //pauza za inicijalizaciju kanala 0

while(1)
{
   rezolucija = 0.00488;                                                         // 5 / 1023 = 0,00488 -> referentni napon je 5 V, AD konvertor radi 10bitnu konverziju (1023)
   
   odnos = 1.5 / 5;                                                              //odnos maksimalnog moguceg ulaza i referentnog napona
   
   vrijednost = read_ADC();                                                      //citanje podatka sa ADC ulaza i upisivanje u promjenjivu
   
   temperatura = (rezolucija * vrijednost * odnos * 100) - 40;                   // * 100 -> potrebno je dobiti milivolte pa se zbog toga mnozi sa 1000,
                                                                                 //a posto senzor mjenja izlaz u koracima od 10mV rezultat treba podijeliti sa 10
                                                                                 // - 40 -> u ovom slucaju se koriti senzor kojem je opseg temperatura koje mjeri od -40°C do +110°C
                                                                                 //kada je temperatura koju mjeri -40°C tada na izlazu daje 0mV, a od rezultata se oduzima 40 da bi
                                                                                 //se dobilo ispisivanje tacne temperature (od -40°C do +110°C)
   
   printf("\rTemperatura: %g°C\r", temperatura);
   
   delay_ms(5000);
}
}
User avatar
zigzag9
Napredujem
Napredujem
Posts: 193
Joined: 06-06-2011, 23:35
Location: HR

Re: Pomos so LM335Z

Post by zigzag9 »

LM35 za mjerenje temperatura manjih od 0°C treba negativni napon, i ova teorija da na -40°C daje 0mV nije točna. Pogledaj datasheet, imaš tamo ovakvu shemu spoja: http://i39.tinypic.com/f9e1kh.jpg

Bolja opcija je korištenje TMP36, koji ne zahtjeva offset za mjerenje negativnih temperatura: http://www.ladyada.net/media/sensors/TMP35_36_37.pdf" onclick="window.open(this.href);return false;

Ili, ako ćemo digitalno, DS1820 je dobar izbor. Inače, LM35 mi pokazuje 2°C manje od DS1820, vjerojatno radi loše kalibracije parametara u kodu, dok DS1820 ima deklariranu točnost od 0.5°C po datasheetu, kontrolirano drugim termometrom.
Milentije
Pocetnik na forumu
Pocetnik na forumu
Posts: 26
Joined: 20-05-2011, 20:55

Re: Pomos so LM335Z

Post by Milentije »

Da, u pravu si. Moja greska, nisam dovoljno detaljno prelistao datasheet. :oops:
User avatar
zigzag9
Napredujem
Napredujem
Posts: 193
Joined: 06-06-2011, 23:35
Location: HR

Re: Pomos so LM335Z

Post by zigzag9 »

Sve pet, tu smo da pomognemo jedni drugima ;)

Inače, što se tiče formule (primjer za AVR Arduino, isto 10-bit ADC), išlo bi nekako ovako:

Code: Select all

Voltage at pin in milliVolts = (reading from ADC) * (5000/1024)
This formula converts the number 0-1023 from the ADC into 0-5000mV (= 5V)

If you're using a 3.3V Arduino, you'll want to use this:

Voltage at pin in milliVolts = (reading from ADC) * (3300/1024)
This formula converts the number 0-1023 from the ADC into 0-3300mV (= 3.3V)

Then, to convert millivolts into temperature, use this formula:

Centigrade temperature = [(analog voltage in mV) - 500] / 10 
Post Reply