Spisu treści:

Silnik o zmiennej prędkości ze sterowaniem szeregowym: 6 kroków
Silnik o zmiennej prędkości ze sterowaniem szeregowym: 6 kroków

Wideo: Silnik o zmiennej prędkości ze sterowaniem szeregowym: 6 kroków

Wideo: Silnik o zmiennej prędkości ze sterowaniem szeregowym: 6 kroków
Wideo: stepper motor (silnik krokowy) 2024, Lipiec
Anonim
Silnik o zmiennej prędkości ze sterowaniem szeregowym
Silnik o zmiennej prędkości ze sterowaniem szeregowym

Kontroluj prędkość małego silnika prądu stałego za pomocą portu szeregowego w komputerze, pojedynczego MOSFET-u i trywialnego oprogramowania. (Mosfet i port szeregowy tworzą „kontrolę prędkości”; nadal będziesz potrzebować silnika i odpowiedniego zasilacza do tego silnika; podczas gdy port szeregowy może zapewnić napięcie do włączania i wyłączania mosfeta, może t dostarczyć prąd wymagany przez typowy silnik.)

Krok 1: Spójrz na obwód

Spójrz na tor
Spójrz na tor

Zamierzamy wykonać modulację szerokości impulsu za pomocą ogólnego N-kanałowego MOSFET-u mocy podłączonego do pinu transmisji danych z portu rs232 komputera. Gdy port szeregowy jest bezczynny, pin będzie siedział w stanie „1”, który w momencie przetłumaczenia na rs232, wynosi około -12 V (w zależności od sterowników może być bliżej -9 V lub -5 V), oraz tranzystor będzie całkiem wyłączony. Kiedy przesyłamy bity "0" na porcie szeregowym, pin rs232 przejdzie do +12V lub więcej, co wystarczy, aby całkiem dobrze włączyć większość mosfetów.

Jeśli prześlemy dużo "0" bis z rzędu, silnik będzie bliski pełnego włączenia i będzie działał szybko. Jeśli przesyłamy głównie bity "1", silnik będzie działał wolniej.

Krok 2: Podłącz go

Podłącz to w górę
Podłącz to w górę

Ponieważ jest tylko jeden komponent i tylko kilka połączeń, możesz po prostu dodać przewody „dowolne”.

MOSFETy są wrażliwe na ładunki statyczne, więc bądź ostrożny, ale bardzo niewiele jest krytycznych.

Krok 3: Skonfiguruj pliki z wartościami PWM

Skonfiguruj pliki z wartościami PWM
Skonfiguruj pliki z wartościami PWM

Jednym ze sposobów sterowania silnikiem bez konieczności pisania JAKIEGOKOLWIEK oprogramowania jest przygotowanie plików zawierających odpowiednie bajty (mniej więcej 0 bitów) i po prostu SKOPIUJ je do portu COM, do którego podłączony jest silnik. Przygotowałem kilka plików (używając emacsa, ale cokolwiek działa dla ciebie, jest w porządku):

  • 0.pwm:: zawiera 5000 znaków NULL (spacja kontrolna na większości klawiatur)[br] Jest to mniej więcej tak blisko „pełnej prędkości”, jak to możliwe dzięki tej technice.
  • 1.pwm:: zawiera 5000 znaków control-A (ascii 01) (jeden bit "1" na znak)
  • 3.pwm:: zawiera 5000 znaków control-C (ascii 03) (dwa "1" bity na znak)
  • 7.pwm:: zawiera 5000 znaków control-G (ascii 07) (trzy "1" bity na znak)
  • 15.pwm:: zawiera 5000 znaków control-O (ascii 15) (cztery "1" bity na znak)
  • 31.pwm:: zawiera 5000 znaków control-_ (ascii 31) (pięć "1" bitów na znak)
  • 63.pwm:: zawiera 5000 "?" znaków (ascii 63) (sześć "1" bitów na znak)
  • 127.pwm:: zawiera 5000 znaków DEL (ascii 127) (siedem "1" bitów na znak)

(Teraz, kiedy narysowałem obrazki, zauważysz, że rzeczywiste wzorce bitowe nie są idealne. Ponieważ port szeregowy rs232 najpierw przesyła LSB, naprawdę chcemy przesuwać zera zamiast jedynek. Ćwiczenie dla ucznia!)

Krok 4: Graj z DOS: skonfiguruj swój port COM i skopiuj pliki

Graj z DOS: skonfiguruj swój port COM i skopiuj pliki
Graj z DOS: skonfiguruj swój port COM i skopiuj pliki

9600 bps to powszechny bitrate. Ładnie pasuje do "około" jednego bajtu na milisekundę, więc w tym przypadku odpowiada częstotliwości PWM 1000Hz, co moim zdaniem powinno być w porządku dla małych silników. Możesz poeksperymentować z różnymi szybkościami transmisji bitów, aby zobaczyć, jak wszystko działa, co jest jedną z zalet tej metody. Utwórz okno DOS (lub „Wiersz poleceń”) (zakładając, że używasz systemu operacyjnego Windows) i skonfiguruj port COM w taki sposób:mode com1: 9600, n, 7, 1"To mówi portowi komunikacyjnemu, aby działał z prędkością 9600bps i wysyłał 7 bitów w każdym znaku (aby dopasować się do naszych 7 różnych długości bitów). "n" oznacza BRAK parzystości, więc będą to jedyne bity danych. „1” oznacza, że będzie jeden bit „stop”, który uniemożliwi nam całkowite włączenie silnika (no cóż.) Więc teraz możesz włączyć silnik za pomocą poleceń jak:copy 0.pwm com1:Ponieważ wysyłamy 5000 znaków z prędkością około 1 na milisekundę, silnik powinien włączyć się z prędkością bliską pełnej prędkości na około 5 sekund. Jeśli chcesz mniej niż 5 sekund, zrób krótszy plik. Podobnie, możesz zrobić:skopiuj 127.pwm com1:aby uruchomić silnik z najniższą możliwą prędkością. Przy konfiguracji, którą miałem, silnik w ogóle nie obracałby się z niczym „wolniejszym” niż 31.pwm, ale YMMV (cienkie k Miałem silnik 12V pracujący przy 5V baterii.) Polecenie KOPIUJ umożliwia łączenie plików, więc jeśli chcesz, aby silnik przyspieszył, a następnie zwolnił, możesz zrobić coś takiego: skopiuj 31.pwm + 15. pwm+7.pwm+0.pwm+7.pwm+15.pwm+31.pwm com1:

Krok 5: Kontroluj silnik z programu

Kontroluj silnik z programu
Kontroluj silnik z programu

Jeśli piszesz program, prawdopodobnie możesz otworzyć COM1: jako plik i po prostu pisać do niego tak, jakby to był jakikolwiek inny plik. Możliwość odmierzania okresów, w których silnik jest włączony, poprzez wyprowadzanie określonej liczby znaków wydaje się być bardzo przydatna. Nie zapominaj, że system z dużym prawdopodobieństwem buforuje znaki, które wysyłasz do portu szeregowego, więc tylko dlatego, że wywołanie WRITE powraca, nie oznacza, że silnik zakończył wykonywanie tego, co mu kazałeś. Ponieważ nie robimy nic "wymyślnego" z sygnałami portu COM, nie powinieneś badać tajemnych opcji, które może on obsługiwać. (chociaż, jeśli potrafisz wymyślić, jak wysłać sekwencję BREAK do portu COM, jest to ciągły stan „0” i będzie napędzał silnik CAŁKOWICIE; więcej niż wysyłanie ciągłych znaków 0.)

Jeśli twój język programowania nie pozwala na wyjście do COM1:, nadal możesz kontrolować silnik przez "wywoływanie" DOSu w celu wykonania poleceń kopiowania. (OK. Pobrałem Microsoft Visual Basic Express 2005 (który jest darmowy) i udało mi się powiązać poziomy pasek przewijania z prędkością silnika, sterowaną przez port szeregowy. Dołączony zip. Prawdopodobnie ma więcej niż potrzebuje do duplikowania programu w twoim systemie, ale nie mogłem dokładnie określić, które bity są potrzebne. Program jest zarówno uproszczony, jak i trudniejszy do zrozumienia (przepraszam), ponieważ jest wielowątkowy. Jeden wątek nie robi nic poza wyprowadzaniem do portu szeregowego, a główny wątek odczytuje pasek przewijania i aktualizuje informacje używane przez wątek szeregowy.)

Krok 6: Eksperymentuj

Eksperyment!
Eksperyment!

Jeśli wszystko w zasadzie działa, daje to bardzo dużo miejsca na eksperymenty.

  • Napraw moje wzory bitów!
  • Czy bitrate ma duże znaczenie?
  • Czy trzeba kontrolować szerokość impulsów „włącz” i „wyłącz”, czy po prostu wystarczy kontrolować ich stosunek?
  • Jeśli musisz kontrolować tylko współczynnik, możesz rozważyć sekwencje wieloznakowe przy wyższych przepływnościach, aby uzyskać większe poziomy prędkości. Wyjście 0, a następnie 127 byłoby o połowę włączone.
  • Powinno to działać również w przypadku ściemniania żarówek latarek.

Zalecana: