Fórum témák

» Több friss téma
Fórum » AVR-es hőmérő DS18B20-szal
 
Témaindító: jocoka, idő: Aug 23, 2007
Témakörök:
Lapozás: OK   1 / 1
(#) jocoka hozzászólása Aug 23, 2007 /
 
Üdv mindenkinek
Kellene nekem egy kis segítség nemrég a neten találtam egy remek kis kapcsolást ez egy hőmérő AT90S2313-mal és ds18b20-al megépítve.
Na én össze is raktam a kapcsolást és felprogramoztam az avr-t.
De a kijelzőn egy ilyen felirat jelenik meg hogy PC.
De semmi hőfok kijelzés.
A kérdésem az hogy én ilyen avrt vettem:attiny2313 és
hogy ez jó e hozzá vagy esetleg a programal van valami.
A segítséget előre is köszönöm.
Üdv: Joco
Itt a link

link javítva! szabi83
(#) jocoka hozzászólása Aug 23, 2007 /
 
Köszi Szabi83 a link javítást
(#) Braf válasza jocoka hozzászólására (») Aug 23, 2007 /
 
A DS18b20 nak van egy saját belső rom ja ami egy 16 számjegyű címet tartalmaz mit előbb ki kell belőle olvasni és be kell állítani a mikrokontrollerben hogy ezzel a kóddal "keresse" a szenzort! Mert szerintem jelen esetben a mikrokontroller keresi a szenzort de nem találja mert nem a megfelelő címmel keresi.
(#) Braf válasza Braf hozzászólására (») Aug 23, 2007 /
 
A basic forráskódban ott is van vastag betűvel kiemeltem. Ezeket a számokat kell kicserélni a te szenzorodnak megfelelővel.

Do
1wreset : 1wwrite &HCC : 1wwrite &HBE 'polecenie odczytu DS18x20
Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty - temperaturę
T = Odczyt(2) ' starszy bajt temperatury
Shift T , Left , 8 'przesuń w lewo o 8 miejsc
T = T + Odczyt(1) 'w zmiennej Integer jest dziwna "ułamkowa" wartość
Shift T , Right , 4 'zamiast dzielić przez 16 przesuń w prawo
' Shift T , Right , 1 'dla kostek DS18S20, DS1820 przesuń o 1 bit



1wreset ' dopiero teraz daj polecenie konwersji:
1wwrite &HCC 'polecenie SKIP ROM, bo pojedyncza kostka
1wwrite &H44 ' dokonaj konwersji - zmierz temperaturę
'po cyklu pracy poczekaj

Liczba = T
Gosub Wyswietlanie
(#) jocoka hozzászólása Aug 23, 2007 /
 
Köszön a segítséget csak tudod én ezzel csak most keztem ell foglalkozni és nem nagyon értek a programozáshozz.
De azt értem hogy ki kell cserélgetni a számokat a programban de hogy tudom kideriteni a szenzorom 16 jegyű számát.
És mivel tudom újra visszaforditani a ".bas" fájt hex-re.
(#) Braf válasza jocoka hozzászólására (») Aug 23, 2007 /
 
AVR ekhez nem sokat értek...
A szenzornak úgy lehet kideríteni a számát pl hogy írsz egy olyan programot ami kiírja neked a 7 segmens kijelzőre scrollozva a kódot.
A basic forráskódot megfelelő fordítóprogrammal lehet átfordítani hex be. Mivel nem értek AVR ekhez ezért nem tudok neked ilyen programot mondani de biztos akad olyan aki ért hozzá és majd ő megmondja.

Ajánlom vicsys írását igaz ő pic el oldotta meg: Link
(#) vicsys válasza Braf hozzászólására (») Aug 23, 2007 /
 
Jaja, csak ahhoz nem jó a 18b20 -as.
AVR ügyileg pedig én sem tudok semmi okosat mondani.
Esetleg:
Bővebben: Link
(#) jocoka hozzászólása Aug 23, 2007 /
 
Hát remélem valaki majd többet tud segíteni ez ügyben de azért köszönöm az infókat.
(#) jocoka hozzászólása Aug 23, 2007 /
 
Szia Braf
csak egy kérdésem lenne feléd itt a hobbielektronikába én is látam a vincsys féle cuccot sőt meg is építetem egy barátomnak remek lett "köszönet vincsys nek a cuccért", namost találtam egy másik kapcsolási rajzot a neten ds1820-al.
de kellene egy kis segítség úgy gondoltam elkérem a havertól amit csináltam neki abba belerakom a ds-t és az az elején kíírja a ds 16 számjegyű kódját.
Csak a programban hogy kell átírni a kódot,ez lenne a kérdésem.
Elöre is köszi.

http://www.kmitl.ac.th/~kswichit%20/avrthermo/avrthermo.html
(#) potyo válasza jocoka hozzászólására (») Aug 23, 2007 /
 
Amit belinkeltél program, abban nincs benne a szenzor kódja, ezért nemis lehet átírni. Esetleg a ds1820.h fájlba kellene belenézni, hátha abban van. Viszont ha úgy van megírva a program, hogy csak egy szenzort akar kezelni, akkor jó eséllyel a kód ellenőrzés helyett a ds1820-nak kiküldi a kód átugrása parancsot, és akkor nemis kell a kódot tudnod a működéshez. Kellene látni, hogy mi van a ds1820.h és ds1820.c fájlokban.
(#) jocoka hozzászólása Aug 24, 2007 /
 
Köszönöm a választ továb kutakodom a neten hátha találok valami értelmeset.
Egyébként látam hasonlot DS1621-el megépitve,
ennél is be kell állitani a programot vagy csak elég beégetni és aval kész?.
Tudsz erről valamit mondani?
Előre is köszi.
Üdv:joco
(#) gtk válasza jocoka hozzászólására (») Aug 24, 2007 /
 
Szia !

Most tulajdonkeppen mi lenne a cel?A meglevot atalakitani, vagy DS1621-re mast alkotni?
DS1621 I2C protokolon komunikal; van az ICnek 3 laba amelyekkel a cimet tudod konfiguralni.
Itt egy ATmega8 + DS1621-el szerelt homero (sajat)
(#) jocoka hozzászólása Aug 24, 2007 /
 
Szia !
Hát úgy voltam a legelején hogyha nem megy a program átírása akkor egy teljesen új dolgot csinálok.
Úgyhogy marad a teljesen új cucc építése.
Megnéztem a ciket amit beraktál gondolkodom rajta.
Amúgy köszönöm a választ.
Üdv:joco
(#) gtk válasza jocoka hozzászólására (») Aug 24, 2007 /
 
Meg kellene nezni a AT90S2313 es a Tiny2313 kozotti kulonbseget. Ha van forras es muszaly akkor at lehet irni. En meg is tennem, csak sajnos nagyon rossz netem van.
Az avr.tavir.hu -n ha a keresobe beirod Tiny2313 akkor megtalalod azt a forumot/leirast ahol a kulonbsegekrol ir.Legalabbis igy emlekszem.
Ez azert erdekes, mert lehet, hogy csak fuse biteket kell atallitani es mukodni fog az egesz.
(#) jocoka hozzászólása Aug 24, 2007 /
 
Szia !

Megnézem úgy is hátha javít valamit a helyzeten.
De én úgy érzem hogy a szenzor kódjaival lesz gond.
Azt kéne valahogy kiolvasnom és beírni valahogy a programba.

(#) gtk válasza jocoka hozzászólására (») Aug 25, 2007 /
 
Akkor kell keresni vagy irni basicben egy progit, ami kepes arra hogy kiolvassa a 64 bites azonositot.
(#) hhkfk hozzászólása Aug 25, 2007 /
 
(#) gtk válasza jocoka hozzászólására (») Aug 25, 2007 / 4
 
Szia !

Beleneztem az adatlapba.
33H utasitassal ki lehet olvasni a 64 bites kodot, ami tartalmazza a: 8 bites 'family code' -t, 48 bites 'serial number' -t es 8 bites CRC-t.
Namost en basichez nem ertek, de a lepesek a kov. lennenek:
- 33H utasitast elkuldeni , (1wwrite gondolom)
- 64 bit adatot kiolvasni, (1wread (?) ? )
- elso/utolso 8 bitet kimaszkolni, vagy eldobni, a 48 bitet eltarolni -ez az eszkoz azonosito-, majd megfelelo helyeken atadni a programnak. Igy elvileg, ha kicsereled mas azonositoju IC-re, akkor is mukodni fog .Eredetileg is igazan bele kodolhattak volna ennyit..
(#) jocoka hozzászólása Aug 25, 2007 /
 
Szia !

Fú ez nekem egy kicsit igy kínai nem értek a programozáshoz úgyhogy nézek valami más kapcsolást ami esetleg könyebben kivitelezhető.
De azért köszönöm mindenkinek aki próbált segiteni.
(#) potyo válasza gtk hozzászólására (») Aug 26, 2007 /
 
Miért szórakoztok itt a rom kóddal? A CCh parancs használatával a rom kód ellenőrzés átugorható, így nemis kell azt tudni. Ha csak egy szenzor van, akkor így célszerű csinálni. Reset után ki kell küldeni a CCh parancsot, majd követi az a parancs, amit akarsz csinálni (44h, BEh, stb.)

A rom kód egyedi, minden egyes chipnek másmilyen. Tehát ha használod, és kicseréled a szenzort, akkor biztosan nem fog működni. De a rom kód használatának csak akkor van értelme, ha több 1-wire eszközzel kommunikálsz ugyanazon a buszon.
(#) gtk válasza potyo hozzászólására (») Aug 28, 2007 /
 
Nem szorakozunk, arra nincs idom; probaltam segiteni.
Ha ki lehet olvasni a 64 bites kodot a procibol, ugy ahogy azt leirtam, akkor nem szamit a csere, mukodnie kell.
(#) potyo válasza gtk hozzászólására (») Aug 28, 2007 /
 
Az olvasás pontosan úgy történik, ahogy írtad. A többivel van a gond. Ha a csere alkalmával a kódot is cseréled a programban, akkor ok, egyébként nem fog működni.
(#) pakibec hozzászólása Márc 27, 2008 /
 
Szisztok!

Én is építettem egy ilyen hőmérőt. A Bascom-nak szerencsére van 1w-t kezelő utasításkészlete, ezzel müködik is.
Csak a kisérletezés kedvéért megpróbáltam a leírás szerint követni a kommunikációs protokolt saját utasításokkal, de a resetig jutottam. Még a presense jelzés visszajött, de semmilyen parancsot nem fogadott el, vagy az eredményt nem tudtam kiolvasni.

Az időzítést timer1-el és waitus-el is próbáltam, semmi. Szerintetek mi lehet az oka? Szkóppal megnéztem, hogy egy-egy slot-ot ciklusba tettem és így lemértem az időzítést, jónak tünt.

Próbálta már valaki?
Üdv
(#) szovhoz válasza jocoka hozzászólására (») Ápr 22, 2008 /
 
a gond a procival van neked nem tiny2313 kell hanem at90s2313 abascomban bele kell írni a proci adatait a progiba vagy betenni egy dat.filet ami azonosítja a prockót azért nem megy mert a file nem erre készült! tessék olyan procit használni és meni fog!
(#) toma3757 hozzászólása Jan 30, 2019 /
 
Sziasztok!

Attiny25-höz próbálok illeszteni egy ilyen szenzort, de valamiért nem akar sikerülni.
Itt-ott talált kódokat rakok össze egyenlőre igazából, itt vannak a források:
DS18B20 lib
UART transmit lib
Mivel ezen nincsen uart így muszáj volt implementálni, pontosabban keresni egy implementációt

Az uart funkció működik, szöveget tökéletesen küld, de a beolvasott hőmérsékletet már nem.
Valaki tudna segíteni esetleg, hogy mi lehet a hiba?
Uarton valamiféle katyvasz jön, konkrétan: 55 251 ha jól értelmezem
Csatoltam a kódokat, illetve képet a 1wire kommunikációról.
Következő: »»   1 / 1
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