Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 18 kwi 2024, o 18:54


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 7 paź 2020, o 13:38 
Offline
Użytkownik

Dołączył(a): 20 wrz 2015
Posty: 55
Pomógł: 0

Witam
Chciałem zapytać czy da się wykonać pomiaru z 4 różnych czynników DS18B20 na 4 rożnych wejściach procesora
Chodzi mi o to że potrzebuje wiedzieć który dokładnie czujnik w danej chwili odczytuje. Do tej pory jak robiłem pomiar na kilku układach to podłączałem wszystkie i jednego z nich ogrzewałem po czym sprawdzałem któremu temperatura wzrastała bo cały czas temperatury wysyłałem na UART do putty, poczym numerowałem je i układ działał jak chciałem.
Problem się pojawił kiedy jeden z czujników uległ awarii to po wymianie wszystkie czujniki a przynajmniej kilka zmieniało swój numerek i musiałem albo programowo sobie je przerzucać albo wszystkie czujniki ponownie ponumerować
Co prawda wtedy idea 1-wire idzie w zapomnienie ale mam na tyle duży procek ze mi to ogarnie :)

Miał ktoś podobny problem proszę o pomoc [GRINNING FACE WITH SMILING EYES]

Wysłane z mojego Redmi 4X przy użyciu Tapatalka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 paź 2020, o 14:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2019
Posty: 147
Pomógł: 37

https://github.com/gonium/mikrowerk/tre ... -with-uart
zapoznać się z komentarzami w onewire.h
przykładowy sposób użycia dla dwóch czujników na pinach PB3 i PC0:
//przed użyciem czujnika 1 aktywacja magistrali 1
ow_set_bus(&PINB,&PORTB,&DDRB,3);
//... operacje OW_SKIP_ROM, DS18X20_CONVERT_T, DS18X20_READ itd.dla czujnika 1.
//przed użyciem czujnika 2 aktywacja magistrali 2.
ow_set_bus(&PINC,&PORTC,&DDRC,0);
//... operacje OW_SKIP_ROM, DS18X20_CONVERT_T, DS18X20_READ itd.dla czujnika 2.

_________________
Think for yourself and question authority.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 paź 2020, o 14:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1148
Lokalizacja: Kraków
Pomógł: 93

DS18B20 mają numery seryjne. Możesz odczytywać temperaturę po numerze seryjnym czujnika. I mieć je wszystkie na jednym pinie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 paź 2020, o 16:09 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

michael.873 napisał(a):
Co prawda wtedy idea 1-wire idzie w zapomnienie ale mam na tyle duży procek ze mi to ogarnie

Przecież to jest KOMPLETNY nonsens i to do kwadratu. Masz w Bluebooku b.dobrą bibliotekę która umożliwia odczytywanie (I ZAWSZE TAK BYŁO) z każdego czujnika oddzielnie temperaturę - toż je się rozpoznaje po numerach ID które są wczytywane przez bibliotekę do tablicy. Zaglądałeś w ogóle do kodu ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 paź 2020, o 17:06 
Offline
Użytkownik

Dołączył(a): 20 wrz 2015
Posty: 55
Pomógł: 0

Wiem rozumiem używam tej biblioteki z BB
Mam podłączone np.
3 czujniki DS18B20 do PINx
robię pomiar z 3 czujników spięte są w gwiazdę
odczytuję pierwszy pomiar czujnika z pozycji A otrzymuję wartość X
odczytuję pierwszy pomiar czujnika z pozycji B otrzymuję wartość Y
odczytuję pierwszy pomiar czujnika z pozycji C otrzymuję wartość Z
nagle jeden z czujników ulega uszkodzeniu wyświetla się błąd i wiem ze czujnik się uszkodził
Wymieniam czujnik z pozycji B na nowy

Po wymianie okazuję się że
odczytuję pierwszy pomiar czujnika z pozycji A otrzymuję wartość X
odczytuję pierwszy pomiar czujnika z pozycji B otrzymuję wartość Z
odczytuję pierwszy pomiar czujnika z pozycji C otrzymuję wartość Y

Teraz dostaję błędne wyniki pomiarów z pozycji B i C ponieważ są zamienione i bez zmiany wsadu się nie obejdzie a takich urządzeń planuję około 40 i do każdego podłączone po minimum 3 czujniki max 6 w dwóch. Chodzi mi o to jak przyjdzie do wymiany czajnika nie będę musiał zmieniać programu

dlatego pomysł żeby podłączyć je do osobnych pinów wydał mi się całkiem fajny :/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 paź 2020, o 19:38 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 759
Pomógł: 37

Można do różnych pinow,ale można tez po wymianie sensora przed uruchomieniem glownego programu skonfigurować je i przypisać który jest do czego. jeszcze nie przytrafiło mi sie ,zeby jakiś z czujników mi sie popsuł wiec raz kiedyś jak zrobisz taka konfiguracje to sie nic nie stanie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 paź 2020, o 19:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2019
Posty: 147
Pomógł: 37

Przy małej ilości czujników/kiedy większa ilość okablowania nie jest problemem/kiedy zależy nam na prostocie firmware i hardware/kiedy zależy na łatwości (lub braku) konfiguracji urządzenia nie jest to, uważam, głupie rozwiązanie.
Jednakże przy 40 urządzeniach przydało by się trochę postarać i zrobić jakiś konfigurator który przypisze czujniki w odpowiednie lokalizacje w czasie pracy urządzenia. Jeśłi urządzenie ma jakiś interfejs użytkownika i menu to można to dodać do menu. Jeśli nie ma to trochę gorzej, ale też można coś wymyślić, na przykład taką prymitywną metodę:
Zakładamy, że kolejne czujniki są kolejno, po jednym, rejestrowane w systemie po resecie urządzenia i przypisywane do lokalizacji w z góry określonej kolejności. Dołączamy pierwszy czujnik do magistrali, włączamy urządzenie. Czujnik jest wykrywany, jego ID zarejstrowany (zapisywany w pamięci nieulotnej) na pierwszej wolnej pozycji czyli A. Wyłączamy urządzenie, dołączamy drugi czujnik, power up, nowy czujnik jest rejestrowany na pierwszej wolnej pozycji czyli B itd. Teraz gdy jeden czujnik padnie robimy to samo: power off, dołączamy (wymieniamy) czujnik, power on. Urządzenie wykrywa jeden nowy czujnik i jednocześnie widzi, że jeden stary nie daje oznak życia więc podmienia stary na nowy. Algorytm trzeba głębiej przymyśleć bo metoda wykrywania czujników przez 1wire nie gwarantuje że będą one wykrywane w kolejności w której były dołączane fizycznie.

_________________
Think for yourself and question authority.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 paź 2020, o 20:02 
Offline
Użytkownik

Dołączył(a): 20 wrz 2015
Posty: 55
Pomógł: 0

Kurcze ciekawy pomysł tak do sprawy nie podchodziłem
Co prawda urządzenie nie ma jakiegoś menu czy wyświetlacza ale będą one podłączone razem ze sobą po RS485
Bo wszystkie będą zbierać temperatury do PLC to można się do nich podpinać na czas konfiguracji i tam ustawić coś pomyśle

Wysłane z mojego Redmi 4X przy użyciu Tapatalka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 paź 2020, o 23:21 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

michael.873 napisał(a):
Teraz dostaję błędne wyniki pomiarów z pozycji B i C ponieważ są zamienione i bez zmiany wsadu się nie obejdzie a takich urządzeń planuję około 40 i do każdego podłączone po minimum 3 czujniki max 6 w dwóch. Chodzi mi o to jak przyjdzie do wymiany czajnika nie będę musiał zmieniać programu

No Panie kochany a co za problem sobie zapamiętać numery czujników w pamięci EEPROM ? I jak się uszkodzi to podmienić numer uszkodzonego na ten nowy ? No to jest problem ? Przecież tak się robi - a nie podłącza czujniki na osobnych pinach

------------------------ [ Dodano po: 1 minucie ]

michael.873 napisał(a):
Co prawda urządzenie nie ma jakiegoś menu czy wyświetlacza ale będą one podłączone razem ze sobą po RS485

A po rs485 to nie można sobie zrobić konfiguratora ? zaraz LCD potrzebny ? ;) eeeeś

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2020, o 05:48 
Offline
Użytkownik

Dołączył(a): 20 wrz 2015
Posty: 55
Pomógł: 0

I tak zrobię

Dzięki za pomoc
Pozdrawiam wszystkich [GRINNING FACE WITH SMILING EYES]

Wysłane z mojego Redmi 4X przy użyciu Tapatalka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 paź 2020, o 08:16 
Offline
Użytkownik

Dołączył(a): 13 paź 2015
Posty: 303
Lokalizacja: Rybnik
Pomógł: 10

Ja to tak rozwiązałem:
https://forum.atnel.pl/topic21850.html

Później można sobie zrobić zmianę ID czujnika np. po uarcie żeby nie programować znowu procka.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO