logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak fizycznie zidentyfikować czujniki DS1820 na magistrali 1-Wire?

alnus 13 Lip 2006 13:07 2223 9
  • #1 2816180
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    na początek uprzedzę - szukałem. to co znalazłem nie odpowiada na moje pytanie. otóż w jaki sposób przeprowadzić FIZYCZNĄ identyfikację czujników w magistrali 1wire. wiem jak programowo szukać i zapisać ich numery, potem odczytywać temperaturę, ale nie wiem w jaki sposób dowiedzieć się z którego czujnika to temperatura. mam kilka pomysłów, ale nie wiem który wybrać, a może są inne znacznie lepsze na które nie wpadłem? czujniki zasilane 3 przewodowo
    1. podłączyć jednen czujnik odczytywać, zapisać w EEPROM'ie, wyłączyć, podpiąć drugi i wkoło macieju do końca
    2. podłączyć naraz wszystkie, odczytać numery, potem po kolei odłączać i przyporządkowywać brakujące . - czy aby można to robić bez wyłączania zasilania całości, czy uda się odłączając tylko zasilanie danego czujnika ( czy nie weźmie sobie zasilania z 1wire?
    3. podłączyć wszystkie naraz, odczytać numery, po kolei grzać ( lub chłodzić) do charakterystycznej temperatury i na tej zasadzie identyfikować?

    do żadnego z pomysłów nie jestem przekonany. być może problem wyda się trywialny, ale zauważyłem na elektrodzie , że wszyscy cieszą się że mają odczyty, a z którego termometru, to już sprawa wtórna:D niestety nie będę miał możliwości fizycznej zamiany miejscami czujników i muszę jednoznacznie określić który jest który najpóźniej przy pierwszym załączeniu urządzenia. jeśli moje pomysły nie są całkiem złe, to może ktoś oceni który najłatwiej zrealizować w Bascomie?
  • #3 2816306
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Najlepiej przed użyciem odczytać w układzie testowym numery czujników i zapisać je odpowiednio w programie. Można by się jedynie wysilić i napisać program automatycznie rozpoznający jeden nowy aktualnie wymieniony czujnik np. w związku z uszkodzeniem poprzednika.
  • #4 2816464
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    chodzi o to , że z 3 czujników 1 ma byc zamontowany na stałe, a dwa podłączone później przez klienta, z możliwością ewentualnej wymiany w razie uszkodzenia ( mechaniczne uszkodzenie nawet prawdopodobne). poza tym może się zdarzyć , że nie będę kontrolował który czujnik do którego urządzenia będzie podłączony. niestety nie mam wolnych linii w procku, żeby łączyć je oddzielnie ( bez identyfikacjiprogramowej)
  • #5 2816539
    Smoczy
    Poziom 20  
    Posty: 436
    Pomógł: 26
    Ocena: 67
    Więc ja widzę to tak:
    -zrobić załączane zasilanie czujników oraz procedurę identyfikacji w ten sposób, że użytkownik podłącza nowy czujnik, wybiera identyfikacje wszystkich podłączonych do magistrali, urządzenie wykrywa nowo podłączony czujnik, a następnie użytkownik przypisuje ten czujnik do konkretnego obiektu, miejsca itp., czujnik zostaje zapamiętany i tak kolejne.
    Nie wiem czy jasno opisałem ale chyba tak.
  • #6 2817092
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    czyli to co opisałem pod sposobem nr1. - przynajmniej ja tak to rozumiem. jedno pytanie - czy można dołączać nowe czujniki "pod prądem", chodzi mi o to czyczujniki nie zgłupieją od zakłóceń na linii. bo podłączenie nowego czujnika to nie dość , że "trzaski" na stykach, to jeszcze ładowanie pustego kondensatora w DS'ie. trochę się tego boje - czy ktoś kto to robił może napisać czy mu sie to bez zgrzytów udało?
  • #7 2818640
    Smoczy
    Poziom 20  
    Posty: 436
    Pomógł: 26
    Ocena: 67
    więc dlatego trzeba zastosować załączane zasilanie czujników i podczas identyfikacji wyłaczać i załączać zasilanie.
  • #8 2819090
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    nie mam z nimi zbyt dużego doświadczenia, ale czy po odłączeniu zasilanie nie będą one dalej pracować pobierając prąd z 1wire? moim zdaniem albo wyłączy się wszystko, albo załącza dodatkowe czujniki "pod prąd". może się mylę, ale wyłączanie zasilania czujników nic nie da. Smoczy nie obraź się ale zapytam czy robiłeś to o czym piszesz, czy tylko teoretyzujesz? potrzebuję SPRAWDZONYCH informacji.
  • Pomocny post
    #9 2822743
    Smoczy
    Poziom 20  
    Posty: 436
    Pomógł: 26
    Ocena: 67
    Sprawdzone rozwiązania to takie, które sami przerobimy (masz rację teoretyzuję, robię to od kilku lat i czasami nawet z niezłym skutkiem). Nadal nie widzę przeszkody, można przecierz nas czas wymiany, dołożenia, usunięcia czujników z szyny 1-wire wysrawić niski stan, wtedy mamy pewność, że nie są zasilane czujniki. Naptomiast po podłaczeniu przeprowadzić pełną procedurę inicjalizacji szyny i czujników.
  • #10 2824337
    alnus
    Poziom 28  
    Posty: 1198
    Pomógł: 91
    Ocena: 66
    i to rozwiązanie mi się podoba - dzięki

Podsumowanie tematu

✨ Dyskusja dotyczy fizycznej identyfikacji czujników DS1820 na magistrali 1-Wire, gdy programowa identyfikacja numerów seryjnych nie wystarcza do przypisania konkretnego czujnika do miejsca pomiaru. Rozważane metody to: podłączanie pojedynczych czujników kolejno i zapisywanie ich numerów w pamięci EEPROM, odłączanie poszczególnych czujników podczas pracy magistrali w celu przyporządkowania brakujących numerów, oraz identyfikacja na podstawie charakterystycznych zmian temperatury (grzanie/chłodzenie). Problemem jest możliwość podłączania i odłączania czujników "pod prądem" bez zakłóceń i błędów w odczytach, zwłaszcza gdy czujniki są zasilane trzema przewodami i mogą pobierać prąd z linii 1-Wire po odłączeniu zasilania. Proponowanym rozwiązaniem jest zastosowanie załączanego zasilania czujników, które pozwala na ich wyłączanie i włączanie podczas procedury identyfikacji, co umożliwia bezpieczne podłączanie i odłączanie czujników bez zakłóceń. Po każdej zmianie na magistrali należy przeprowadzić pełną inicjalizację szyny i czujników, aby zapewnić poprawne wykrycie i przypisanie numerów seryjnych do konkretnych czujników. Takie podejście pozwala na elastyczną obsługę wymiennych czujników bez konieczności posiadania oddzielnych linii dla każdego czujnika w mikrokontrolerze.
Wygenerowane przez model językowy.
REKLAMA