Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Multimetr FlukeMultimetr Fluke
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Transoptor szczelinowy - błędny odczyt z tarczy kodowej 10.000obr/min

27 Maj 2020 15:32 1131 42
  • Poziom 12  
    Jestem w trakcie projektowania/testowania urządzenia które w uproszczonym schemacie ma wysyłać sygnał ( zapalać diodę ) po określonej w programie liczbie przerwań.

    Tarcza kodowa średnicy 55mm zrobiona z blaszki nierdzewnej 1mm posiada 10 rowków o szerokości 1mm oddalonych od siebie również o 1mm ( zdjęcie poniżej )
    Transoptor szczelinowy - błędny odczyt z tarczy kodowej 10.000obr/min

    Transoptor szczelinowy oparty na LM393 jeden z "gotowców" pod arduino dostępny w internecie.
    Transoptor szczelinowy - błędny odczyt z tarczy kodowej 10.000obr/min

    micro kontroler ATMega328 oparta na arduino uno - kod do testów Arduino IDE co 10 przerwanie zapala diodę LED
    Kod: c
    Zaloguj się, aby zobaczyć kod



    Wszystko działa poprawnie co dziesiąte przerwanie jest wysyłany sygnał na pin 7 który zapala diodę led, niestety tylko przy niewielkiej prędkości tarczy (docelowo będzie ona rozpędzana do około 10.000obr/min ) podczas zwiększania obrotów zaczynają występować błędy aż do momentu kiedy odczyt jest całkowicie losowy.
    Napisałem program również na przerwaniach (attachInterrupt) efekt identyczny jak powyżej.
    Wgrałem kod do STM32 efekt identyczny szybszy chip nie pomógł.

    Podłączyłem zamiast transoptora i tarczy generator z NE555 ustawiony na 1600Hz i wygląda na to że wszystko działa poprawnie więc obstawiłem że problem leży w transoptorze.

    poczytałem pogrzebałem i znalazłem schemat mojego modułu transoptora szczelinowego z lm393 zastąpiłem rezystor w dzielniku napięcia na 1kΩ i pomogło na tyle że sczytuje już poprawnie sygnał do około 50% prędkości

    Transoptor szczelinowy - błędny odczyt z tarczy kodowej 10.000obr/min

    Niestety nie jestem w stanie sam wymyślić nic więcej proszę o sugestie.
    - Jak rozwiązać problem błędnego odczytu impulsów ? może jakiś inny transoptor albo wymiana układu LM393, bezpośredni odczyt ?
  • Multimetr FlukeMultimetr Fluke
  • Poziom 39  
    Witam,
    za wolny transoptor, jakie tam sa elementy ? komparator dziala bez problemu do 2us.
    Pozdrawiam
  • Pomocny post
    Poziom 27  
    A co tam robi kondensator 100nF podłączony do wyjścia transoptora?
  • Multimetr FlukeMultimetr Fluke
  • Poziom 12  
    mogę tylko powiedzieć że jest to transoptor połączony z LM393 nie widnieją na nim żadne oznaczenia, wygląd jak powyżej.

    kulmar napisał:
    A co tam robi kondensator 100nF podłączony do wyjścia transoptora?


    trudno mi powiedzieć gdyż tak już był zaprojektowany moduł który zakupiłem.
    proponujesz aby go usunąć i sprawdzić rezultat ?
  • Poziom 27  
    Oczywiście! Przecież to jest przyczyna, dla której Twój układ jest "za wolny".
  • Poziom 12  
    kulmar napisał:
    Oczywiście! Przecież to jest przyczyna, dla której Twój układ jest "za wolny".


    Naprawdę WIELKIE dzięki można powiedzieć że rozwiązałeś mój problem w 95% :D lecz te 5% nadal pozostaje może coś jeszcze uda się poprawić ?

    Obecnie po szeregu testów modułu transoptora na tarczy kodowej sczytuje sygnał:
    - Zakupiony bez modyfikacje ~120Hz
    - Zmiana rezystora 10kΩ na 1kΩ ~250Hz
    - Usunięcie kondensatora 100nF ~430Hz
    - Usunięcie kondensatora 100nF + zmiana rezystora 10kΩ na 1kΩ ~1050Hz

    obecnie można uzyskać ~1050Hz co daje ~6300obr/min jest to już naprawdę duży przeskok jeśli chodzi o wcześniejsze wyniki, jednak aby moje urządzenie mogło działać poprawnie muszę stabilnie odczytywać sygnał minimum 1500Hz

    Może jeszcze jakiś pomysł co można w obecnym schemacie zmodyfikować aby "przyspieszyć" moduł ?

    Transoptor szczelinowy - błędny odczyt z tarczy kodowej 10.000obr/min
  • Poziom 43  
    Fototranzystor w transoptorze działa tym szybciej im mniejsza jego rezystancja kolektorowa, ale żeby ją zmienić to trzeba dobrać prąd LEDa w transoptorze. Podaj model transoptora zobaczymy jego DS.

    Kolejna możliwość przyśpieszenia to praca transoptora w kaskodzie z drugim tranzystorem.

    To że zmiana rezystora w dzielniku pomogła świadczy że rezystory od LEDa i fototranzystora były źle dobrane - podłącz miliamperomierz równolegle do rezystora kolektorowego fototranzystora (10k) zobaczymy jak bardzo źle to dobrali.
  • Poziom 36  
    Podstawą jest dobry komparator i można uzyskać znacznie więcej . Problemem są zazwyczaj niskiej klasy podzespoły a w obecnych czasach chiński lm393 nie jest niczym szczególnym . Kup dobre części zastosuj porządny komparator i nie będzie problemu z uzyskaniem znacznie większych częstotliwości . W taki sam sposób działają przecież układy odbiorcze oparte o światłowody a tam częstotliwości są w MHz nie w KHz ...
  • Poziom 27  
    Na razie widać dalej oczywiste błędy na schemacie. Pytałem o wartość VCC.
  • Poziom 12  
    jutro postaram się wszystko pomierzyć i zamieścić do dalszej analizy aktualnie dodam pewną ciekawostkę którą właśnie odkryłem może będzie dobrą wskazówką.

    Posiadam tarczę kodową 10 jak i 19 rowkową o takiej samej średnicy jak i rozstawie otworów.

    10 rowkowa uzyskała ~ 1050Hz co daje około 6300obr/min
    19 rowkowa uzyskała ~ 2000Hz czyli też około 6300obr/min

    Jaki wniosek nasuwa się sam... błędy są uzależnione od prędkości tarczy a nie ilości impulsów
    czyżby powodem było zbyt wolne przechodzenie z stanu wysokiego na niski ?

    kulmar Vcc zasilane 5V więc napięcie będzie w tych granicach jeśli będzie potrzebny dokładniejszy pomiar wykonam jutro
  • Poziom 27  
    Przecież nie chodzi mi podanie VCC z dokładnością do drugiego miejsca po przecinku. Czy tam jest 5V czy np 3.3V? Bo dzielnik odniesienia 10k/10k zmieniłeś na dzielnik 1k/10k. No to jak głęboko w nasycenie chcesz wprowadzić transoptor?

    Dodano po 14 [minuty]:

    VCC = 5V; to na dzielniku, który wytwarza napięcie odniesienia masz 0.45V. Dziwne, że to w ogóle działa.
  • Poziom 12  
    Mój błąd zamiast sprawdzić wpisałem z pamięci 1kΩ a jest tam 2kΩ ( poprawiony schemat poniżej )

    kulmar sprawdziłem przy Vcc 3.3V jest nieznacznie lepiej o jakieś 100 - 150Hz względem Vcc 5V ( ostatecznie Vcc ma mieć 5V )

    Transoptor szczelinowy - błędny odczyt z tarczy kodowej 10.000obr/min
  • Poziom 27  
    Przywróć stare wartości dzielnika (10k/10k), a prąd diody zwiększ 5 razy - 220Ω.

    Dodano po 32 [minuty]:

    I źle obliczasz częstotliwości sygnału transoptora - są ≈ 6 razy większe.

    Dodano po 30 [minuty]:

    I po tych przeróbkach sprawdź woltomierzem na wejściu A+ komparatora, czy układ działa prawidłowo. Możesz poruszać tarczą i upewnić się, że szczeliny całkowicie odsłaniają i przesłaniają diodę nadawczą transoptora.
  • Poziom 30  
    Bez oscyloskopu może być średnio... Zazwyczaj najwolniejszym elementem jest fototranzystor. Zmniejszenie rezystancji kolektorowej powinno pomóc, ale może spowodować przesunięcie poziomu wyzwalania.
    Czasem pomaga też zasilenie komparatora z np 12V, ale "logiki" z 5V. Ale ogólnie prościej by było wymienić na "normalny" zamiast "no-name, może odrzut"
  • Poziom 27  
    Przecież może tarczę poruszać ręką. I sprawdzić, czy szczeliny prawidłowo odsłaniają i zasłaniają diodę transoptora.
  • Poziom 12  
    kulmar napisał:
    Przywróć stare wartości dzielnika (10k/10k), a prąd diody zwiększ 5 razy - 220Ω.


    Wstawiłem 270Ω bo aktualnie taki miałem dzielnik powrócił 10k/10k

    - rezultat brak widocznej poprawy odczytu, sygnał na poziomie 430Hz przy tarczy 10 rowkowej

    kulmar napisał:
    I źle obliczasz częstotliwości sygnału transoptora - są ≈ 6 razy większe.

    Aktualnie korzystam z miernika ut203 który na tarczy 10 rowkowej wskazywał częstotliwość 1050Hz po przyłożeniu do wyjścia komparatora, natomiast po przyłożeniu do wyjścia sygnału z mikrokontrolera (impuls co 10 przerwać) jest dziesięciokrotnie mniejszy (105Hz)
    1050x60÷10 = ilość obrotów, jeśli coś skopałem proszę o objaśnienie :D



    kulmar napisał:
    I po tych przeróbkach sprawdź woltomierzem na wejściu A+ komparatora, czy układ działa prawidłowo. Możesz poruszać tarczą i upewnić się, że szczeliny całkowicie odsłaniają i przesłaniają diodę nadawczą transoptora.


    Pomiary: rezystor 270Ω
    Całkowicie zasłonięta - 4.85V
    Całkowicie odsłonięta (środek szczeliny) - 0.15V
    Przy rezystorze diody 1kΩ identyczne pomiary
    Tarcze kodowe wypalane na laserze także "trzymają" wymiary każdego otworu

    Dzielnik 10k/10k - 2.45V
    Dzielnik 10k/2k - 0.85V

    CosteC napisał:
    ogólnie prościej by było wymienić na "normalny" zamiast "no-name, może odrzut"

    Mógłbyś polecić jakiś ogólnodostępny sprawdzony produkt ?

    kulmar napisał:
    Przecież może tarczę poruszać ręką. I sprawdzić, czy szczeliny prawidłowo odsłaniają i zasłaniają diodę transoptora.


    Jak piszesz tak uczyniłem pomiary powyżej.
    Gdy transoptor był na granicy przysłonięcia szczeliny napięcie wahało się w granicach 1.5V 2,5V
  • Poziom 43  
    ArczeX napisał:
    Wstawiłem 270Ω bo aktualnie taki miałem
    Zmierz teraz prąd po stronie fototranzystora - kiedy ten nie jest przysłonięty, włącz miliamperomierz równolegle go rezystora kolektorowego. Znając prąd mozna dobrać rezystor kolektorowy tak aby fototranzystor nie wchodził w głębokie nasycenie - najmniejszy możliwy co da najlepszą szybkość.

    Spójrzcie na przykładowy wykres czasów wyłaczenia/włączenia transoptora, parametry ma typowe dla wielu transoptorów katalogowo podają 10us ale to jest dla małych rezystancji i dużych prądów, kiedy prąd spada i rezystancja kolektorowa rośnie czasy są wielokrotnie większe, a tu nawet nie ma krzywej dla rezystancji 10kΩ, będzie blisko dekadę wyżej setki us
    Transoptor szczelinowy - błędny odczyt z tarczy kodowej 10.000obr/min
  • Poziom 27  
    Obliczenia dla częstotliwości:

    RPM = 10000/min -> czyli 167/sek -> 10 podziałek -> 1670Hz -> ale to jest jedna szósta tarczy -> czyli razy 6 ≈ 10000 Hz

    Czyli okres Twojego przebiegu wynosi 100us. Przy założeniu, że przebieg ma wypełnienie 50% (a tak na pewno nie jest) czas włączenia/wyłączenia transoptora to 50us. To teraz spójrz na tabelkę - dla rezystora 1k czas odpowiedzi transoptora to ok. 30us. Właśnie doszedłeś do granicznych możliwości pracy tego układu.

    Dodano po 10 [minuty]:

    A nie zwróciłem uwagi - jest jeszcze gorzej - Twój rezystor to nie 1k, a 10k.
  • Poziom 12  
    jarek_lnx napisał:
    Zmierz teraz prąd po stronie fototranzystora


    Pomiary wykonane, dodatkowo sprawdziłem wszystko w tym azjatyckim ustrojstwie i naniosłem poprawki na schemat okazało się że skośnooki inżynier wstawił zamiast 1kΩ z schematu 120Ω na diodę oraz dodatkowy kondensator 100nF w celu filtracji ?

    Teraz pomiary:
    Rezystor diody 120Ω - Prąd fotorezystora 8,2 mA
    Rezystor diody 270Ω - Prąd fotorezystora 4 mA

    Poprawiony schemat

    Transoptor szczelinowy - błędny odczyt z tarczy kodowej 10.000obr/min

    Jaki zatem rezystor fotorezystora proponujecie ?
  • Poziom 27  
    Ja bym zaczął od zaklejenia 9 szczelin i zrobieniu testów na jednej.
  • Poziom 43  
    jarek_lnx napisał:
    włącz miliamperomierz równolegle
    ????
    kulmar napisał:
    Ja bym zaczął od zaklejenia 9 szczelin i zrobieniu testów na jednej.
    Słusznie, nie znamy ,,optyki" tego czujnika, a raczej jej braku.
    Poza tym, raczej użył bym fotodiody, niż fototranzystora, skoro ma to być szybki enkoder, no i oczywiście dodatkowy stopień wzmocnienia. Poza tym, czy ta tarcza jest zaczerniona, bo mogą być też jakieś odbłyski. Bez oscyloskopu trudno stwierdzic co tam sie dzieje. Poza tym fototranzystor, nie fotorezystor, Szanowni. :D Na marginesie, w ,,przyzwoitych" układach baza fototranzystora nie wisi w powietrzu. Zawsze czymś jest polaryzowana, choćby rezystorem do emitera.
  • Pomocny post
    Poziom 43  
    Krzysztof Kamienski napisał:
    jarek_lnx napisał:
    włącz miliamperomierz równolegle
    ????
    Od tego są reguły żeby je łamać :)

    ArczeX napisał:
    Rezystor diody 120Ω - Prąd fotorezystora 8,2 mA
    czyli można wstawić rezystor kolektorowy 620Ω
  • Poziom 12  
    kulmar napisał:
    Ja bym zaczął od zaklejenia 9 szczelin i zrobieniu testów na jednej.

    Jeśli to pomoże w dalszej analizie założyłem tarczę kodową 8 rowkową lecz o szczelinie 2mm i rozstawie co 2mm przy konfiguracji dzielnika 10k/2k oraz pozbyciu sie kondensatora 100nf przy A+ osiągnąłem w pełnym zakresie obrotów poprawny odczyt, niestety te 2mm jest stanowczo zbyt dużą przerwą w moim projekcie i koniecznie musi być zastąpiona tarczą kodową o rowkach jak i rozstawie 1mm.

    Wynik dla tarczy 8 rowków 2mm odstęp 2mm - 1260Hz (więcej silniczek elektryczny nie dał rady wykręcić ) ~ 9450obr/min

    Krzysztof Kamienski napisał:
    Poza tym, raczej użył bym fotodiody, niż fototranzystora

    Może podasz coś sprawdzonego i ogólnie dostępnego ?

    Krzysztof Kamienski napisał:
    Poza tym fototranzystor, nie fotorezystor, Szanowni. :D

    Już się poprawiem :oops:

    Krzysztof Kamienski napisał:
    Na marginesie, w ,,przyzwoitych" układach baza fototranzystora nie wisi w powietrzu. Zawsze czymś jest polaryzowana, choćby rezystorem do emitera.

    Azjatycki inżynier tego nie uwzględnił... widać z założenia miał być ten moduł "nieprzyzwoity" :lol:

    jarek_lnx napisał:
    można wstawić rezystor kolektorowy 620Ω

    Jestem niezmiernie ciekaw wyników.. :D z samego rana dokonam modyfikacji i opiszę rezultat :D
  • Poziom 43  
    ArczeX napisał:
    osiągnąłem w pełnym zakresie obrotów poprawny odczyt, niestety te 2mm jest stanowczo zbyt dużą przerwą w moim projekcie i koniecznie musi być zastąpiona tarczą kodową o rowkach jak i rozstawie 1mm.
    Optyka ,,utyka" :cry: LED oświetla 1,5 szczeliny tarczy.
  • Poziom 12  
    Krzysztof Kamienski napisał:
    Optyka ,,utyka" :cry:

    Co proponujesz czym zastąpić obecny transoptor no-name ?
  • Poziom 12  
    jarek_lnx napisał:
    wstawić rezystor kolektorowy 620Ω


    Hołd Ci za to :please: ( wstawiłem 680Ω bo taki akurat miałem ) po modyfikacji impulsy prawidłowo sczytywane są w pełnym zakresie obrotów na tarczy 10 jak i 19 rowkowej 1mm.

    Dla tarczy 10 rowkowej 1mm uzyskałem prawidłowy sygnał 1600Hz ≈ 9600 obr/min. ( więcej nie był wstanie uzyskać silniczek napędzający tarczę )

    MAŁO TEGO - bezpośrednie połączenie transoptora omijając komparator również w pełnym zakresie obrotów daje prawidłowy sygnał - Wielkie DZIĘKI za pomoc :spoko:

    Zapytam jeszcze czy taka zmiana rezystora na kolektorze może skutkować szybszym uszkodzeniem fototranzystora ?

    Wstawiam poprawiony schemat.
    Transoptor szczelinowy - błędny odczyt z tarczy kodowej 10.000obr/min

    Krzysztof Kamienski napisał:
    Eksperyment. Tarcza 1/1 mm obracająca się przy samej szczelinie LEDa albo fototranzystora


    Dzięki za pomoc ale eksperyment jest już zbędny wszystko hula aż miło :D


    Jeszcze raz WSZYSTKIM DZIĘKUJĘ za pomoc w rozwiązaniu mojego problemu :please:
  • Poziom 27  
    ArczeX napisał:

    Zapytam jeszcze czy taka zmiana rezystora na kolektorze może skutkować szybszym uszkodzeniem fototranzysora


    Nie, ale układ masz zaprojektowany "na styk". Wystarczy, że prąd transoptora spadnie (z różnych powodów) o 50% i układ przestanie znowu działać.
  • Poziom 43  
    ArczeX napisał:
    Hołd Ci za to :please:
    Nie było łatwo ;) koledzy powyżej starali sie zepchnąć dyskusję na inne tory, obwiniać chińskie elementy itp.

    kulmar napisał:
    Nie, ale układ masz zaprojektowany "na styk". Wystarczy, że prąd transoptora spadnie (z różnych powodów) o 50% i układ przestanie znowu działać.
    To nie jest na styk, jeśli prąd fototranzystora spadnie do 50% to układ nadal będzie działał, teoretycznie spadek do 45% spowoduje że układ przestanie działać.

    Jedyna wada że jakby układ uległ uszkodzeniu, to dobór rezystora do prądu fototranzystora należało by powtórzyć.

    50% to spory zapas.

    ArczeX napisał:
    Zapytam jeszcze czy taka zmiana rezystora na kolektorze może skutkować szybszym uszkodzeniem fototranzystora ?
    Nie, jeśli miał bym się obawiać o trwałość czegokolwiek, to LEDa w transoptorze, nie tyle z przeciążenia co z "chińskości" prąd 32mA dla większości transoptorów nie jest prądem maksymalnym.