Nagłówek dla funkcji sterowania silnikiem, w tym deklaracje struktury motor_struct oraz funkcji do inicjalizacji, obliczania prędkości, ustawiania zadanej prędkości oraz zatrzymywania silnika. Zawiera również definicje stałych konfiguracyjnych związanych z enkoderem i sterowaniem silnikiem. More...
Go to the source code of this file.
Data Structures | |
struct | motor_struct |
Struktura reprezentująca instancję silnika. More... | |
Functions | |
void | motor_init (motor_struct *motor, TIM_HandleTypeDef *encoder_tim) |
Inicjalizuje strukturę sterownika silnika. | |
void | motor_update_count (motor_struct *motor) |
Aktualizuje licznik impulsów enkodera. | |
void | motor_calculate_speed (motor_struct *motor) |
Oblicza prędkość obrotową silnika w RPM i aktualizuje sygnał PWM sterujący silnikiem. | |
void | motor_set_RPM_speed (motor_struct *motor, int RPM_speed) |
Ustawia zadaną prędkość obrotową silnika w RPM. | |
void | motor_stop (motor_struct *motor) |
Zatrzymuje silnik. | |
Nagłówek dla funkcji sterowania silnikiem, w tym deklaracje struktury motor_struct oraz funkcji do inicjalizacji, obliczania prędkości, ustawiania zadanej prędkości oraz zatrzymywania silnika. Zawiera również definicje stałych konfiguracyjnych związanych z enkoderem i sterowaniem silnikiem.
Created on: Jan 14, 2025 Author: Igor
void motor_calculate_speed | ( | motor_struct * | motor | ) |
Oblicza prędkość obrotową silnika w RPM i aktualizuje sygnał PWM sterujący silnikiem.
Na podstawie liczby impulsów z enkodera oraz ustawień systemu (częstotliwość przerwań, rozdzielczość enkodera, przekładnia) wylicza prędkość obrotową silnika.
motor | Wskaźnik do struktury motor_struct. |
Oblicza prędkość obrotową silnika w RPM i aktualizuje sygnał PWM sterujący silnikiem.
Na podstawie liczby impulsów odczytanych z enkodera i parametrów systemu (częstotliwości przerwań, rozdzielczości enkodera oraz przekładni) wylicza prędkość obrotową silnika. Wynik jest przekazywany do kontrolera PID, a wynik jego działania aktualizuje wartość sygnału PWM sterującego silnikiem.
motor | Wskaźnik do struktury motor_struct. |
void motor_init | ( | motor_struct * | motor, |
TIM_HandleTypeDef * | encoder_tim ) |
Inicjalizuje strukturę sterownika silnika.
Ustawia parametry sterownika silnika, w tym rozdzielczość enkodera oraz timer.
motor | Wskaźnik do struktury motor_struct reprezentującej sterownik silnika. |
encoder_tim | Wskaźnik do uchwytu timera obsługującego enkoder. |
Ustawia domyślne wartości parametrów struktury oraz inicjalizuje rozdzielczość enkodera na podstawie zdefiniowanych stałych.
motor | Wskaźnik do struktury motor_struct reprezentującej sterownik silnika. |
encoder_tim | Wskaźnik do uchwytu timera obsługującego enkoder. |
void motor_set_RPM_speed | ( | motor_struct * | motor, |
int | RPM_speed ) |
Ustawia zadaną prędkość obrotową silnika w RPM.
Resetuje stan kontrolera PID i zapisuje nową wartość zadanej prędkości.
motor | Wskaźnik do struktury motor_struct. |
RPM_speed | Zadana prędkość obrotowa w RPM. |
Jeżeli nowa prędkość różni się od bieżącej, resetuje stan kontrolera PID i zapisuje nową wartość zadanej prędkości.
motor | Wskaźnik do struktury motor_struct. |
RPM_speed | Zadana prędkość obrotowa w RPM. |
void motor_stop | ( | motor_struct * | motor | ) |
Zatrzymuje silnik.
Resetuje wszystkie parametry sterowania silnikiem do wartości początkowych i ustawia prędkość PWM na 0.
motor | Wskaźnik do struktury motor_struct. |
Resetuje zadaną prędkość, zmierzoną prędkość oraz sygnał PWM do wartości początkowych. Ustawia prędkość PWM na 0.
motor | Wskaźnik do struktury motor_struct. |
void motor_update_count | ( | motor_struct * | motor | ) |
Aktualizuje licznik impulsów enkodera.
Zczytuje bieżącą wartość licznika timera i zapisuje ją do struktury silnika, a następnie resetuje licznik.
motor | Wskaźnik do struktury motor_struct. |
Zczytuje aktualną wartość z licznika timera obsługującego enkoder, zapisuje ją do struktury sterownika silnika, a następnie zeruje licznik timera.
motor | Wskaźnik do struktury motor_struct. |