Step motor kontrol fonksiyonları
Ayrıntılar...
Step motor kontrol fonksiyonları
- Ayrıca Bakınız
- Step Motor
◆ get_motor_state()
Motorun mevcut durumunu döndürür.
- Döndürdüğü değer
- motor_state_t MOTOR_STOPPED, MOTOR_RUNNING veya MOTOR_ERROR
◆ init_step_motor()
| void init_step_motor |
( |
void |
| ) |
|
Step motor GPIO pinlerini başlatır.
Bu fonksiyon, 4 fazlı bir step motorunu kontrol etmek için kullanılan GPIO pinlerini yapılandırır. Her pini başlatır ve motor bobinlerini sürmek için çıkış olarak ayarlar.
- Not
- motor_pins[] dizisinin step motorunun 4 fazı için geçerli GPIO pin numaralarını içerdiği varsayılır
◆ is_motor_running()
| bool is_motor_running |
( |
void |
| ) |
|
Motorun çalışıp çalışmadığını kontrol eder.
- Döndürdüğü değer
- true motor çalışıyorsa, aksi halde false
◆ step_stop()
Step motor için acil durdurma fonksiyonu.
Bu fonksiyon, step motorunu acil olarak durdurur:
- Acil durdurma bayrağını ayarlar
- Motor durumunu durdurulmuş olarak günceller
- Tüm motor bobinlerini enerjisiz hale getirir (GPIO pinlerini düşük seviyeye ayarlar)
- Not
- motor_pins[] dizisinin step motorunun 4 fazı için geçerli GPIO pin numaralarını içerdiği varsayılır
- Uyarı
- Bu fonksiyon, motoru yavaşlatmadan hemen durdurur, bu da mekanik strese neden olabilir
◆ step_turn()
Belirtilen yön, hız ve devir sayısı ile step motor dönüşünü kontrol eder.
- Parametreler
-
| direction | Motor dönüş yönü (CW veya CCW) |
| speed | Motor hızı (adım/saniye) |
| revolutions | Yapılacak tam devir sayısı |
Bu fonksiyon, yarım adım modu (her devir için 8 adım) kullanarak bir step motoru kontrol eder. Motor durumu yönetimi, acil durdurma işlevselliği ve hassas zamanlama kontrolü sağlar. Motor zaten çalışıyorsa fonksiyon başlamaz.
- Not
- Fonksiyon, motor_pins[] dizisinde tanımlanan GPIO pinlerini ve step_sequence[][] dizisinde tanımlanan adım sekanslarını kullanır.
Kullanılan global değişkenler:
- motor_state: Motorun mevcut durumu
- emergency_stop: Acil durdurma bayrağı
- motor_pins[]: Motor kontrolü için GPIO pin numaraları dizisi
- step_sequence[][]: Adım sekans desenlerini içeren dizi
◆ emergency_stop
| volatile bool emergency_stop = false |
|
static |
◆ motor_pins
İlk değer:= {
}
#define STEP_MOTOR_A2
Definition pico_training_board.h:66
#define STEP_MOTOR_B2
Definition pico_training_board.h:68
#define STEP_MOTOR_A1
Definition pico_training_board.h:65
#define STEP_MOTOR_B1
Definition pico_training_board.h:67
◆ motor_state
◆ step_sequence
| const uint8_t step_sequence[8][4] |
|
static |
İlk değer:= {
{1, 0, 0, 0},
{1, 1, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 1, 0},
{0, 0, 1, 1},
{0, 0, 0, 1},
{1, 0, 0, 1}
}
Step motoru yarım adım sekans deseni.
Bu dizi, 4 fazlı bir step motorunu yarım adım modunda kontrol etmek için 8 adımlı bir sekans tanımlar. Her satır, sekanstaki bir adımı ve her sütun bir motor bobininin durumunu temsil eder (1 = enerjili, 0 = enerjisiz).
Sekans, tek bobinleri ve bitişik bobin çiftlerini sırayla enerjilendirerek daha düzgün motor dönüşü sağlar:
- Sekans başına 8 adım (satırlar)
- 4 bobin/faz (sütunlar)
- Saat yönünde dönüş için standart yarım adım deseni izler
- Not
- Sürekli dönüş sağlamak için sekans son adımdan ilk adıma döner