Spisu treści:
- Krok 1: Spójrz na obwód
- Krok 2: Podłącz go
- Krok 3: Skonfiguruj pliki z wartościami PWM
- Krok 4: Graj z DOS: skonfiguruj swój port COM i skopiuj pliki
- Krok 5: Kontroluj silnik z programu
- Krok 6: Eksperymentuj
Wideo: Silnik o zmiennej prędkości ze sterowaniem szeregowym: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:33
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
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
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
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
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
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
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:
Sterownik zmiennej prędkości silnika: 8 kroków
Regulator prędkości silnika o zmiennej prędkości: W tym projekcie pokażę, w jaki sposób stworzyłem regulator prędkości silnika i amp; Pokażę również, jak łatwo można zbudować regulator zmiennej prędkości silnika za pomocą IC 555. Zaczynajmy
Silnik 24 V DC na silnik uniwersalny o dużej prędkości (30 V): 3 kroki
24 V DC Motor na High Speed Universal Motor (30 V): Cześć! W tym projekcie nauczę Cię, jak przekształcić normalny zabawkowy 24 V DC Motor w 30 V Universal Motor. Osobiście uważam, że prezentacja wideo najlepiej opisuje projekt . Więc chłopaki, polecam najpierw obejrzeć film.Projekt V
Rycerz o zmiennej prędkości: 3 kroki
Rider Knight Rider o zmiennej prędkości: To mój pierwszy Instruktaż, więc proszę go polubić! Został zainspirowany programem telewizyjnym z lat 80. zatytułowanym Knight Rider, który miał samochód o nazwie KITT ze skanerem LED, który poruszał się w tę i z powrotem jak ten. Więc zacznijmy to robić
Silnik serwo z ciągłym obrotem (CRS) ze sterowaniem telegramem: 8 kroków
Silnik serwo z ciągłym obrotem (CRS) ze sterowaniem telegramem: W tej instrukcji nauczę Cię, jak sterować CRS za pomocą telegramu. Do tej instrukcji będziesz potrzebować kilku rzeczy. Będę pracował nad NodeMCU 1.0 (moduł ESP-12E). To może działać na innych bordach Arduino, wystarczy znaleźć profesjonalistę
Hermetyzacja silnika krokowego serwo ze sterowaniem szeregowym przez Arduino za pomocą drukarki 3D - Pt4: 8 kroków
Hermetyzacja silnika krokowego serwo ze sterowaniem szeregowym przez Arduino za pomocą drukarki 3D - Pt4: W tym czwartym filmie z serii Motor Step wykorzystamy to, czego nauczyliśmy się wcześniej, aby zbudować serwomotor krokowy ze sterowaniem przez komunikację szeregową i rzeczywistym sprzężenie zwrotne położenia za pomocą enkodera rezystancyjnego monitorowanego przez Arduino. W