W tym samouczku będziemy sterować serwomotorem firmy ARDUINO UNO. Serwomotory są używane, gdy istnieje potrzeba dokładnego ruchu lub położenia wału. Nie są one proponowane do zastosowań o dużej szybkości. Są one proponowane do zastosowań z małą prędkością, średnim momentem obrotowym i dokładnym położeniem. Silniki te są używane w robotycznych maszynach, układach sterowania lotem i systemach sterowania.
Serwomotory są dostępne w różnych kształtach i rozmiarach. Serwomotor będzie miał głównie przewody, jeden jest przeznaczony do napięcia dodatniego, drugi do masy, a ostatni do ustawiania położenia. Przewód CZERWONY jest podłączony do zasilania, przewód czarny jest podłączony do masy, a przewód ŻÓŁTY jest podłączony do sygnału.
Silnik serwo to połączenie silnika prądu stałego, systemu kontroli położenia, przekładni. Położenie wału silnika prądu stałego jest regulowane przez elektronikę sterującą serwomechanizmu na podstawie współczynnika wypełnienia sygnału PWM pinu SIGNAL.
Mówiąc najprościej, elektronika sterująca reguluje położenie wału, sterując silnikiem prądu stałego. Dane dotyczące położenia wału przesyłane są poprzez pin SIGNAL. Dane o położeniu do sterowania należy przesłać w postaci sygnału PWM poprzez pin Signal serwomotoru.
Częstotliwość sygnału PWM (modulowana szerokością impulsu) może się różnić w zależności od typu serwomotoru. Ważną rzeczą jest tutaj DUTY RATIO sygnału PWM. Na podstawie tego CŁA elektronika sterująca reguluje wał.
Jak pokazano na poniższym rysunku, aby przesunąć wał na 9o zegar, WSPÓŁCZYNNIK WŁĄCZENIA musi wynosić 1/18. 1 ms czasu włączenia i 17 ms czasu wyłączenia w sygnale 18 ms.
Aby przesunąć wał na zegar 12o, czas załączenia sygnału musi wynosić 1,5 ms, a czas wyłączenia 16,5 ms. Współczynnik ten jest dekodowany przez układ sterowania w serwomechanizmach i na jego podstawie dostosowuje położenie. Ten PWM tutaj jest generowany przy użyciu ARDUINO UNO.
Elementy obwodu
Osprzęt: ARDUINO UNO, zasilacz (5v), kondensator 100uF, przyciski (dwuczęściowe), rezystor 1KΩ (dwuczęściowe), silnik serwo (wymagający przetestowania)
Oprogramowanie: arduino IDE (Nightly Arduino).
Schemat i wyjaśnienie obwodu silnika serwo Arduino
W normalnych przypadkach musimy udać się do rejestrów sterownika w celu ustawienia częstotliwości i uzyskania wymaganego współczynnika wypełnienia dla dokładnego sterowania położeniem serwomechanizmu, w ARDUINO nie musimy tego robić.
W ARDUINO mamy predefiniowane biblioteki, które odpowiednio ustawią częstotliwości i współczynniki wypełnienia po wywołaniu lub dołączeniu pliku nagłówkowego. W ARDUINO musimy po prostu określić położenie serwomechanizmu, które jest potrzebne, a PWM jest automatycznie regulowane przez UNO.
Rzeczy, które musimy zrobić, aby uzyskać dokładną pozycję serwomechanizmu, to:
|
Najpierw musimy ustawić częstotliwość sygnału PWM iw tym celu wywołać „#include
Teraz musimy zdefiniować nazwę dla serwa „Servo sg90sevo”, tutaj „sg90servo” to wybrana nazwa, więc pisząc do eliksiru będziemy używać tej nazwy, ta funkcja przydaje się, gdy mamy wiele serw do sterowania, możemy w ten sposób kontrolować aż osiem serw.
Teraz mówimy UNO, gdzie jest podłączony pin sygnałowy serwomechanizmu lub gdzie musi wygenerować sygnał PWM. Aby to zrobić, mamy „Sg90.attach (3);”, tutaj mówimy UNO, że podłączyliśmy pin sygnałowy serwa na PIN3.
Pozostało już tylko ustawić pozycję, ustawiamy pozycję serwomechanizmu za pomocą „Sg90.write (30);”, po tym poleceniu wskazówka serwa porusza się o 30 stopni, więc to wszystko. Następnie za każdym razem, gdy musimy zmienić pozycję serwomechanizmu, wywołujemy polecenie „Sg90.write (wymagany_pozycja_ kąt);”. W tym obwodzie będziemy mieli dwa przyciski jeden przycisk zwiększający pozycję serwomechanizmu a drugi służący do zmniejszania pozycji serwa.
Poradnik sterowania Ciężki serwomotoru wyjaśniono krok po kroku kodu C podanej poniżej.