Skocz do zawartości

Ultradzwiękowy czujnik odległości wybór?


BlackJack

Pomocna odpowiedź

witam.

Poszukuje ultradźwiękowego czujnika odległości, który by się nadawał do pracy w zasypie pieca na ekogroszek.

Na razie znalzłem coś takiego:

https://botland.com.pl/ultradzwiekowe-czujniki-odleglosci/15715-ultradzwiekowy-czujnik-odleglosci-me007ys-28-450cm-wodoodporny-dfrobot-sen0312-5904422343682.html

Czy potraficie polecić coś innego, ewentualnie jakie są wasze opinie na temat zastosowania go w tej aplikacji?

Oczywiście chodzi o określenie ile zostało węgla w zasypie podajnika. Fajny byłby zakres tak od 5-10cm min, ale na razie nic ciekawego nie znalazłem.

Edytowano przez BlackJack
Link do komentarza
Share on other sites

Nie wiem czy tani i prosty HC-SR04 nie sprawdziłby się. Prosta obsługa pod arduino np: Pytanie czy w tak "brudnym" srodowisku czujnik nie będzie się zabrudzał. 

Z drugiej strony nie wiem, czy nie lepiej byłoby zastosować czujnik pojemnościowy i ustawić go na odpowiedniej głębokości i tyle. 

Edytowano przez Krawi92
Link do komentarza
Share on other sites

(edytowany)
Cytat

Z drugiej strony nie wiem, czy nie lepiej byłoby zastosować czujnik pojemnościowy i ustawić go na odpowiedniej głębokości i tyle. 

Też się nad tym zastanawiałem, na samym początku, tylko jest pytanie? Jak się zachowa czujnik pojemnościowym w środowisku, gdzie na pewno pokryje go pył? Pomijam kwestie tarcia, które go z czasem zniszczą.

Na razie namierzyłem na Ali coś takiego.

Wodoodporny-ultrad-wi-kowy-zakresy-modu-u-JSN-SR04T-wody-wodoodporny-zintegrowany-pomiar-odleg-o-ci.jpg_640x640.thumb.jpg.52d6b1a58101221583bc1f05904ec851.jpg

Z tego co wyczytałem jest to o tyle "fajne", że na PCB robiąc zworki można sobie wybrać tryb pracy USART/PWM/TTL. Choć i tak nie rozumiem, że skoro na PCB jest mikroprocesor, to nikt nie zaimplementuje tam żadnego sensownego protokołu np. modbus RTU? Ale chyba mści się tu chęć bycia na siłę for ARDUINO.

Edytowano przez BlackJack
Link do komentarza
Share on other sites

pojemnościowe marchewki są uczone, sam pył, jeśli nie jest w ilości takiej jak wyngiel, nie musi mieć znaczenia + jego zaletą jest to, że może być często na zewnątrz zasobnika umiejscowiony 🙂

 

Edytowano przez BananWszyscy
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Na razie spróbuje z tym czujnikiem ultradźwiękowym. jest wykonany w IP67 więc spoko. W przemyśle stosuje się czujniki radioaktywne, no ale to raczej niezbyt do domu. Zobaczymy.

Link do komentarza
Share on other sites

(edytowany)

Koledzy czy ktoś używał tego zestawu w wersji 3.0?

Wodoodporny-ultrad-wi-kowy-zakresy-modu-u-JSN-SR04T-wody-wodoodporny-zintegrowany-pomiar-odleg-o-ci.jpg_640x640.thumb.jpg.2e024b6ed6ccbe6a6345b9ddd8ffc782.jpg

Uruchomiłem go w trybie M2, ale otrzymuję dane nijako się mają do rzeczywistości i bardzo mocno zależą od tego pod jakim kontem jest czujnik obiekt. I teraz nie wiem, czy mam uszkodzone coś, czy ja popełniłem gdzieś błąd? 

Pierwsza niejasna rzecz to zworki na płytce. aby korzystać z trybu M2 wystarczy zrobić tylko zworę w miejscu oznaczonym M2 czy trzeba też dodatkowo wlutować w miejscu MODE sugerowany opornik?

Ogólnie obsługuje to takim makrem:

//Makro odczytu czujnika ultradzwiekowego po RS232
macro_command main()
char comand = 0x55 // polecenoe odczytu
char response[4] //odebrane dane
short cheksum //suma kontrolna
unsigned short return_value, read_data

FILL(response[0],0,4) // inicjalizacja tablicy odczytu
OUTPORT(comand,"Free Protocol",1) // wyśli zapytanie
// Format odczytywanej ramki FF,HI_byte, LOW_byte, CRC Hi_byte+LOW_byte
DELAY(100) //odczakaj 100ms
INPORT(response[0], "Free Protocol", 4, return_value) // odczytaj dane z portu
if return_value > 0 then //jeżeli transmisja poprawna
   read_data = (response[1]<<8) + response [2] //kowertuj dane
   SetData(read_data, "Local HMI", LW, 100, 1) // i przypisz do rejestru LW100 panelu HMI
end if  

end macro_command

PS. Po godzinie walki doszedłem do wniosku że problemem jest symulacja programu panelu HMI która, nie potrafi poprawnie przegryź tego fragmentu programu, i dla tego wyświetla babole.

if return_value > 0 then //jeżeli transmisja poprawna
   read_data = (response[1]<<8) + response [2] //kowertuj dane
   SetData(read_data, "Local HMI", LW, 100, 1) // i przyisz do rejestru LW100 panelu HMI
end if  

 

Edytowano przez BlackJack
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.