[PRZYKŁAD] Sterownik silników KAmodMPC17C724 i KAmduino UNO

Po podłączeniu całości można przejść do oprogramowania na platformę Arduino. Poniższy program ma za zadanie spowodować, żeby silnik nabierał coraz wyższej prędkości, następnie zwalniał, zmieniał kierunek i tak w kółko. Poniżej znajduje się omówienie kodu programu:

Na początku definiowane są numery pinów, do których podłączone są piny modułu KAmodMPC17C724. Definicje są zgodne z połączeniem pokazanym w tabeli na poprzedniej stronie. Oczywiście w przypadku podjęcia decyzji o zmianie sposobu połączenia należy też zmienić poniższe definicje.

W funkcji setup inicjalizowane są wszystkie piny cyfrowe jako wyjścia. Następnie potencjał linii PSAVE ustawiany jest na potencjale masy, co ustawia sterownik w stan włączenia. W tym programie silniki przez cały czas są włączone, ale warto pamiętać, że przełączenie tej linii w stan wysoki wyłącza silniki.

Funkcja ustawMPC17C724 uaktualnia parametry sygnałów wysyłanych do sterownika. Kierunek silnika ustawiany jest jako stan zmiennych kierunek1 oraz kierunek2. Prędkość ustawiana jest jako 8-bitowa wartość typu int. Musi więc mieścić się w zakresie 0…255. Prędkość silnika zależy od wypełnienia sygnału PWM. Parametry sygnału na pinie, na którym możliwe jest zaaplikowanie sprzętowego PWM (na płytce KAmduino Uno: 3, 5, 6, 9, 10, lub 11) można ustawić funkcją analogWrite. Argumentami analogWrite są: numer pinu oraz wypełnienie sygnału. Częstotliwość sprzętowego PWM wynosi w Arduino domyślnie 490 Hz. W funkcji ustawMPC17C724 jest już uwzględniony fakt, że wpływ wypełnienia przesyłanego po pinu IN1A/IN2A ma różny wpływ na prędkość w zależności od kierunku działania silnika. Użytkownik przesyłając prędkość do funkcji w zmiennych predkosc1 i predkosc2 może to zrobić w sposób naturalny (0 – brak ruchu, 255 – najwyższa prędkość). Warto zwrócić uwagę, że przy małych wartościach wypełnienia silnik w ogóle nie ruszy.

W funkcji loop odbywa się sterowanie sekwencja ruchu silnika. Silnik przyspiesza do maksimum,  zwalnia do zera, a następnie zmienia kierunek i rozpoczyna sekwencję od nowa. Gdy oba silniki podłączone są w ten sam sposób, powinny poruszać się w przeciwnych kierunkach przez cały czas działania programu. Opóźnienia w pętli dodane są po to, aby można było zaobserwować powolne zwiększanie i zmniejszanie się prędkości obrotów.

Działanie przykładu można zaobserwować na poniższym materiale wideo:

Do pobrania

O autorze