Elektroda.pl
Elektroda.pl
X
Sklep HeluKabel
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pomiar 30 temperatur + 30 przekaźników

rmajda 09 Wrz 2007 21:19 3368 26
  • #1 09 Wrz 2007 21:19
    rmajda
    Poziom 20  

    Witam,
    Potrzebuję zrobić urządzenie które będzie mierzyło temperaturę w 30 punktach i sterowało 30 przekaźnikami.

    Do sterowania chciałbym zaprzęgnąć atmege128 ale jak wiadomo ma tylko 8 przetworników ADC. Jaki multiplekser (symbol) mogę zastosować do przełączania sygnałów pomiarowych z 30 czujników LM35? Oraz drugie pytanie czego użyć do sterowania 30 przekaźników tak aby zminimalizować liczbę pinów potrzebnych na uC?

    0 26
  • Sklep HeluKabel
  • #2 09 Wrz 2007 21:43
    Alchemik84
    Poziom 13  

    Jeżeli chodzi o multiplekser wejściowy to proponuje dwie kostki analogowych multiplekserów 16 wejściowych 74HC/HCT4067, czyli zostaną 2 wejścia wolne.
    A na wyjście umieściłbym 4 układy 74F138 (lub coś podobnego), są to demultipleksery o 8 wyjściach. Oczywiście na wyjściu demultipleksera musisz podłączyć tranzystory sterujące przekaźnikami.

    0
  • #3 09 Wrz 2007 21:48
    antrykot
    Poziom 20  

    2. Możesz użyć rejestrów przesuwnych np 4094 + jakiś element mocy (da sie zrobić na 2 pinach przy połączeniu kaskadowym i 8 przy równoległym).
    Przy równoległym 4 przekaźniki mogą być włączone jednocześnie.
    Możesz też użyć 2 demultiplexerów 74ls154. Wtedy wykorzystasz 8 lin, i 2 czujniki będą mogły być włączone równocześnie.

    0
  • #4 09 Wrz 2007 22:06
    gothye
    Poziom 33  

    czemu nie ds1820 na szyne 1wire ,mozna do jednej nogi podpiąc ich 32 szt :)

    nawet atmega 16 da rade temu projektowi :)

    0
  • #5 09 Wrz 2007 23:31
    owurac
    Poziom 15  

    A jako wyjścia ds2408 1-wire 8-Channel Addressable Switch cztery sztuki. Wystarczy jedna noga procesora do wszystkiego. Tiny2313 :) lub jakikolwiek z 2k flasha da rade ;)

    0
  • #6 09 Wrz 2007 23:43
    Alchemik84
    Poziom 13  

    antrykot napisał:
    2. Możesz użyć rejestrów przesuwnych np 4094 + jakiś element mocy (da sie zrobić na 2 pinach przy połączeniu kaskadowym i 8 przy równoległym).
    Przy równoległym 4 przekaźniki mogą być włączone jednocześnie.


    Jeżeli by wykorzystać rejestry przesuwne połączone kaskadowo to znikną ograniczenia związane z ilością włączonych przekaźników. Po prostu jeżeli potrzebujemy zmienić stan któregoś przekaźnika to wpisujemy nowe 30 bitowe słowo do rejestrów. Załadowanie 30 bitów szeregowo zajmie przy kwarcu 1Mhz 30us, a w tak krótkim czasie mechaniczny przekaźnik nie jest w stanie zareagować (czas reakcji jest liczony w ms).

    0
  • #7 10 Wrz 2007 01:55
    CDMaster
    Poziom 14  

    Ja tam popieram pomysł z 1-Wire:D DS18B20 oraz DS2408 (o którym dopiero co się dowiedziałem... dzięki owurac)...
    ale jeśli potrzebujesz większych prędkości jeśli chodzi o odczyt temp. (w ds18b20 jak chcesz 12bit dokładność to musisz poczekać coś koło 0,7s) to polecam jakiś multiplekser:D

    0
  • #8 10 Wrz 2007 09:23
    rmajda
    Poziom 20  

    Dziękuję wszystkim za informacje. Zrobię chyba klasycznie czyli multiplekser i demultiplekser.

    0
  • #9 10 Wrz 2007 11:52
    Ch.M.
    Poziom 27  

    Hmm żebyś się przypadkiem nie zdziwił, gdy sprzęt nie będzie dobrze działać... Może być wszystko OK, pod warunkiem, że przewody są krótkie... ale mogę się założyć, że nie :)
    i2c (TWI) daje Ci większe pole do popisu (jeśli chodzi o czujniki), przekaźniki też dobrz eby było sterować i2c, ale z oddzielną szyną zasilania dla cewek.
    Pozdrawiam

    0
  • Sklep HeluKabel
  • #10 10 Wrz 2007 12:02
    rmajda
    Poziom 20  

    Masz na myśli zakłócenia??

    0
  • #11 10 Wrz 2007 12:14
    Ch.M.
    Poziom 27  

    szeroko pojęte zakłócenia oraz spadki napięć. Kilkadziesiąt cm to antena na setki MHz, ale kilkumetrowa to już pasmo krótkofalarskie. Pomijając nawet to, spadki napięć generowane przez załączające się czujniki lub jeszcze gorzej stany nieustalone oraz rezonanse na tak długiej linii na pewno objawią się złym odczytem.

    0
  • #12 10 Wrz 2007 14:22
    gothye
    Poziom 33  

    wystarczy ds1820 dac na kabelku ekranowanym ,swietnie nadaja sie kabelki od audio ,odcinek 15mb z ds' spisuję sie dobrze w domowym systemie sterowanie piecem ;]

    0
  • #13 11 Wrz 2007 09:24
    Ch.M.
    Poziom 27  

    A ja bym zaproponował coś na i2c. Można tworzyć prawie dowolne topologie, a do tego można obsługiwać nie tylko sprzętowo na jednej parze I/O ale na dowolnych pinach. (na jednej parze można spokojnie podłaczyć 127 urządzeń bez kombinowania, limitem jest pojemność linii)


    gothe: jeden czujnik i 15m przewodu to nie problem, ale pomnóż to przez 30 i wyjdzie taka pojemność, ze zbocze narastające będzie wyglądać jak podjazd dla wózków inwalidzkich pod ZUSem
    Pozdrawiam

    0
  • #14 11 Wrz 2007 18:30
    crazy_phisic
    VIP Zasłużony dla elektroda

    :arrow: rmajda, procesor (w domyśle ATmegaXXX) ma tylko jeden przetwornik ADC ;)
    :arrow: Ch.M. I2C nie zostało pomyślane do takich zastosowań o jakich mówi Autor, sam negujesz jego zastosowanie mówiąc o metrach kabli i powstającej pojemności, chyba że chcesz dołożyć układy "poprawiające" impulsy na magistrali.

    Jeśli można wiedzieć to napisz w jakich warunkach będzie pracował układ, jaka będzie odległość czujników od procesora. Pamiętaj że multipleksery nie są idealne i będą wprowadzać błąd do odczytu "analogowego".

    0
  • #15 11 Wrz 2007 21:48
    rmajda
    Poziom 20  

    Tak wiem że jeden przetwornik ale chodziło mi o to że ma 8 kanałów. Brak precyzji :-)

    Układ ma pracować do pomiaru temperatur w terarium pająków :-). Jest tam 30 gablotek (jedna ściana). I do każdej gablotki ma być możliwość oddzielnego sterowania ogrzewaniem.

    0
  • #16 12 Wrz 2007 08:59
    Ch.M.
    Poziom 27  

    Ad crazy: Nie zgodzę się z Tobą, wszystko zależy od przewodu elektrycznego. W zastosowaniu autora wystarczy para skręconych przewodów, a nawet moge się założyć, że i kabel audio by przeszedł (topologia bardzo prosta, brak zakłóceń a do tego szybkość może być minimalna. Do jego zastosowania wystarczy 1kHz na linii SCL. W końcu temperatura się nie zmieni gwałtownie, ale za to ważny jest dokładny pomiar by nie zmarzły stworzonka.
    Wyprowazcie mnie z błędu jeśli w nim tkwię
    Pozdrawiam

    0
  • #17 12 Wrz 2007 09:17
    rmajda
    Poziom 20  

    A jeśli I2C, to jak do tego podłączyć czujniki temperatury, czy są jakieś na I2C, a jeśli tak to proszę o symbol.

    0
  • #18 12 Wrz 2007 09:19
    crazy_phisic
    VIP Zasłużony dla elektroda

    Dlaczego chcesz używać skręconej pary dla sygnałów które nie są różnicowe? Tutaj jedynie ekranowane połączenia mają rację bytu. Ale obawiam się że dopiero testy odpowiedzą na pytanie czy I2C się "wyrobi", ja niestety bardzo sceptycznie na to patrzę.

    Czujnik to np. LM75A.

    0
  • #19 12 Wrz 2007 09:40
    rmajda
    Poziom 20  

    Jak się robi adresowanie, 30 jednakowych urządzeń na magistrali I2C ? LM ma tylko 3 linie adresowe??

    Lub ew. jak mierzyć temperature w tych 30 punktach, bo nie ukrywam że Wasza dyskusja mnie zbiła z tropu.

    0
  • #20 12 Wrz 2007 10:23
    Ch.M.
    Poziom 27  

    3 zmienne w adresie to juz 8 kombinacji (LM75), TMP100 to kolejne 8 adresów, SE98 to kolejne 8 kombinacji... itd)
    Tutaj kilka innych przykładów:
    http://www.nxp.com/acrobat_download/datasheets/SE98_1.pdf

    Wiem ze to uciążliwe, ale za to ile zyskuje się umiejętności i wiedzy. W dodatku nie widzę łatwiejszej metody... no chyba że zastosujesz małe procki na końcach z ADC (np ATtiny13 albo jeszcze lepiej coś ze sprzętowyym i2c -ATtiny25/45/85) i wtedy uzyskasz na początek 127 adresów slave (powiększalnych do dowolnej wartości).

    Warto się pobawić czymś takim dla celów edukacyjnych choćby, a równierz masz 100% szans na powodzenie projektu.
    Pozdrawiam

    0
  • #21 12 Wrz 2007 14:06
    crazy_phisic
    VIP Zasłużony dla elektroda

    Pozostałbym przy czujnikach analogowych. Rmajda, zrób test, podepnij na 10 metrowym czujnik analogowy i zobacz jak będzie pracował.
    Rozwiązanie z modułami wyposażonymi w małe uP jest również bardzo dobre, tylko wtedy optymalnym będzie zastosowanie RS458.

    0
  • #22 12 Wrz 2007 14:48
    trol.six
    Poziom 30  

    A czy to ma być solidne czy tanie? Jak z dokładnością pomiaru?

    A nie da sie zastosować np 4 x atmegi8. Jedna na 8 pomiarów?

    Po kiego grzyba tyle interfejsów?

    Co do pomiaru, na dłuższe linie robi sie pętle prądowe. np 4-20, albo jakaś własna konstrukcja.

    0
  • #23 12 Wrz 2007 15:22
    owurac
    Poziom 15  

    Może i polubiłem 1-wire ale w tym przypadku wydaje mi sie najlepszym rozwiązaniem. Ciągniesz jedną parę przewodów przez wszystkie terraria i w każdym z nich podłączasz ds18b20 do pomiaru temperatury i ds2405 do sterowania ogrzewaniem. Do i2c nie jestem przekonany, a już szczególnie korzystanie z 3 czy 4 rodzajów czujników jest IMHO bez sensu.

    0
  • #24 12 Wrz 2007 15:36
    trol.six
    Poziom 30  

    owurac to jest argument , ilość okablowania :)

    Niektóre przewody są tak drogie, ze taniej byłoby zrobić 30 czujników na każdym procesor, tani jakiś attiny, i wszytko spiąć na magistrale I2C, bądź 485 z czujnikami pracujace jako slave. I wszystko z jednym kablem do centrali z przekaźnikami.

    Oczywisice na tyle na ile umożliwia konfiguracja terrariów na takie podłączenie.

    Na ds'ach nic nie robiłem jeszcze i nie wiem ile z nich pożytku a ile kłopotów

    0
  • #25 12 Wrz 2007 15:53
    owurac
    Poziom 15  

    DS2405 jeszcze nie używałem, ale myślę, że nie powinno być z nimi żadnego problemu. Używałem za to między innymi 8 bitowe DS2408 i oczywiście DS18B20. Ilość okablowania może być argumentem, ale dla mnie ważna jest również prostota i elegancja. Masz tu tylko jedną parę przewodów a na niej 30 termometrów i 30 łączników pogrupowanych parami w każdym terrarium.
    Co do oprogramowania to pełna obsługa 1-wire włącznie z search rom napisana w C mieści się spokojnie w 2k flasha (myślę o uC AVR), więc attiny2313 powinien spokojnie wystarczyć, chyba z aplikacja będzie bardziej rozbudowana. W application notes Atmela masz opis krok po kroku jak to oprogramować i to na kilka sposobów. Możesz również użyć dedykowanych kontrolerów 1-wire na i2c (DS2492) bądź uart (DS2480).

    0
  • #26 13 Wrz 2007 09:48
    rmajda
    Poziom 20  

    Dzięki za info, 1-wire myślę że jest dobrym pomysłem. Zobaczymy co się wykluje, bo koleś który to chciał na razie milczy :[

    0
  • #27 13 Wrz 2007 15:12
    Jdsoul
    Poziom 23  

    Kolega nie podał informacji co do rozmieszczenia 30 czujników i 30 przekaźników :)

    Jeśli to kwestia 30-100 m magistrali i przekaźników wykonawczych w jednym miejscu, to 1-wire dopuszczalne :) wskazne i wogóle o I2c raczej należy zapomnieć :(

    Jeśli jednak ma być to to co podejrzewam , czyli coś ala Inteligentny budynek :) czujnik i sterowanie przekaźnikiem w tym samym pomieszczeniu to aż się prosi modularyzacja urządzeń i magistrala 485 lub coś ala EIB :)

    Why. po pierwsze łatowść wykonania , po drugie łatwość serwisu i jak padnie 1 czujnik lub 1 przekaźnik to całości systemu demontować nie trzeba. Co najwyżej w oprogramowaniu Master zapewnić pominięcie uszkodzonego modułku i zgłoszenie alarmu.

    Co do procka w węźle to nawet AT89C2051 wyda z uproszczonym przetwornikiem A/C na komparatorze - taka zabawka R/C i LM335 na wejściu :) z i jakimś przekaźnikiem do sterowanie - żadna finezja a koszty dążące do 0 :) Nadajnik RS-485 na czymś tanim 176 czy jakiś inny.

    Natomiast w zależności od potrzeb Mastera magistrali zrobiłbym na Atmedze8 , co najwyżej dla podniesienia jakości systemu zastosowałbym na wejściu/ wyjściu nadajnika RS485 przekaźnik przełączający i zamknął pętlę RS-485 , ale to już fanaberie gościa od systemów pożarowych.

    Wbrew pozorom po podliczeniu kosztów może wyjść w pobliżu 1 wire.

    Oczywiście rozwiązanie z multiplekserem jest równie dobre a nawet lepsze tylko wnosi koszt dobrego okablowania a to przy galopujących cenach !dobrych! kabli ...

    Poza tym gwiazda ma tą wadę że jest mało odporna na modyfikację w ukąłdzie , np. przeniesienie głównej jednostki.

    Dodano po 26 [minuty]:

    Doczytałem o terrarium, ja bym tam nie chciał mieć w chacie za zimno :)
    więc proponuje podarować każdemu zwierzaczkowi oddzielny procesorek i to jeszcze w układzie korzystania z własnego czujnika temperatury na wypadek niedoczekania się kontroli od tej Masterowej Atmegi :)

    Dodano po 4 [minuty]:

    Ale wtedy to bym zrezygnował już z RS-485 tylko zrobił takiego śmiesznego ringa łącząc kolejne wejścia RX-TX uartu w kolejnych procesorkach :) i wykorzystując poczciwy tryb pracy uartu z tokenem

    Nie wiem czy pamiętacie taką zabawę z 8051 z adesowaniem kilku różnych procesorków na 1 rs z wykorzystaniem trybu 8 i 9 bitowego :) :)

    Tak czy inaczej warto zapewnić zwierzakom możliwość przetrwania na wypadek awarii systemu. Bo szczególnie cenne okazy mągą być więcej warte niż ta cała elektronika :) :) :)

    0