gr1ph0n Postat Octombrie 16, 2009 Partajează Postat Octombrie 16, 2009 Am construit termometru digital de aici: http://www.coolcircuit.com/project/digitemp/ . Initial nu imi afisa decat "Temp :". Am reusit sa il fac sa imi arate temperatura pana la urma, dar imi arata undeva pe la vreo 70 *C. Ma poate ajuta cineva sa modific codul sursa astfel incat sa citeasca corect temperatura din camera? Banuiesc ca e vorba de delay-ul senzorului. In proiect era folosit un DS1820 iar eu am pus un DS18B20 Link spre comentariu
Laci Postat Octombrie 16, 2009 Partajează Postat Octombrie 16, 2009 Mi se pare ca-i intrerupt legatura la alimentarea senzorului, ca atunci citesti valoare maxima adica 0xFF-uri => temperatura maxima. Link spre comentariu
gr1ph0n Postat Octombrie 17, 2009 Autor Partajează Postat Octombrie 17, 2009 Nu e intrerupta alimentarea senzorului, am verificat. Temperatura indicata de senzor creste daca apropii de el o sursa de caldura, nu stiu poate se face altfel conversia l a DS18B20 fata de DS1820 sau poate e vorba de delay. Nu s-a jucat nimeni cu acest tip de senzor? Link spre comentariu
kit Postat Octombrie 17, 2009 Partajează Postat Octombrie 17, 2009 problema, cred eu, este in codarea temperaturii la DS18B20. La DS1820 zecimalele sunt retinute in bitul 0 al LS, restul (b1-b7) dau partea intreaga. MS retine doar semnul temperaturii. La DS18B20 insa, MS foloseste pentru semn doar 5 biti, cei mai semnificativi. Restul de 3, b0-b2, impreuna cu cei mai semnificativi biti ai LS (b4-b7) formeaza temperatura, partea intreaga, iar restul, b0-b3 dau inregistreaza partea zecimala. La http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf gasesti datasheetul lui DS18B20, iar la http://www.systronix.com/Resource/ds1820.pdf (de exemplu) pt DS1820. Am extras din primul pdf ce-i mai important: LS BYTE 2^3 2^2 2^1 2^0 2^-1 2^-2 2^-3 2^-4 MS BYTE S S S S S 2^6 2^5 2^4 S = SIGN ca urmare, +0.5°C 0000 0000 0000 1000 la DS18B20 este, pentru DS1820 +0.5°C 0000 0000 0000 0001 tot asa, +25.0625 °C 0000 0001 1001 0001 -18B20 +25.0000 °C 0000 0000 0011 0010 -1820 Ca sa extragi partea intreaga a temperaturii la 18B20 trebuie sa scoti B0-B3(MS) si sa-i pui langa B4-B7(LS). Apoi, zecimalele sunt B0-B3(LS), iar pentru semn testezi oricare bit dintre B3-B7(MS). Bafta! LE: cred eu... Link spre comentariu
Vizitator dorgab Postat Octombrie 24, 2009 Partajează Postat Octombrie 24, 2009 DS1820 poate fi inlocuit cu DS18S20 si nu cu DS18B20. Deci ai doua variante: modifici programul sau folosesti ds18s20. Bafta! Link spre comentariu
gr1ph0n Postat Octombrie 26, 2009 Autor Partajează Postat Octombrie 26, 2009 Am reusit si am modificat programul. Multumesc. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum