• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Rozpoznawanie DS18B20 po ...wtyczce ;)
#1
Cześć

Mam drobny problem z termometrami DS18B20.

Jak wiadomo można się z nimi komunikować podając numer kolejny termometru
- przykładowo 1 do 5 jeśli jest ich 5szt, W takim wypadku gdy dodamy kolejny
termometr nie wiadomo na którą pozycję on wskoczy...

Można też posłużyć się adresem termometru wcześniej go odczytawszy...

Ja chciałbym zrobić to jeszcze inaczej - dla każdego termometru przygotować
osobne gniazdo. Tak żebym odwoływał się do kolejnego numeru gniazda a nie
termometru czy jego adresu.

Po co tak? Ano po to, żeby gdy trzeba wymienić termometr nie trzeba było
sprawdzać jego adresu, tylko "podłączony do gniazda nr , więc ma numer 5".

Można by napisać procedurę instalacji termometrów - typu "proszę podłączyć
termometr do gniazda nr 1 i nacisnąć czerwony przycisk". Po potwierdzeniu
wyszukać adres nowego termometru i przypisać do niego numerek gniazda.
Tak po kolei dla kolejnych gniazd i termometrów. Podobnie przy wymianie
uszkodzonego termometru.

Szczerze mówiąc nie chce mi się tego pisać Wink Gdyby istniał gotowy mechanizm
to chętnie skorzystam Smile

Proszę o wskazówki jeśli można...

PWL
 
Odpowiedź
#2
Możesz sobie narobić magistral na każdy pin i tak sobie to rozwiązać, ale wtedy to w ogóle nie potrzebujesz obsługi w menu do konfiguracji czujnika, wystarczy reset procesora. Każde inne rozwiązanie czy to z ponumerowanymi gniazdkami czy wtyczkami i tak będzie się opierało o adres czujnika, wcale nie musisz go znać, program możesz sobie tak napisać, że jak nie ma czujników to przyporządkowuje je po kolei, a potem po zauważaniu nowego czujnika na magistrali przypisuje automatycznie w miejsce brakującego. Na jednej magistrali przy większej ilości czujników musisz wykorzystać adresy, bo inaczej czujniki będą przeskakiwać na zwolnioną pozycję (przynajmniej w standardowej bibliotece Dallas Temperature z odwołaniem do czujnika przez indeks tablicy). Jak braknie dwóch to i tak trzeba głębiej pokonfigurować, a całość zapisać w eeprom. Nie widziałem nigdzie gotowca z menu do tego, jak znajdziesz to się pochwal.
 
Odpowiedź
#3
No właśnie - nie wiedziałem szczerze mówiąc czy mogę zrobić więcej niż jedną 1wire ...
Sprawdzę ten trop, w sumie chyba najsensowniejszy poza ilością połączeń w obudowie Wink

PWL
 
Odpowiedź
#4
Sprawdzony sposób - jak nie używasz rejestrów alarmu, co też sugeruje nota katalogowa, można tego użyć do ID układu.

(05-05-2019, 17:57)PierwszyWolnyLogin napisał(a): No właśnie - nie wiedziałem szczerze mówiąc czy mogę zrobić więcej niż jedną 1wire ...
Możesz ale aby to zrobić dobrze potrzebujesz tyle UART co 1-Wire albo masterów 1-Wire, np DS2480-800 co ma osiem masterów 1-Wire, które rozwiązują wele problemów, które nie łatwo rozwiązać początkującym w programowaniu.
- Kod z Delay i/lub bez WDT (WDG) to nie kod, to DEMO!
- Wielowątkowość to najczęściej konieczność w dobrym programie.
- Kod wymaga komentarzy!
- Nie pomagam leniwym analfabetom. Sprawdzanie pisowni jest w każdej dobrej przeglądarce WWW.


 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości