Mechaniczne enkodery implementarne w ostatnich czasach są szeroko stosowane w urządzeniach cyfrowych. Posiadają mały rozmiar, są też tanie. Mają niestety też pewne wady. Moim zadaniem główną z nich jest zawodność i drżenia styków oraz brak łożyska. Najbardziej to jest zauważane w amatorskim sprzęcie krótkofalowym, np. syntezatorach częstotliwości, bo tam ulegają intensywnej eksploatacji podczas strojenia (np. poszukiwania stacji).
Po długim używaniu taniego enkodera w konstrukcji syntezatora, w końcu zdecydowałem wymienić go na bardziej niezawodny. Optyczne enkodery są w sprzedaży, ale są drogie i trzeba na nie czekać. Ale od dawna zastanawiałem się nad tym, jak wykonać niezawodny i wygodny enkoder samodzielnie. Parę miesięcy temu w moje ręce trafił stary magnetowid Akai (model VS-R88K), o którym pisałem w tym artykule.
Tak naprawdę nie ma w nim żadnego enkodera, ale ma on głowicę wirująca, która (a raczej jej silnik), jak mi się wydawało - dobrze pasuje do tej roli. Zobaczymy. Jak wiadomo, silnik krokowy zawiera co najmniej kilka cewek połączonych w grupy, tzw. fazy. W moim przypadku będą one pełniły rolę czujników pozycji magnesu, który jest powiązany z pokrętłem. Przy każdym obrocie pokrętła magnes indukuje napięcie w cewkach, z pewną różnicą faz. Dzięki temu, za pomocą odpowiedniego oprogramowania, możemy sterować dowolnym mikroprocesorem. Należy jednak pamiętać, że napięcie przemienne z cewek ma przebieg sinusoidalny, a jego amplituda może się wahać od kilkuset miliwoltów do kilkudziesięciu woltów, w zależności od prędkości obrotu magnesu (czyli pokrętła). Zbyt małe napięcie może nie zostać wykryte przez wejście cyfrowe mikrokontrolera, natomiast zbyt duże może uszkodzić układ.
Dlatego między cewkami a wejściami kontrolera należy zastosować przerzutnik Schmitta, który najłatwiej zrealizować za pomocą wzmacniacza operacyjnego.
Obecny u mnie silnik ma dwie fazy, więc potrzebujemy dwóch wzmacniaczy operacyjnych. Na jednej z płytek wspominanego powyżej magnetowidu znajdował się układ scalony NJM4558L, czyli podwójny WO. Świetne nadaje się do zastosowania jako przerzutnik Schmitta. Tym bardziej, że charakterystyki tego wzmacniacza są podobne do LM348, na podstawie którego już wykonałem inny projekt, ale z innym silnikiem skokowym.
Wadą tego rozwiązania jest nie możliwość pracy w układach z napięciem zasilania 3V. Problem w moim przypadku polega na NJM4558L. Nie nadaje się do niskiego napięcia i rozwiązaniem może być stosowanie innego WO.
Z płytki sterowania silnikiem należy wylutować układ scalony BA6415AFS. Wejścia przerzutnika podłączamy do cewek silnika, które odpowiadają pinom 2–24 oraz 21–23 sterownika. Wyjścia natomiast należy podłączyć do odpowiednich cyfrowych pinów mikrokontrolera — w moim przypadku jest to Arduino. Trzeba pamiętać, że z przerzutnika otrzymujemy aktywną „jedynkę”, więc należy odpowiednio zmodyfikować szkic lub bibliotekę. U mnie syntezator działa ze standardowym szkicem od SQ9NJE. Jednak występuje problem — zmiana kierunku obracania gałki czasami powoduje zatrzymanie zmiany częstotliwości, czyli syntezator reaguje z opóźnieniem na zmianę. Dla mnie nie jest to poważny problem, choć będę szukał rozwiązania.
Pokrętłem sterowania jest bęben głowic wirujących. Jest bardzo wygodny i ma duży moment bezwładności, dzięki czemu można go używać podobnie jak gałki strojenia w powojennym sprzęcie wojskowym. Usunąłem jednak głowice i całe wnętrze bębna. Jeśli ktoś ma możliwość, może zastosować radełkowanie lub wydrukować pokrywkę na drukarce 3D.
Schemat można wykorzystać również z innymi silnikami krokowymi, ale w każdym przypadku należy sprawdzić szkic lub bibliotekę, ponieważ nie każda będzie odpowiednia.
Na schemacie podłączenia cewek można zauważyć dwa czujniki Halla. Dopiero po wykonaniu enkodera z cewkami przyszło mi do głowy, że można było wykorzystać właśnie te czujniki zamiast cewek i wzmacniaczy operacyjnych. Wkrótce spróbuję takiego rozwiązania.
Po długim używaniu taniego enkodera w konstrukcji syntezatora, w końcu zdecydowałem wymienić go na bardziej niezawodny. Optyczne enkodery są w sprzedaży, ale są drogie i trzeba na nie czekać. Ale od dawna zastanawiałem się nad tym, jak wykonać niezawodny i wygodny enkoder samodzielnie. Parę miesięcy temu w moje ręce trafił stary magnetowid Akai (model VS-R88K), o którym pisałem w tym artykule.
Tak naprawdę nie ma w nim żadnego enkodera, ale ma on głowicę wirująca, która (a raczej jej silnik), jak mi się wydawało - dobrze pasuje do tej roli. Zobaczymy. Jak wiadomo, silnik krokowy zawiera co najmniej kilka cewek połączonych w grupy, tzw. fazy. W moim przypadku będą one pełniły rolę czujników pozycji magnesu, który jest powiązany z pokrętłem. Przy każdym obrocie pokrętła magnes indukuje napięcie w cewkach, z pewną różnicą faz. Dzięki temu, za pomocą odpowiedniego oprogramowania, możemy sterować dowolnym mikroprocesorem. Należy jednak pamiętać, że napięcie przemienne z cewek ma przebieg sinusoidalny, a jego amplituda może się wahać od kilkuset miliwoltów do kilkudziesięciu woltów, w zależności od prędkości obrotu magnesu (czyli pokrętła). Zbyt małe napięcie może nie zostać wykryte przez wejście cyfrowe mikrokontrolera, natomiast zbyt duże może uszkodzić układ.
Dlatego między cewkami a wejściami kontrolera należy zastosować przerzutnik Schmitta, który najłatwiej zrealizować za pomocą wzmacniacza operacyjnego.
Obecny u mnie silnik ma dwie fazy, więc potrzebujemy dwóch wzmacniaczy operacyjnych. Na jednej z płytek wspominanego powyżej magnetowidu znajdował się układ scalony NJM4558L, czyli podwójny WO. Świetne nadaje się do zastosowania jako przerzutnik Schmitta. Tym bardziej, że charakterystyki tego wzmacniacza są podobne do LM348, na podstawie którego już wykonałem inny projekt, ale z innym silnikiem skokowym.
Wadą tego rozwiązania jest nie możliwość pracy w układach z napięciem zasilania 3V. Problem w moim przypadku polega na NJM4558L. Nie nadaje się do niskiego napięcia i rozwiązaniem może być stosowanie innego WO.
Z płytki sterowania silnikiem należy wylutować układ scalony BA6415AFS. Wejścia przerzutnika podłączamy do cewek silnika, które odpowiadają pinom 2–24 oraz 21–23 sterownika. Wyjścia natomiast należy podłączyć do odpowiednich cyfrowych pinów mikrokontrolera — w moim przypadku jest to Arduino. Trzeba pamiętać, że z przerzutnika otrzymujemy aktywną „jedynkę”, więc należy odpowiednio zmodyfikować szkic lub bibliotekę. U mnie syntezator działa ze standardowym szkicem od SQ9NJE. Jednak występuje problem — zmiana kierunku obracania gałki czasami powoduje zatrzymanie zmiany częstotliwości, czyli syntezator reaguje z opóźnieniem na zmianę. Dla mnie nie jest to poważny problem, choć będę szukał rozwiązania.
Pokrętłem sterowania jest bęben głowic wirujących. Jest bardzo wygodny i ma duży moment bezwładności, dzięki czemu można go używać podobnie jak gałki strojenia w powojennym sprzęcie wojskowym. Usunąłem jednak głowice i całe wnętrze bębna. Jeśli ktoś ma możliwość, może zastosować radełkowanie lub wydrukować pokrywkę na drukarce 3D.
Schemat można wykorzystać również z innymi silnikami krokowymi, ale w każdym przypadku należy sprawdzić szkic lub bibliotekę, ponieważ nie każda będzie odpowiednia.
Na schemacie podłączenia cewek można zauważyć dwa czujniki Halla. Dopiero po wykonaniu enkodera z cewkami przyszło mi do głowy, że można było wykorzystać właśnie te czujniki zamiast cewek i wzmacniaczy operacyjnych. Wkrótce spróbuję takiego rozwiązania.
Fajne? Ranking DIY