Fórum témák

» Több friss téma
Fórum » DS18B20 hőmérő-szenzor
 
Témaindító: Korben, idő: Nov 16, 2005
Témakörök:
Lapozás: OK   10 / 39
(#) potyo válasza Kovabe hozzászólására (») Dec 26, 2012 /
 
Szerintem nem vészes a memória igénye. Egyébként bármilyen nem túl magas és nem túl alacsony hőmérséklet mérésére alkalmas. Én pl. kinti és benti levegő, kazán csövein víz, hőpumpa csövein gáz illetve cseppfolyós halmazállapotú hűtőgáz hőmérsékletét mérem velük.
(#) watt válasza Kovabe hozzászólására (») Dec 26, 2012 /
 
Potyo listáját kiegészítve még nagyon messzire is el lehet vezetni biztonságosan.

Ha megfelelő PIC-et választasz, akkor a Flowode program is simán belefér.
(#) Szakbarbar83 hozzászólása Dec 26, 2012 /
 
Üdv!

PC-vel Soros porton keresztül szeretném összekötni a DS18B20-as hőmérőmet, egyelőre sikertelenül. Külső tápos megoldással próbálkozom, a felhúzó ellenállás az adatlap szerinti 4k7, Vdd: 5 V (4 db 1,2 V-os NiMH akku). Mielőtt elkezdtem írni hozzá saját programot, szerettem volna látni, hogy egyáltalán működik-e a kapcsolás. 2 külső programmal is teszteltem (DS18B20_logger, Digitemp), de sajnos egyik sem talál eszközt a soros porton. Soros port monitor sem mutat semmilyen kommunikációt. Milyen javaslatotok lenne a további hibakeresésben? Más tápegység, másik PC hátha a soros port döglött?
(#) glaci válasza brato hozzászólására (») Dec 31, 2012 /
 
Szia! Tudnál nekem segíteni?
Én is több 18b20 szeretnék használni egy vonalon, de én micropascalban irok olvasok.
Ha egy olyan folyamatábrát tudnál küldeni, amit le tudnék programozni micropascalban, az nagyon jó lenne.
(#) vicsys válasza glaci hozzászólására (») Dec 31, 2012 /
 
Bővebben: Link
Ez esetleg segíthet...
(#) glaci válasza vicsys hozzászólására (») Dec 31, 2012 /
 
Köszi! Átnézem őket, bár első ránézésre vannak számomra nem teljesen világos lépések.
(#) dcsabi válasza Szakbarbar83 hozzászólására (») Dec 31, 2012 /
 
A soros port csak akkor látja, ha valamilyen program ezt a protokolt adja ki és fogadja rajta. Tehát a próbálkozásaid között van amelyik ilyen akkor látnia kell a gépednek. A soros portot egy bevált működő soros porti eszközzel tesztelheted legegyszerűbben.
Esetleges hibás bekötéssel való próbálkozás, nem ad új lehtőséget. Próbáld másik szenzorral is...
A hozzászólás módosítva: Dec 31, 2012
(#) Szakbarbar83 válasza dcsabi hozzászólására (») Jan 3, 2013 /
 
Üdv!

Természetesen a bekötés volt rossz.
Az itt talált parazita táplálással és a digitemp programmal sikerült életre keltenem a szenzort, most már küldi az adatot a számítógépnek.
(#) glaci hozzászólása Jan 4, 2013 /
 
Nézzétek át legyetek szívesek a kódot! 2db 18b20 van bekötve és 00,0 a mutatott eredmény
ha egy senzorra mérek és a ciklusok nincsenek benn, akkor jó a mérés.
  1. procedure homeres;
  2.    begin
  3.       for i:=1 to 2 do
  4.          begin
  5.          //--- Perform temperature reading
  6.             Ow_Reset(PORTB, 0);                                    // Onewire reset signal
  7.             Ow_Write(PORTB, 0, 0x55);                            // parancs kibocsátás Match  ROM
  8.             for j:=0 to 7 do
  9.                begin
  10.                   Ow_Write(PORTB, 0, sensor[8 * i - 8 + j]);
  11.                end;
  12.             Ow_Write(PORTB, 0, 0xCC);                              // Issue command SKIP_ROM
  13.             Ow_Write(PORTB, 0, 0x44);                              // Issue command CONVERT_T
  14.            // Delay_us(120);
  15.               Delay_us(240);
  16.             Ow_Reset(PORTB, 0);
  17.             for j:=0 to 7 do
  18.                begin
  19.                   Ow_Write(PORTB, 0, sensor[8 * i - 8 + j]);
  20.                end;
  21.             Ow_Write(PORTB, 0, 0xCC);                              // Issue command SKIP_ROM
  22.             Ow_Write(PORTB, 0, 0xBE);                              // Issue command READ_SCRATCHPAD
  23.  
  24.             temp :=  Ow_Read(PORTB, 0);
  25.             temp := (Ow_Read(PORTB, 0) shl 8) + temp;
  26.  
  27.       //--- Format and display result on Lcd
  28.             Display_Temperature(temp);
  29.             Delay_ms(300);
  30.          end;
  31.    end;
(#) bbalazs_ válasza glaci hozzászólására (») Jan 4, 2013 /
 
Probaltad-e mar egymas utan a kettot? Tehat a JOL mukodo egesz rutint hol az egyikre hol a masikra lakalmazni?
Pontosan hogyan vannak bekotve? Mekkora drottal?
(#) glaci válasza bbalazs_ hozzászólására (») Jan 4, 2013 /
 
Külön külön mind a kettő jó, csak a kettő egy vezetéken nem akar mérni. és gőzöm sincs hogy mi a gond!
Nem a vezeték a problémás. Gondoltam, hogy nincsenek meg a szenzorok azonosítói, de kiírattam, megvannak.
(#) brato válasza glaci hozzászólására (») Jan 4, 2013 /
 
Ha használod a match rom parancsot akkor minek a skip rom?
(#) glaci válasza brato hozzászólására (») Jan 4, 2013 /
 
Mert máshol már láttam.....?
(#) brato válasza glaci hozzászólására (») Jan 4, 2013 /
 
Ha több érzékelő van egy vezetéken akkor a match rom azonosítja a sorozatszáma alapján, ha közben kiadod a skip rom parancsot akkor nem fogja tudni melyiket olvassa be.
(#) glaci hozzászólása Jan 4, 2013 /
 
OK kiveszem
(#) glaci hozzászólása Jan 4, 2013 /
 
Semmi nem változott
(#) brato válasza glaci hozzászólására (») Jan 4, 2013 /
 
basicben eligazodsz? Küldök egy tesztprogramot isis szimulációval ha kell.
(#) glaci válasza brato hozzászólására (») Jan 4, 2013 /
 
minden megoldás érdekel
(#) brato válasza glaci hozzászólására (») Jan 4, 2013 /
 
Elküldtem az emailcímedre.
(#) glaci válasza brato hozzászólására (») Jan 4, 2013 /
 
Első ránézésre te a két hőmérőt két külön lábra tetted. Az RA4-re és RA5-re. Így viszont már nekem nem jó, mert nekem 1 vezetéken van a kettő. Sőt ha működik akkor 5 18b20 lesz rajta.
(#) brato válasza glaci hozzászólására (») Jan 4, 2013 /
 
Azért írtam, hogy a kommentek nem mindenütt jók. A szimulációban 1 lábon vannak a hőmérők és a program is 1 lábon kezeli.
(#) glaci hozzászólása Jan 4, 2013 /
 
OK most nézem lejjebb
(#) glaci hozzászólása Jan 5, 2013 /
 
Hát nem igazán igazodok el rajta, de közben az motoszkál a fejemben, hogy alighanem a kiírás szervezésében leledzik a hiba. De ennek a kibogozása holnapra vár.
(#) lakatt hozzászólása Jan 5, 2013 /
 
Sziasztok egy kis segítséget szeretnék kérni.
Az alábbi linken található módon nekiálltam egy Raspberry Pi-re alapuló hőmérőt barkácsolni.
http://logout.hu/cikk/raspberry_pi-s_tapasztalataim_2_resz/teljes.html

A DS18B20 -vel szuperul működik a hőmérő, de a DS18B20P verzióval vannak gondjaim.

A DS18B20-al müködő kapcsolás elkészítése után egyszerűen a DS18B20 mellé, azzal párhuzamosan bekötöttem a DS18B20P-t.

Bemásolom alább a terminálom tartalmát, látható, hogy a DS18B20 mellet a 2db DS18B20P IC-t is felismeri a kermel driver ez a dmesg -el lekért kernel logban is látszik, viszont a hőmérsékletértéknek 85000 értéket kapok mindkét DS18B20P-re.
Bekötési gondra nem tippelnék mivel a kommunikáció a CRC=YES miatt jónak tűnik.
Mi lehet a gond?

Előre is köszönöm a segítséget!

  1. [   24.213367] Adding 102396k swap on /var/swap.  Priority:-1 extents:1 across:102396k SS
  2. [  100.664028] Driver for 1-wire Dallas network protocol.
  3. [  100.710648] w1_master_driver w1_bus_master1: Family 28 for 28.0000043c56a0.8f is not registered.
  4. [  100.740649] w1_master_driver w1_bus_master1: Family 28 for 28.00000490b034.1f is not registered.
  5. [  100.770634] w1_master_driver w1_bus_master1: Family 28 for 28.0000043c6983.8b is not registered.
  6. pi@raspberrypi ~ $ cat /sys/bus/w1/devices/28-*/w1_slave
  7. 50 05 4b 46 7f ff 0c 10 1c : crc=1c YES
  8. 50 05 4b 46 7f ff 0c 10 1c t=85000
  9. 50 05 4b 46 7f ff 0c 10 1c : crc=1c YES
  10. 50 05 4b 46 7f ff 0c 10 1c t=85000
  11. 57 01 4b 46 7f ff 09 10 c7 : crc=c7 YES
  12. 57 01 4b 46 7f ff 09 10 c7 t=21437
  13. pi@raspberrypi ~ $ cat /sys/bus/w1/devices/28-*/w1_slave
  14. 50 05 4b 46 7f ff 0c 10 1c : crc=1c YES
  15. 50 05 4b 46 7f ff 0c 10 1c t=85000
  16. 50 05 4b 46 7f ff 0c 10 1c : crc=1c YES
  17. 50 05 4b 46 7f ff 0c 10 1c t=85000
  18. 7d 01 4b 46 7f ff 03 10 24 : crc=24 YES
  19. 7d 01 4b 46 7f ff 03 10 24 t=23812
  20. pi@raspberrypi ~ $
(#) glaci válasza brato hozzászólására (») Jan 5, 2013 /
 
Megoldódott!

a kód helyesen:
  1. procedure homeres;
  2.    begin
  3.       for i:=1 to 2 do
  4.          begin
  5.          //--- Perform temperature reading
  6.             Ow_Reset(PORTB, 0);                                    // Onewire reset signal
  7.             Ow_Write(PORTB, 0, 0x55);                            // parancs kibocsátás Match  ROM
  8.             for j:=0 to 7 do
  9.                begin
  10.                   Ow_Write(PORTB, 0, sensor[8 * i - 8 + j]);
  11.                end;
  12.             Ow_Write(PORTB, 0, 0x44);                              // Issue command CONVERT_T
  13.               Delay_ms(750);
  14.             Ow_Reset(PORTB, 0);
  15.             Ow_Write(PORTB, 0, 0x55);
  16.             for j:=0 to 7 do
  17.                begin
  18.                   Ow_Write(PORTB, 0, sensor[8 * i - 8 + j]);
  19.                end;
  20.             Ow_Write(PORTB, 0, 0xBE);                              // Issue command READ_SCRATCHPAD
  21.             temp :=  Ow_Read(PORTB, 0);
  22.             temp := (Ow_Read(PORTB, 0) shl 8) + temp;
  23.             Display_Temperature(temp);  //---ugrás a kijelzésre
  24.          end;
  25.    end;
(#) brato válasza glaci hozzászólására (») Jan 5, 2013 / 1
 
Gratulálok!
Én most a teljes ds parancskészletet próbálom asm-ben megcsinálni.
(#) Cavalier válasza lakatt hozzászólására (») Jan 5, 2013 /
 
Ez már a világvége edition.

Felbontást beállítottad? Régebben programoztam ilyet, arra emlékszem, hogy volt több változata, és volt amelyikben eltért a regiszterek felépítése. Adatlapokat nyálazd át, hogy mi a különbség, ha van.
(#) sirály12 válasza lakatt hozzászólására (») Jan 5, 2013 /
 
Közben a másik témát zárolták, úgyhogy bemásolom ide:

A DS18B20P, gondolom itt a p a par szót takarja, ami itt azt jelenti, hogy csak parasite power módban képes üzemelni! Ekkor csak 2 eres kábel kell, a szükséges áramot az adatlábon szerzi be az ic.
Emlékeim szerint ennek köszönhetően a parancsok is eltérhetnek! Tehát az inicializálásnál szinte biztosan, a kiolvasásnál nagy valószínűséggel más parancsok kellenek majd!
DS18B20 adatlapja
DS18B20PAR adatlapja
A kettőt összehasonlítva elég szembetűnő! A DS18B20 14 oldalán és a DS18B20PAR 12 oldalán látható ábrák különbözősége!
(#) lakatt válasza sirály12 hozzászólására (») Jan 5, 2013 /
 
Köszönöm a tippet, bár nem teljesen értem, mivel a driver elvileg hibátlanul kommunikál az IC-vel, mivel rendesen felismeri és az ellenőrzőösszeg is jónak tűnik.
Ugyan nem rágtam át magam mindkét IC adatlapján, de nekem elsőre az lenne a triviális, hogy csak a táplálásban különbözik a 2 IC. A kommunikációban és a parancsokban miért változtattak volna rajta? Egyébként úgy láttam, hogy a "sima" DS18B20 is alkalmas parazita táplálásra, ilyenkor a GND és a +V lábat össze kelle kötni.


(#) watt válasza lakatt hozzászólására (») Jan 5, 2013 /
 
Az a P jel a végén csak a tokozást jelenti, nem? Arról nem írtál, hogy P-PAR, mert olyan is van. A program helyesen kezel 2db simát?
A hozzászólás módosítva: Jan 5, 2013
Következő: »»   10 / 39
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem