Skocz do zawartości

Sterowanie serwomechanizmem z stm32


faustin

Pomocna odpowiedź

 

Cześć, próbowałam napisać program , który po przyciśnięciu switcha powodowałby obrót serwa, pisząc próbowałam dopatrzeć się analogii w Arduino , ale tam była specjalna jakby biblioteka do sterowania serwem, czy w stm też tak jest jeśli tak to jak się nazywa i jak można napisać ten fragment kodu po ifie odpowiedzialny za sterowanie serwem ?

Edytowano przez Gieneq
Link do komentarza
Share on other sites

@faustin sygnał sterujący serwem to PWM o stałej częstotliwości a zmiennym wypełnieniu. Możesz więc napisać funkcję, która zmienna okres sygnału czyli wartość do której zlicza licznik aby przełączyć stan GPIO. Czasy to około 1,5-2,5 ms. Czy jest do tego biblioteka w sumie nie wiem, może jest, ale chyba jest to dość proste zadanie.

W tym zadaniu możesz posiłkować się kursami dotyczącymi PWM, np ten z kursu STM32L4 o diodach programowalnych albo z części o zwykłych diodach RGB masz kod odpowiedzialny za ustawienie wartości wypełnienia:

float r = 50 * (1.0f + sin(counter / 100.0f));
float g = 50 * (1.0f + sin(1.5f * counter / 100.0f));
float b = 50 * (1.0f + sin(2.0f * counter / 100.0f));
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, calc_pwm(b));
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, calc_pwm(g));
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3, calc_pwm(r));

HAL_Delay(10);
counter++;

 

Edytowano przez Gieneq
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.