Skocz do zawartości
vtor

Obrotomierz - CNY70+komparator+przerwanie Arduino

Pomocna odpowiedź

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?

Udostępnij ten post


Link to post
Share on other sites
unsigned long lastTimeInterrupt = 0;
void interruptHandler(){
  if(millis() - lastTimeInterrupt > costam)
  {
   lastTimeInterrupt = millis();
    dalsza czesc przerwania
  }
}

Problem podobny do switch bouncing?

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

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

Udostępnij ten post


Link to post
Share on other sites

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?

Udostępnij ten post


Link to post
Share on other sites

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.

Udostępnij ten post


Link to post
Share on other sites

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

Udostępnij ten post


Link to post
Share on other sites

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.

Udostępnij ten post


Link to post
Share on other sites

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?

Udostępnij ten post


Link to post
Share on other sites

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.

Udostępnij ten post


Link to post
Share on other sites

A możesz dać jakieś zdjęcie, rysunek, czy coś? Bo trudno tak w ciemno doradzać.

Udostępnij ten post


Link to post
Share on other sites

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.

Udostępnij ten post


Link to post
Share on other sites

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!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...