ds1820

Ako ste početnik ovo je pravo mjesto za vas. Sva opšta diskusija o elektronici i/ili elektrotehnici se treba odvijati ovdje.

Moderators: pedja089, stojke369, [eDo], trax, LAF

Post Reply
User avatar
kepos
Pocetnik na forumu
Pocetnik na forumu
Posts: 43
Joined: 09-01-2009, 14:19
Location: Croatia, Osijek, Retfala
Contact:

ds1820

Post by kepos »

U sklopu jednog sklopa treba mi termometar, te sam za mjerenje temperature odabrao gore navedeni element. Mozda i nije najbolji jer ce mjerit temperature od 100-120°C sto mu je na granici radnog podrucja (prjedlozi za nesto prigodnije dobrodosli). Problem je sto mi na sobnoj temperaturi mjeri oko -30°C. Prvo sam mislio da je greska u mom kodu, ali spojio sam ga izravno na racunalo i probao par programa koje sam iskopao online, ispada da stvarno mjeri takve tempretaure. Probnao sam nabavit i novi senzor ali opet isto. Nigdje u datasheetu ni na netu ne nalazim da se takvo sto pojavljuje niti da mu je potrebna nekakva kalibracija u kodu, a prilicnom sam siguran da mi nije spod nule u sobi. Ima netko kakvih ideja?
User avatar
luchni
Napredujem
Napredujem
Posts: 103
Joined: 05-06-2011, 13:49
Location: Hrvatska/Osijek

Re: ds1820

Post by luchni »

Jesi probao sa KTY10? Radi u području od -50°C do +150°C, naišao sam prije par dana na jedan projekt sa PIC-om, kao i sa ICL7106. Svega 10 kuna u Chipoteci.

http://electronic-schematic.blogspot.co ... stone.html

P.S. ne mogu više naći onaj sa PIC-om, mislim da se radilo o 16F877, projekt od Elektora ili EPE-a, ne mogu se sjetit.

Pozdrav
[Luke:] I can’t believe it. [Yoda:] That is why you fail.
User avatar
78L05
Pravo sam se raspisao :)
Pravo sam se raspisao :)
Posts: 1402
Joined: 28-05-2009, 13:22
Location: Hrvatska

Re: ds1820

Post by 78L05 »

Postavi svoj kod, greška je ili u temperaturnoj konverziji ili u preračunavanju...
A i nije svaki senzor isti, razlikuju se prema S ili B oznaci, bilo je takvih problema na forumu, ne zahtjevaju nikakve hardverske izmjene, ali zato je softver drugčiji...
Ne vjeruj u čuda - računaj na njih!
User avatar
kepos
Pocetnik na forumu
Pocetnik na forumu
Posts: 43
Joined: 09-01-2009, 14:19
Location: Croatia, Osijek, Retfala
Contact:

Re: ds1820

Post by kepos »

luchni wrote:Jesi probao sa KTY10? Radi u području od -50°C do +150°C
Tako sto bi mi odgovaralo, pogledat cu. Hvala
78L05 wrote:A i nije svaki senzor isti, razlikuju se prema S ili B oznaci
A kako da ih razlikujem? Na samom elemntu nije otisnuta ni b ni s oznaka vec pise samo ds1820?

Kod stavljam ispod. Shemu spajanja necu stavljat jer mismlim da nije bitna(ako nekog zanima easyavr5a).
Primjetio sam jos kada ga upalim da prvo ocitanje bude +85.0C sto je prema datasheetu ispravno ocitana pocetna vrijednost. Tako da mi je sad jos manje jasno u cemu je greska, jer i za b i s verziju provjera predznaka treba biti ista a konstantno mi daju temperaturu u minusu....

Code: Select all

/* LCD pinout */

sbit LCD_RS at PORTD.B2;

sbit LCD_EN at PORTD.B3;

sbit LCD_D4 at PORTD.B4;

sbit LCD_D5 at PORTD.B5;

sbit LCD_D6 at PORTD.B6;

sbit LCD_D7 at PORTD.B7;

sbit LCD_RS_Direction at DDRD.B2;

sbit LCD_EN_Direction at DDRD.B3;

sbit LCD_D4_Direction at DDRD.B4;

sbit LCD_D5_Direction at DDRD.B5;

sbit LCD_D6_Direction at DDRD.B6;

sbit LCD_D7_Direction at DDRD.B7;



char *text = "+100.0C";

unsigned temp;



void Display_Temperature(unsigned int temp2write) {

  char temp_whole;



  /* odbacivanje decimale */

  temp_whole = temp2write >> 1;

  

  /* provjera predznaka */

  if (temp2write & 0x8000) {

     text[0] = '-';

     temp_whole = ~temp_whole + 1;

  } else {

     text[0] = '+';

  }



  /* odredjivanje znamenki za ispis */

  text[1] = temp_whole/100 + 48;

  text[2] = (temp_whole%100)/10 + 48;

  text[3] =  temp_whole%10 + 48;



  /* ispis deciale */

  if (temp2write & 0x0001) {

     text[5] = '5';

  } else {

     text[5] = '0';

  }



  /*ispis na lcd */

  Lcd_Out(1, 1, text);

}



void main() {



  Lcd_Init(); /* lcd init */

  Lcd_Cmd(0x20); /* lcd reset */

  Lcd_Cmd(0x0c); /* cursor off */



  do {

    /* temp read */

    Ow_Reset(&PORTB,2); /* rst */

    Ow_Write(&PORTB,2,0xCC); /* SKIP_ROM */

    Ow_Write(&PORTB,2,0x44); /* CONVERT_T */

    Delay_us(120);



    Ow_Reset(&PORTB,2); /* rst */

    Ow_Write(&PORTB,2,0xCC); /* SKIP_ROM */

    Ow_Write(&PORTB,2,0xBE); /* READ_SCRATCHPAD */



    temp =  Ow_Read(&PORTB,2);

    temp = (Ow_Read(&PORTB,2) << 8) + temp;



    Display_Temperature(temp);



    Delay_ms(500);

  } while (1);

}
User avatar
luchni
Napredujem
Napredujem
Posts: 103
Joined: 05-06-2011, 13:49
Location: Hrvatska/Osijek

Re: ds1820

Post by luchni »

Prema senzorima koje sam naručio, na 'S' verziji ne piše slovo između 18 i 20, dok je na 'B' verziji senzora jasno istaknuto DS18B20. Nadam se da je ovo od pomoći.

Pozdrav
[Luke:] I can’t believe it. [Yoda:] That is why you fail.
User avatar
kepos
Pocetnik na forumu
Pocetnik na forumu
Posts: 43
Joined: 09-01-2009, 14:19
Location: Croatia, Osijek, Retfala
Contact:

Re: ds1820

Post by kepos »

luchni wrote:Prema senzorima koje sam naručio, na 'S' verziji ne piše slovo između 18 i 20, dok je na 'B' verziji senzora jasno istaknuto DS18B20. Nadam se da je ovo od pomoći.
Pa ne bas, znam gdje treba trazit oznaku ali iste nema :/
User avatar
Feko
Stariji član
Stariji član
Posts: 4394
Joined: 23-07-2008, 06:18
Location: Hrvatska, Slavonija, Selo moje malo...

Re: ds1820

Post by Feko »

Pogledaj kako se tema razvijala i kojih je problema bilo negdje od sredine prve strane na dalje :wink:
http://www.elektronika.ba/forum/viewtop ... f=9&t=5005" onclick="window.open(this.href);return false;
...a ovdje je verzija 2 :arrow: http://www.elektronika.ba/forum/viewtop ... =9&t=10808" onclick="window.open(this.href);return false;
Post Reply