Fórum témák
» Több friss téma |
pff... Na akkor:
Van egy hőmérő szonda, rajta 10 darab ds18b20. Én otthon előre elkészítem a programot úgy hogy van egy PIC, eepromba lementem a ds-ek fizikai címét. Mégpedig úgy hogy leveszem az összes ds-t, majd belépek egy inicializálási részbe, ahol a kód addig vár míg le nem nyomom az ok gombot. Én akkor nyomom emg az ok gombot amikor rádugtam a ds-t. Ekkor futtatok egy finddevices kódot és szépen el is mentem az eepromba legelőre. Utána megint rádugok egy ds-t.... Amikor ez megvan akkor az összes ds fent lehet hiszen tudom hogy ki hol helyezkedik el, mivel egymás után mentettem el őket, meg persze a kábelen is sorba raktam fel. Na most és arra lettem volna kíváncsi hogy meg lehetne-e ezt csinálni automatikusan anélkül, hogy egyesével kelljen ráfelé dugni az eszközöket. Az én finddevices eljárásom akkor is elmenti az eszközöket ha többet dugnék rá egyszerre csak akkor már nem tudnám hogy pl ki a kettes és ki a hármas számú. Na szóval ez lenne.
Na ez az, amit így önmagában nem lehet megcsinálni. Amint írtam, ha tudod a szenzorokat melegíteni (vagy hűteni) egyesével, akkor ki lehet utólag is hámozni, de ez kb. ugyanannyi meló, mintha minden egyes szenzor felhelyezésekor mindig nyomnál egy OK-ot.
Sziasztok!
A Dallas ajánlásában van egy módszer, amivel tetszőleges számú OneWire eszköz címe beazonosítható úgy, hogy minden eszköz a bekacsolás pillanatában már a közös adatvezetéken van. Már használtam is, igaz csak Proteusban, és négy eszközig jól működik. A kód C-ben van, szívesen megosztom, ha érdekel. Bonca A hozzászólás módosítva: Szept 17, 2013
Ez eddig is meg volt oldva, más volt a kérdés. Ettől még felteheted a kódot, biztosan lesz, aki örül neki!
A hozzászólás módosítva: Szept 17, 2013
Azt a kódot én is próbáltam, letöltöttem a Dallastól, és néhány apró módosítás után tökéletesen futott egy PIC32-n. A módosítás ha jól emlékszem annyi volt, hogy az időzítéseket kellett jól beállítani és persze a lábat kellett beállítani neki, hogy hogyan tudja alacsony szintre húzni és elengedni.
Erre nincs módszer, mert "bárhol" is van az eszköz, be tud jelentkezni, megkülönböztető jelzés nélkül, így nem lehet megmondani, hogy "ki" hol is van fizikailag !
Ha találsz DS18S20-at, akkor azt változtatás nélkül rákötheted, az teljesen kompatibilis a DS1820-al.
Azt hiszem hogy a DS18S20 az nem lesz gond,simán beszerezhető.
Sziasztok
Csak tapasztalatomat szeretném megosztani veletek. Nemrég (1 het) beüzemeltem egy vezérlést amiben egy DS18B20-at alkalmazta, relativ messze kellet vinnem a szenzort de már be volt huzva egy vezeték ami sima riasztos 6eres vezeték. A lényeg hogy idáig semmi probléma nem volt, simán kommunikál a szenzor a vezérléssel. Idézet: Műszaki életben nehezen értelmezhető, mértékegység nélküli fogalom „relativ messze kellet”
Igazad van bocsánat, a relativ távolság épp 15méter.
Most találtam rá a topikra, így tennék egy rövid összefoglalót a saját tapasztaltaimról.
Új eszközök felvétele: ATMEL/Arduino alapon ügyködöm a témával. Ebben úgy raktam össze a programot, hogy induláskor feltérképezi a buszt, a rajta lévő szenzor azonosítókat kiprinteli soros portra + eltárolja. Ezt a soros portra kiküldött listát elrakom egy txt-be, sor után írom kommentbe, hogy melyik. Ha új eszköz kerül a buszra, resetelem az atmelt, ekkor újra kiprinteli az eszköz azonosítókat. Az előbbi txt-vel összevetem, az új sort txt-be átemelem és felkommentelem magamnak. Távolság: Jelenleg 6 szenzort olvasok ki 10 percenként. 20 méter 8 eres UTP, +5 V, GND egy csavart érpáron, DATA, GND másik csavart érpáron. A maradékon tartalék, pl. +12V, stb mehet. Ezen 20 méteres gerincre további leágazások csatlakoznak. Pl. a 10. méteren becsatlakozik egy 5 méteres UTP. A 15. méteren becsatlakozik egy 3 méteres meg egy 5 méteres. 1-2 méter hosszban 4 eres telefon vezetéket is alkalmaztam az egyes leágazásokban. A 2 legtávolábbi vezeték táv ~25 méter. Stabilan működik. Még fejlesztés alatt van, de egy monitoring rendszer része lesz. ( Bővebben: Link ) Az Arduino az automatiksan detektált szenzorok azonosítója és rajta mért hőmérséklet alapján GET URL-t generál és átadja egy szerveren lévő php-nak ami adatbázisba menti. Fontos,volt, hogy automatikusan detektálja és használja fel a szenzorokat, tehát a kódot 1x kell megírni, utána nincs vele teendő. Ha nem akartok tökölni vele később, javaslom ezt a megközelítést. A hozzászólás módosítva: Okt 25, 2013
Sziasztok.
Került hozzám néhány DS18B20 (5m vezetékkel vizmentes kivitel). Régebben használtam 18S20-t. A kérdésem az lenne, hogy a kiolvasási rutin használható-e a 18B20-hoz? Értem én ez alatt, -hogy a vett bájtok az előjel és a hőmérséklet- természetesen át lesznek alakítva. Csak jöjjön adat. Elég sokat szórakoztam ugyanis egy "épkézláb" megoldás kivitelezésén anno. A hozzászólás módosítva: Nov 2, 2013
A kiolvasó rutin ugyanaz mindkettőhöz - sőt minden 1wire eszközhöz. A bájtok értelmezése tér el, de azt sem probléma megoldani.
Kiszi a gyors választ. (hamarosan ki is próbálom)
Sziasztok!
A segítségeteket szeretném kérni. Találtam egy cikket PC RS232 csatolóról. Én külső tápról szeretném meghajtani a DS1820-at, mert hosszú vezeték húzódik az érzékelőig. Hogy alakítsam át a kapcsolást külső táphoz? Jelenleg non-parasitic módban üzemel max 10m vezetékkel. De néhány helyen hosszabb lenne szükséges. Tudna valaki segíteni? Köszönettel: Csaba
Biztos kell ehhez külső táp? Sokunk sikerrel használja 30-40 méter távon is, akár 3.3V-ról hajtva is.
Azért gondolom, mert nyugalmi állapotban 2,34 V-ot mérek Vdd-Gnd között. Ez olvasás alatt lemegy akár 2,29 ig is. Igaz, mindemellett olvasás alatt Data-Gnd között 6,2V-ot mérek.
Elképzelhető, hogy a linkelt rajz szerint a soros porton csak akkor van ott a megfelelő fesz szint amikor olvasás van?
Sziasztok!
Szeretnék segítséget kérni abban, hogy van-e valami védelem ds18b20 busz és PIC között, amit be lehetne rakni, mert csináltam egy projektet, 24 eszköz van rajta 3x8-as csoportban, kb. 40-40 méteres buszokkal. Már megy vagy egy hónapja, semmi baja eddig, de azért én félek, hogy ez egy PIC lábnak nem fog tetszeni. Raktam rá 2 1n4148-as diódát táp felé és gnd felé is, de nincs valami optikailag leválasztós cucc, vagy valami illesztő IC? Nem akarok ilyen i2c-s, meg uart-os ic-t felrakni, mert ha már szenvedtem pár hónapot a 1wire program korrekt megírásával, akkor maradnék ennél a protokollnál. Segítségeteket előre is köszönöm!
A túlfeszvédelmet a (Zener) -> Szupresszor dióda -> Varisztor kombóval érdemes megoldani. Ha ezek benne vannak, már adtál egy esélyt a túlélésre
Sziasztok!
Az érzékelők "felfűzésével" kapcsolatosan kérnék tőletek tanácsot. 1Wire szakirodalom azt ajánlja, hogy akkor érhető el a legnagyobb távolság/kábelhossz az érzékelők között, ha egymás után sorba alakítjuk ki a busz rendszert. (nem soros kapcsolásra utalok!) Ha nekem van egy helység amit mérni kell, oda csak egy gégecsövön tudok be- és kimenni. Ha CAT5 kábelt használok, akkor hogy érdemes kötni? Két külön kábelt húzzak be vagy elég, ha 1 kábel különböző ereit használom? Köszönettel: Csaba
Sziasztok
Fűtésvezérlés készitésébe fogtam ismét és felvetödött egy kérdés, a DS18B20 szenzor negativ lábát direkt negativra kell kötni vagy esetleg be lehet iktatni egy 1kilos ellenálást? Még nem tudom hogy fogom használni a bemenetelt, kontaktus vagy DS.
Miért kellene beiktatni ellenállást?
Szerk.: lehet, hogy értem. Az nem jó, hogy odateszel egy 4k7 felhúzót, az esetleges kontaktust pedig a gnd és a láb közé teszed? Ha végül kontaktus lesz a bemenet, akkor ez biztosítja a felhúzást, ha a kontaktus nem zárt. Ha meg DS, akkor meg ott lesz neki az ellenállás. A hozzászólás módosítva: Nov 24, 2013
Nem teljesen, a kontaktus teljesen független. Az ellenállás a DS számára már a szenzortol indulo vezeték végén lenne és a kontaktus száméra pedig a panelon. És ugyebár a DS-t fel kell huzni mig a kontaktust lefelé huznám és persze más értékü ellenállással.
Miért ne lehetne a DS számára is az ellenállás a panelen? Kontaktust meg húzd felfelé, és probléma megoldva.
Üdv!
Van tapasztalatotok arról, hogy DS18B20-at mennyi időnként lehet lekérdezni anélkül, hogy a saját melegedése befolyásolná a mért hőmérsékletet? Most kb 100ms-es ciklusban kérdezem le, de így bizony már csal, akár 1 fokot is.
Van értelme 100ms időnként olvasni egyáltalán?
Egyébként helyzettől függ. Ha egy nagyobb kiterjedésű felületre van fogatva, akkor nem okoz jelentős hőmérsékleteltérést a gyakori mérés. Ha csak úgy a levegőben lóg, akkor meg biztosan okoz. Ha le tudod mérni, hogy mennyit befolyásol a hőmérsékleten, akkor azt utána ki kell vonni belőle, és ennyi. |
Bejelentkezés
Hirdetés |