DS1820 i LCD

Usługi pogrzebowe w Lublinie. Zakład Pogrzebowy działający na ...

Dobra jak zrobiæ prosty uk³ad elektroniczny, który by wy¶wietla³ na LCD dane z powiedzmy 1-10 termometrów cyfrowych DS1820 :?:
Acha ja wyznaje najprostrze rozwi±zanie to najlepsze rozwi±zanie. Nie bardzo znam siê na elektronice. Jak narazie to mój najwiêkszy wyczyn to z³o¿enie termometra opartego o ten uk³ad. I nawet dzia³a :mrgreen: .
Odrazu mówie ¿e ani nie mam sposobno¶ci ani umiejêtno¶ci ¿eby wytrawiæ p³ytke wiêc najlepiej jak by wyko¿ystywa³o uniwersaln±. A sam wy¶wietlacz to pewnie bêdzie dwie lub trzy linie znaków pewni po 24 w lini albo jaki siê znajdzie.

Oczywi¶cie najwa¿niejsze to cena.

Jestem otwarty na propozycje nawet zmiany czujnika jak spe³ni warunek ni¿sza cena przy nie zmienionej dok³adno¶ci w stosunku do DS1820(i jego wszelakich odmian typu B czy S).


To jak masz dla 1 to dla 10 te¿ nie powiniene¶ mieæ problemów. Podpinasz równolegle kolejnych 9 czujników (sprawd¼ czy nie bêdzie trzeba zmniejszyæ rezystancji rezystorów podci±gaj±cych liniê 'data') i ka¿demu przydzielasz inny adres. Reszta to kwestia zmiany programu. Przy tak du¿ej ilo¶ci czujników pamiêtaj aby oddzielnie poprowadziæ zasilanie dla nich. Nie zasilaj ich wszystkich lini 'data' bo nie podo³a, albo z trudem. Poszukaj na elektrodzie. Tam jest pe³no schematów z tymi czujnikami i z LCD.
Ja znale¼æ co¶ takiego:
program:
http://republika.pl/rejestr/strony/l...rmometru1.html

opis ca³o¶ci wraz z schematem:
http://republika.pl/rejestr/strony/termometr.html

Pytanie moje dotyczy tego jak zmodyfikowaæ to (program, schemat je¿eli trzeba) ¿eby mo¿na by³o pod³±czyæ kilka czujników? A i ma byæ wy¶wietlana tylko aktualna temeratura. Do tego ¿eby nie trzeba by³o modyfikowaæ programu jak siê zmieni czujnik.
Ale jestem wybredny :D
Nie wiele Ci pomogê z powodu tego, ¿e program jest napisany w C++ w którym ja nie piszê programów. Z tego co widzê program ma gotow± procedurê do wykrywania wiêkszej ilo¶ci czujników. Musisz teraz tylko wykorzystaæ to i zmodyfikowaæ tak aby wy¶wietla³ n.p. sekwencyjnie temperatury ze wszystkich czujników. Moim zdaniem jest to ju¿ praktycznie kosmetyczna zmiana - dos³ownie. Najlepiej jak napiszesz do konstruktora projektu i poprosisz go o tak± poprawkê. Mam nadziejê, ¿e zdajesz sobie sprawê z tego, ¿e nie bêdzie to tani miernik temperatury. Pojedyñczy czujnik DS1820 kosztuje oko³o 50z³ za sztukê. Je¶li wymagasz precyzji +/- 1*C to radzi³bym Ci to zrobiæ na analogowych czujnikach typu LM35 albo nawet jakie¶ termistory, n.p. KTY.... i do tego dorzuciæ jaki¶ prosty przetwornik AC. Bêdzie du¿o taniej. Poza tym projekt jest naprawdê niez³y i prosty. Je¶li jeszcze chcesz zmniejszyæ koszty to zamiast wy¶wietlacza LCD daj wy¶wietlacz 2 cyfry na LED-ach.


Musze Ciê zawie¶æ w sklepie w którym ja je kupuje DS'y s± znacznie tañsze http://www.led.com.pl/elektronika/pr...oducts_id=6339

Zostaje LCD. Wy¶wietlacz led to koszt chyba 2z³ czyli powiedzmy ¿e chcemy temp z dok³adno¶ci± (dop³adno¶ci± podawania) jedno miejsce po przecinku czyli potrzeba nam wty¶wietlaczy za oko³o 10z³ to za 12 na allegro jest LCD 2x16 a taki jak ju¿ siê to dobrze opanuje mo¿e znacznie wiêcej wy¶wietlaæ ni¿ tylko te dane.
Wcale mnie nie zawiod³e¶, a nawet wrêcz ucieszy³e¶.
Niestety z tym listingiem nie mogê Ci pomóc bo nie znam zbyt dobrze C++, ale mogê Ci powiedzieæ, ¿e w listingu 1 zamiast procedury SKIP_ROM Musisz wstawiæ procedurê READ_ROM. W wyniku tej procedury otrzymasz adresy ROM wszystkich czujników podpiêtych pod magistralê. Nastêpnie wywo³ujesz je pojedyñczo procedur± MATCH_ROM a reszta ju¿ jest taka sama. Poza tym musisz to jako¶ ze sob± pogodziæ, to znaczy albo na przyk³ad dajesz dodatkowy przycisk po naci¶niêciu którego sterownik podaje Ci temperaturê z kolejnego czujnika, albo robisz to tak aby sekwencyjnie podawa³ temperaturê z ka¿dego kolejnego czujnika po okre¶lonym czasie, na przyk³ad co sekundê. Je¶li chcesz zrobiæ to jeszcze inaczej n.p. ¿eby temperatury z poszczególnych czujników by³y wy¶wietlane obok siebie na wy¶wietlaczu to ju¿ musisz modyfikowaæ kod odpowiedzialny za wy¶wietlanie danych na wy¶wietlaczu, ale przy ilo¶ci czujników wiêkszej jak 4 mo¿esz mieæ problem z miejscem na wy¶wietlaczu.
bêd± tylko 2. Zastanawiam siê jak zrobiæ aby np przy 40 stopniach w³±cza³ siê wiatrak na pe³n± moc (wiatrak 12cm). Trzeba by do której¶ nu¿ki jaki¶ przeka¼nik pod³±czyæ aby za³±cza³ i wy³±cza³. A mo¿e w bascom'ie programujesz?
Mo¿esz podpi±æ przeka¼nik, ale po co? Wystarczy jaki¶ mocniejszy tranzystor i bêdzie dobrze. Nie, nie programujê w Bascomie, programujê w asemblerze, ale zaczynam siê uczyæ C++ bo jest wygodniejszy przy du¿ych, ale niekoniecznie szybkich programach.

Mo¿esz podpi±æ przeka¼nik, ale po co? Wystarczy jaki¶ mocniejszy tranzystor i bêdzie dobrze. Mo¿esz rozwin±æ to z tym tranzystorem i jak by to mia³o wygl±daæ. Acha doszed³em do wniosku ¿e 35*C to max przy jakim mia³o by siê za³±czaæ.
Na schemacie który pokaza³e¶ mikrokontroler ma wolne wszystkie wyprowadzenia od p3.0 do p3.7 a tak¿e p1.1. Ja pod³±czy³em uk³adzik w³a¶nie pod t± nó¿kê ale mo¿e byæ jaka kolwiek inna z wy¿ej wymienionych. Trzeba bêdzie tylko trochê zmieniæ listning programu. Ta wersja ma dodatkow± zaletê nad przeka¼nikiem: jest szybki, cichy i mo¿na zastosowaæ tutaj PWM czyli Pulse Width Modulation. Oznacza to, ¿e je¶liby napisaæ odpowiedni program który ze znaczn± ale regulowan± prêdko¶ci± za³±cza³by i wy³±cza³by uk³ad to otrzymaliby¶my prosty przetwornik C/A a co za tym idzie mo¿naby p³ynnie regulowaæ napiêciem na wyj¶ciu czyli prêdko¶ci± obrotow± wiatraczka.
http://img71.echo.cx/img71/2310/aaa4he.png

[ Dodano: Nie 15 Maj, 2005 13:43 ]
Aha, jeszcze jeden motyw. Nawet do¶æ ³atwo mo¿na zrobiæ dwustopniow± regulacjê prêdko¶ci czyli co¶ takiego:
Temp: Obroty:
0 Nie krêci siê
1 j.w.
.. j.w
34 j.w.
35 krêci siê z po³ow± prêdko¶ci
.. j.w.
44 j.w.
45 pe³na moc wiatraczka
46 i.w.
i.t.d.
Tamten program wogule nie wykorzystuje przerwañ. Jest tylko jedno 'ale': na czas odczytu termometru musia³by¶ wy³±czyæ przerwania. A tak normalnie w³±czasz przerwania i w programie obs³ugi przerwania wpisujesz co¶ takiego:

http://img235.echo.cx/img235/7109/cc2oc.png
Mam nadziejê, ¿e jest to w miarê czytelne. Nie mogê napisaæ Ci tego w asemblerze bo wtedy chyba musia³bym ca³y program pisaæ od pocz±tku :)
Oczywi¶cie temperatury progowe mo¿esz sobie pozmieniaæ, tak samo port pod który jest podpiety uk³ad. Dodaj jeszcze równolegle z wiatraczkiem kondensator n.p. 1uF.

[ Dodano: Pon 16 Maj, 2005 05:02 ]
Jeszcze jedna sprawa. Jak Ty chcesz podpinaæ tylko dwa czujniki to daruj sobie podpinanie ich pod wspóln± magistralê, tylko wyprowad¼ je, ka¿dy z oddzielnej linii. Jeden czujnik to jedna linia, a wiêc na dwa bêdzie tylko jedna dodatkowo, a w takiej sytuacji mo¿esz odpu¶ciæ sobie wywo³ywanie i sprawdzanie 64-bitowego kodu autoryzacyjnego. Ma³o, ¿e roboty przy tym co niemiara to do tego oszczêdzasz minimum 6 bajtów RAM-u na ka¿dym z czujników. Pamiêtaj, ¿e 89C2051 ma tylko 128 bajtów RAM-u z czego znaczna czê¶æ ju¿ jest zarezerwowana dla rejestrów systemowych i stosu.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl