PID regulator v 1.0
 
Loading...
Searching...
No Matches
motor.h File Reference

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...

#include "stm32l0xx.h"
#include "pid_controller.h"
#include "cytronDriver.h"

Go to the source code of this file.

Data Structures

struct  motor_struct
 Struktura reprezentująca instancję silnika. More...
 

Macros

#define ENCODER_RESOLUTION   8
 Wynika z hardware'u.
 
#define TIMER_CONFIGURATION_BOTH_EDGES   4
 Liczba zliczeń na jeden impuls.
 
#define MOTOR_GEAR   120
 Przełożenie silnika.
 
#define TIMER_INTERRUPT_FREQUENCY   10
 Częstotliwość przerwań (Hz)
 
#define SECONDS_IN_MINUTE   60
 Sekundy w minucie.
 

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.
 

Detailed Description

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

Function Documentation

◆ motor_calculate_speed()

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.

Parameters
motorWskaź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.

Parameters
motorWskaźnik do struktury motor_struct.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ motor_init()

void motor_init ( motor_struct * motor,
TIM_HandleTypeDef * encoder_tim )

Inicjalizuje strukturę sterownika silnika.

Ustawia parametry sterownika silnika, w tym rozdzielczość enkodera oraz timer.

Parameters
motorWskaźnik do struktury motor_struct reprezentującej sterownik silnika.
encoder_timWskaź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.

Parameters
motorWskaźnik do struktury motor_struct reprezentującej sterownik silnika.
encoder_timWskaźnik do uchwytu timera obsługującego enkoder.
Here is the caller graph for this function:

◆ motor_set_RPM_speed()

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.

Parameters
motorWskaźnik do struktury motor_struct.
RPM_speedZadana 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.

Parameters
motorWskaźnik do struktury motor_struct.
RPM_speedZadana prędkość obrotowa w RPM.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ motor_stop()

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.

Parameters
motorWskaź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.

Parameters
motorWskaźnik do struktury motor_struct.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ motor_update_count()

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.

Parameters
motorWskaź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.

Parameters
motorWskaźnik do struktury motor_struct.
Here is the caller graph for this function: