Skocz do zawartości

Obrotomierz - CNY70+komparator+przerwanie Arduino


Pomocna odpowiedź

Napisano

Witam chce zbudować " obrotomierz ". Element wirujący czarny z białymi znacznikami. Cny70 podłączony do komparatora z potencjometrem. I tu wszystko działa , jak przed czujnikiem jest biała powierzchnia to komparator na multimetrze daje 0v , na czarnym 5v. Jak na Arduino dam przerwanie ze zboczem to układ zachowuje się tak jak by to zbocze w ułamku sekundy wystąpiło kilka do kilku set razów. W przerwaniu zmienna ma być zwiększana o 1 a wzrasta nawet o 300. Zauważyłem że dzieje się tak przy powolnym obracaniu elementu wirującego , od pewnej prędkości sytuacja wydaje się normalizować.

Nie mam dostępu do oscyloskopu.

Czy można to jakoś rozwiązać żeby jedno "mignięcie " białego znacznika było interpretowane jako jeden impuls?

Nie wygląda, tylko występuje. Komparatory są bardzo czułe. W momencie gdy przez jakiś czas wartości napięcia są do siebie bardzo zbliżone (powolne obracanie) nawet niewielkie oscylacje zasilania, czy drgania osi silnika powodują serię przejść wyjścia komparatora pomiędzy 0 i 5 V co Wywołuje przerwanie wielokrotnie. Też niedawno robiłem obrotomierz, ale podłączyłem wyjście CNY bezpośrednio do wejścia cyfrowego i nie wystąpiły takie efekty. Spróbuj zrobić tak samo, albo użyj układu z histerezą.

komparator7.thumb.jpg.765679c8f809df57be5a774ef8f64249.jpg

CNY70 mam połączony w taki sposób.  Z tego co doczytałem , żeby stworzyć histerezę powinienem rezystorem połączyć wyjście komparatora z wejściem z napięciem referencyjnym ( to połączone z potencjometrem , u mnie wejście odwracające ). Czy taka modyfikacja jednym dobrze dobranym rezystorem rozwiąże problem w moim przypadku?

Witam.

To nie dość, że w Twoim układzie nie pomoże, to wręcz zaszkodzi. Jeśli spojrzysz na schematy komparatorów z histerezą to zobaczysz, że pracują w układzie odwracającym, czyli napięcie referencyjne mają podane na wejście nieodwracające (+) a sygnał na wejście odwracające (-).

Co stanie się, jeśli połączysz rezystorem wyjście z wejściem (-) w Twoim układzie? Powiedzmy, że masz napięcie odniesienia 2,5V. Na wejściu (+) pojawia się ciut więcej. Komparator zmienia wyjście z 0V na 5V. I teraz dzięki rezystorowi pomiędzy wyjściem a wejściem (-) napięcie na tej końcówce wzrasta. Jest więc większe niż na wejściu (+) Komparator przełącza wyjście na 0V co powoduje spadek napięcia na wejściu (-) czyli przełączenie wyjścia na 5V, co powoduje... i tak w kółko.

Przerób układ na odwracający z histerezą. Wtedy przełączenie wyjścia z 0 na 5V nastąpi przy opadającym napięciu wejścia. 5V na wyjściu, dzięki rezystorowi podniesie napięcie odniesienia i spowoduje, że przełączenie powrotne (z 5 na 0V) nastąpi przy wyższym napięciu wejściowym. I masz histerezę. A jedyna zmiana będzie taka, że zbocza zamienią Ci się miejscami, co dla programu (jak przypuszczam) nie będzie miało żadnego znaczenia, bo jedynie zamiast zliczać przejścia z czarnego na biały, będzie zliczał przejścia z białego na czarny (lub odwrotnie).

Pozdrawiam.

Witaj.

Zgadzam się z Tobą. Każdy przypadek wymaga zastanowienia się i sposób realizacji histerezy zależy od tego jaki mamy sygnał wzorcowy i porównywany. Odniosłem się do tego konkretnego przypadku, gdzie uważam, że sugerowany przeze mnie układ jest najprostszym, pozwalającym uzyskać efekt o jaki chodziło.

Pozdrawiam.

  • Pomogłeś! 1

Dziękuję za wyjaśnienie tematu. Niestety układ z komparatorem jest już na gotowym PCB więc zamiana nie jest możliwa. Zostaje mi tylko modyfikacja programu mikrokontrolera.  Wypowiedzcie się jeszcze w kwestii wstawienia między obecnym komparatorem a mikrokontrolerem kolejnego komparatora z histerezową bo to jest fizycznie możliwe.

Moim zdaniem to nic nie da. Pierwszy komparator generuje sygnał 0 lub 5V. Drugi już nic z tym nie zrobi. Gdybyś mógł umieścić komparator pomiędzy czujnikiem a obecnym układem, to i owszem. A nie możesz usunąć (wylutować) istniejącego komparatora? Albo do tego nowego pobrać sygnału pomiędzy czujnikiem i istniejącym układem?

czujniki są po kabelku ze złączem , podłączone do pcb z kilkoma komparatorami, to pcb jest kabelkiem podłączone do kontrolera. Wiem że najrozsądniej było by przeprojektować PCB z komparatorami ale na to nie ma czasu i możliwości więc mogę ten układ tylko rozbudować o dodatkowe moduły. Więc co radzicie mi w takiej sytuacji? Co było by najrozsądniejszym rozwiązaniem? Z tego co piszecie to każde rozwiązanie sprzętowe problemu w moim przypadku równa się z budową nowego pcb a na to nie mam czasu.

Problem wygląda na rozwiązany.

  1.  Drgania wyeliminowane programowo.
  2. Na elemencie wirującym tylko jeden znacznik
  3. Program liczy ilość milisekund które upłynęły między impulsami. I na tej podstawie wylicza ilość obrotów.

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...