SOYER Napisano Kwiecień 6, 2023 Udostępnij Napisano Kwiecień 6, 2023 Cześć, popełniłem taki czujnik na wodomierzu: Podłączyłem do mojego starego arduino mega. Wszystko działa ok, prawie... Raz na promil zatrzymań kółeczka wodomierza, zatrzymuje się w takim miejscu, na granicy odczytu, że czujnik nabija impulsy z częstotliwością deboucingu. Pytanie jak to obejść? Dołożyć drugi czujnik i porównywać odczyty jak w enkoderze? Czyli flaga od pierwszego czujnika, czekamy na flagę od drugiego, dajemy impuls i resetujemy flagi? Czy może jeszcze inaczej? Wszelkie dziwne pomysły mile widziane. Cytuj Link do komentarza Share on other sites More sharing options...
Popularny post Harnas Kwiecień 6, 2023 Popularny post Udostępnij Kwiecień 6, 2023 Najprostsza opcja jaka mi przychodzi do głowy to dodanie histerezy. Ten czujnik ma w sobie Op Amp jako komparator, więc wystarczy dołożyć jeden rezystor między wyjściem a wejściem nieodwracającym. 4 Cytuj Link do komentarza Share on other sites More sharing options...
SOYER Kwiecień 6, 2023 Autor tematu Udostępnij Kwiecień 6, 2023 1 minutę temu, Harnas napisał: Najprostsza opcja jaka mi przychodzi do głowy to dodanie histerezy. Ten czujnik ma w sobie Op Amp jako komparator, więc wystarczy dołożyć jeden rezystor między wyjściem a wejściem nieodwracającym. Przybliż pomysł bo nie łapię, nadmieniam, że teraz sygnał czerpię z pinu z wyjściem cyfrowym nie analogowym. 1 Cytuj Link do komentarza Share on other sites More sharing options...
SOYER Kwiecień 6, 2023 Autor tematu Udostępnij Kwiecień 6, 2023 3 minuty temu, Harnas napisał: Najprostsza opcja jaka mi przychodzi do głowy to dodanie histerezy. Ten czujnik ma w sobie Op Amp jako komparator, więc wystarczy dołożyć jeden rezystor między wyjściem a wejściem nieodwracającym. Chodzi o to, żeby różnica między Low i High była powyżej pewnej ustawionej granicy, wtedy nie będzie wyłapywać małych przeskoków między stanami? 1 Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
farmaceuta Kwiecień 6, 2023 Udostępnij Kwiecień 6, 2023 Ja bym odkręcił że trzy krany, odczytał max odstępy czasu między stanami i tak napisał kod żeby nic co ma większą częstotliwość nie nabijało impulsu... 1 Cytuj Link do komentarza Share on other sites More sharing options...
_LM_ Kwiecień 6, 2023 Udostępnij Kwiecień 6, 2023 (edytowany) @SOYER https://forbot.pl/blog/kurs-elektroniki-ii-komparatory-napiecia-id9357 Śródtytuł sprzężenie zwrotne dla komparatora BTW niektóre liczniki mają magnes trwały i można zrobić odczyt za pomocą kontaktronu Edytowano Kwiecień 6, 2023 przez _LM_ 1 Cytuj Link do komentarza Share on other sites More sharing options...
SOYER Kwiecień 7, 2023 Autor tematu Udostępnij Kwiecień 7, 2023 9 godzin temu, farmaceuta napisał: Ja bym odkręcił że trzy krany, odczytał max odstępy czasu między stanami i tak napisał kod żeby nic co ma większą częstotliwość nie nabijało impulsu... No to wyobraź sobie, że ten odstęp czasu to np. 10s, zakładając, że zmieniam kółeczko na to nie liczące litrów tylko np.10l. Jest noc, wieczorem kółko zatrzymało się w "złym" miejscu, przez całą noc nie ma poboru i kółko stoi. Zadanie matematyczne ile litrów naliczy czujnik, pamiętając, że impuls to 10L. Odpada. Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Kwiecień 7, 2023 Udostępnij Kwiecień 7, 2023 A w tym przypadku nie pomoże zwyczajne zmniejszenie czułości czujnika - tak, aby sygnalizował, gdy ma przed sobą 100% czarnego pola? Cytuj Link do komentarza Share on other sites More sharing options...
FlyingDutch Kwiecień 7, 2023 Udostępnij Kwiecień 7, 2023 14 godzin temu, Harnas napisał: Najprostsza opcja jaka mi przychodzi do głowy to dodanie histerezy. Ten czujnik ma w sobie Op Amp jako komparator, więc wystarczy dołożyć jeden rezystor między wyjściem a wejściem nieodwracającym. Zgadzam się, szersza pętla histerezy powinna pomóc (trzeba równolegle dolutować rezystor w dodatnim sprżeżeniu zwrotnym opamp'a lub komparatora). Pozdrawiam Cytuj Link do komentarza Share on other sites More sharing options...
SOYER Kwiecień 7, 2023 Autor tematu Udostępnij Kwiecień 7, 2023 1 godzinę temu, Treker napisał: A w tym przypadku nie pomoże zwyczajne zmniejszenie czułości czujnika - tak, aby sygnalizował, gdy ma przed sobą 100% czarnego pola? Ustawiłem na minimalnym poziomie na którym wyłapuje "lusterko". Bez efektu. 14 minut temu, FlyingDutch napisał: Zgadzam się, szersza pętla histerezy powinna pomóc (trzeba równolegle dolutować rezystor w dodatnim sprżeżeniu zwrotnym opamp'a lub komparatora). Pozdrawiam Elektronik ze mnie taki jak programista, ale postaram się dolutować. Sprawdzę jaki tam jest kompatator( nie jest czasem tam podwójny?)i do których nóżek go przylutować. 1MOm? Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Kwiecień 7, 2023 Udostępnij Kwiecień 7, 2023 5 godzin temu, SOYER napisał: Odpada. A mi się podoba, tylko program trzeba napisać porządnie. Coś w stylu: static time_t ostatni_impuls; if (przyszedł_impuls) { if (millis() - ostatni_impuls > MIN_MILLIS) { dodaj_impuls(); } ostatni_impuls = millis(); } czy jakoś tak... Pomysł z dwoma transoptorami też mi się podoba. Używałem tych transoptorków bez żadnej elektroniki (dwóch rezystorów nie liczę) i zwykłym wejściem analogowym w Arduino czy ESP8266 mierzyłem różnicę między odczytem przy zapalonej i zgaszonej diodzie. Działa całkiem dobrze (zarówno czujniki w robocie, jak i np. wyłącznik do lampki reagujący na zbliżenie dłoni). 1 Cytuj Link do komentarza Share on other sites More sharing options...
SOYER Kwiecień 7, 2023 Autor tematu Udostępnij Kwiecień 7, 2023 50 minut temu, ethanak napisał: Coś w stylu Jeśli przyszedł impuls i czas od ostatniego impulsu jest większy od minimalnego ustawionego czasu(?), to wtedy inkrementuj zmienną. Nie łapię jak to ma działać, bo to mi wygląda na zwykły debouncing, a to nie eliminuje problemu naliczania imulsów kiedy woda nie leci, a kółeczko zatrzymało się w "najgorszym" miejscu. Cytuj Link do komentarza Share on other sites More sharing options...
_LM_ Kwiecień 7, 2023 Udostępnij Kwiecień 7, 2023 (edytowany) Patrzyłeś na linkowany wpis? Niema znaczenia jaki komparator tam siedzi, może być nawet LM358, dajesz rezystor pomiędzy wyjście a wejście dodatnie, możesz zacząć od 1MΩ. 21 minut temu, SOYER napisał: Nie łapię jak to ma działać, bo to mi wygląda na zwykły debouncing Bo @ethanak podał przykład który można dopracować tak aby działało to z twoim licznikiem (czyli podał wędkę nie rybę), poza tym jest tutaj spory artykuł o maszynie stanów, również napisany przez @ethanaka. No i jest (chyba) w arduino biblioteka debouncing, dlaczego nie skorzystasz? Edytowano Kwiecień 7, 2023 przez _LM_ 1 Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Kwiecień 7, 2023 Udostępnij Kwiecień 7, 2023 19 minut temu, SOYER napisał: to nie eliminuje problemu naliczania imulsów kiedy woda nie leci, a kółeczko zatrzymało się w "najgorszym" miejscu. Jak nie eliminuje? Liczony jest czas od ostatniego impulsu, czyli jak przyjdzie za wcześnie to co prawda inkrementacji licznika nie będzie, ale czas zostanie zapamiętany. Cytuj Link do komentarza Share on other sites More sharing options...
_LM_ Kwiecień 7, 2023 Udostępnij Kwiecień 7, 2023 http://mirekk36.blogspot.com/2012/10/drgania-stykow-to-bajki-wiec-jak-to.html 1 1 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!