Witam. Chciałbym zbudować prosty układ z silnikiem krokowym, coś na zasadzie bezstopniowej skrzyni biegów. Założeniem jest że silnik będzie napędzał nieduży mechanizm a prędkość obrotowa silnika będzie regulowana np. potencjometrem, ale uzależniona proporcjonalnie od obrotów z enkodera. Silniki i sterowniki są dostępne, coś bym dobrał. Czy są dostępne jakieś generatory impulsów, które generują sygnał na podstawie odczytu prędkości obrotowej enkodera i nastawionej wartości z potencjometru?
Pewno scalak by się znalazł, ale raczej będzie ciężko dostępny. Nie lepiej zastosować jakiś mikrokontroler np Arduino (AVR), PIC czy ESP? Po co używać jednocześnie potencjometru i enkodera?
Możesz rozwinąć myśl? nie rozumiem po co potencjometr i jednocześnie enkoder. Rozumiem sam potencjometr który będzie regulował prędkość silnika ale po co enkoder? jakie ma mieć zadanie? Zrozumiał bym też sam enkoder czyli zadajnik kroków.
Układ ma działać jak bezstopniowa skrzynia biegów. Enkoder odczytywałby prędkość obrotową z zewnątrz, która jest zmienna, bez stałej wartości. Potencjometrem bądź w jakiś podobny sposób chciałbym ustawiać przełożenie między prędkością wejściową a wyjściową. Regulacja ta miałaby być płynna. Wolałbym zastosować gotowe rozwiązania, jeśli są takie dostępne.
Każdy impuls enkodera powinien dostarczyć określony ładunek do kondensatora. Przekroczenie pewnego napięcia na kondensatorze powinno generować impuls do silnika krokowego i zabrać określony ładunek. Jeden z tych ładunków powinien zależeć od ustawienia potencjometru. Ale jeśli impuls enkodera ma dawać większy ładunek, niż zabierany przy generowaniu impulsu dla silnika, to układ musi zadbać o odstęp czasu pomiędzy impulsami.
Albo (ale to będzie wprowadzać opóźnienie) przetwornik częstotliwości na napięcie, potencjometr, przetwornik napięcia na częstotliwość. Są do tego scalaki.
Prawdopodobnie łatwiej będzie zaprogramować to na jakimś Arduino, niż uruchomić układ przetwarzania bez procesora.
Albo (ale to będzie wprowadzać opóźnienie) przetwornik częstotliwości na napięcie, potencjometr, przetwornik napięcia na częstotliwość. Są do tego scalaki.
Są nawet moduły do kupienia, dwa moduły i potencjometr między nimi ale czy to wypali nie wiem bo moduły mają określoną częstotliwość. Tylko pewnie jeszcze zachodzi kierunek obrotów wtedy takie proste rozwiązania nie wchodzą w grę.
Chyba im się moduły tym alibabom zamieniły - LM331 działa w kierunku U na f.
Poza tym, potrzebny byłby jakiś regulowany wzmacniacz napięcia i/ lub tłumik, dla ustalenia stopnia przełożenia tej "skrzyni".
No i, do kompletu, sterownik silnika. Coś, jak A4988 - również do dostania na dalekowschodnich rynkach.
Wiem, że chodzi ci o gotowe rozwiązanie, ale jak niczego nie znajdziesz, arduino dużo dodatkowego hardware'u nie potrzebuje (poza driverem w zasadzie tylko opcjonalnie konwerter poziomów logicznych jeszcze):
(przyciski udają enkoder )
Na pewno wymaga to pomyślenia nad algorytmem - na wejściu dostajemy sygnały "kroków" enkodera, na wyjściu mamy dawać kroki dla silnika, gdyby pierwsze miały być dużo gęściejsze, to dla każdego dodajemy pewną wartość w1 (dużo mniejszą od 1) do zmiennej, a gdy suma z dodawania przekroczy 1, generujemy krok silnika i odejmujemy 1 od zmiennej; przy niezbyt gęstych krokach enkodera wymaga je sztucznie zagęścić, np. na każdy krok enkodera robimy N dodawań w odstępach czasu tak dobranych, by czas na N dodawań był równy odstępowi kroków - ale co robić, jak kolejny będzie szybciej? Wypadałoby jakoś płynnie zwiększać częstotliwość wirtualnych kroków enkodera...
A po co się tak bawić timery będą rozwiązaniem, ale on pewnie pierwsze kroki wiec timery raczej odpadają. I będzie szukał jakiś gotowców i bibliotek co w ardunio nie jest zbyt przyjazne.
Tu jest przede wszystkim zagadnienie matematyczne, które trzeba rozwiązać: jak odwzorowywać impulsy enkodera w kroki silnika, żeby utrzymywać określony iloraz ich liczb, a nie powodować skoków częstotliwości. Dopiero mając jego rozwiązanie można się zająć implementacją tego rozwiązania w postaci programu, albo układu elektronicznego. Może użycie timerów pozwoli uprościć tę implementację, może by ją skomplikowało - na razie nie ma podstaw, by to rozstrzygać.
Użył bym mapowania. Jednym timerem bym odczytywał czas trwania okresu do zmiennej, uśrednienie pomiaru metodą rosnącą/malejącą, a między nimi użył mapowania gdzie zasięg mapowania to dane z potencjometra, drugim timerem bym generował czas trwania okresu z tej zmiennej.
Układ ma działać jak bezstopniowa skrzynia biegów. Enkoder odczytywałby prędkość obrotową z zewnątrz, która jest zmienna, bez stałej wartości. Potencjometrem bądź w jakiś podobny sposób chciałbym ustawiać przełożenie między prędkością wejściową a wyjściową. Regulacja ta miałaby być płynna. Wolałbym zastosować gotowe rozwiązania, jeśli są takie dostępne.
W zasadzie to tego rodzaju urządzenia są dostępne, nie koniecznie budowane na bazie stepperów przez co sa o wiele tańsze!
Steppery stosuje się raczej do dokładnego pozycjonowania elementów w procesach technologicznych, zamiast pedni z regulowanymi obrotami/min
Jeżeli docelowo chcesz regulować prędkość obrotowa silnika krokowego, to na samym początku powinieneś poznać budowę i zasadę działania takiego silnika!
Z treści twojego postu nie wynika abyś ten etap przyswojenia wiedzy w tym kierunku miał juz za sobą (opanowany).
Przyjmij że stepper jest urządzeniem wykonawczym /końcowym uzależnionym od jego zadanego wysterowania, zarówno prędkości obrotowej, jak i ilości wykonanych kroków, na co żaden encoder nie ma wpływu i w praktyce nie jest stosowany, szczególnie gdy chcesz regulować tylko prędkość obrotową z nie znaczącą tolerancją.
Owszem możesz dobudować, doinstalować encoder jako element sprawdzający poprawność zadanych ruchów na wypadek gubienia kroków z różnych przyczyn; zarówno programowych jak i mechanicznych.
Jeżeli do twojego wstępnego, testowego/edukacyjnego powiedzmy projektu posłużysz się jakakolwiek płytką z serii Arduino lub z innym kompatible procesorem, to nie potrzebujesz zadnych dodatkowych generatorów impulsów, bo takich generatorów sama płytka wspólnie z odpowiednią biblioteką dostarczy w wymaganej ilości..
✨ Użytkownik planuje zbudować układ z silnikiem krokowym, który będzie działał jak bezstopniowa skrzynia biegów, z regulacją prędkości za pomocą potencjometru oraz enkodera. Enkoder ma odczytywać zmienną prędkość obrotową, a potencjometr ma umożliwiać ustawienie przełożenia. W dyskusji pojawiają się sugestie dotyczące użycia mikrokontrolerów, takich jak Arduino, do realizacji projektu, a także omówienie możliwości zastosowania gotowych modułów i scalaków. Wskazano na potrzebę przemyślenia algorytmu przetwarzania sygnałów z enkodera oraz generowania impulsów dla silnika. Uczestnicy dyskusji podkreślają, że kluczowe jest zrozumienie działania silników krokowych oraz odpowiednie mapowanie sygnałów. Wygenerowane przez model językowy.