Pico Eğitim Kartı
 
Yüklüyor...
Arıyor...
Eşleşme Yok
stepper.c Dosya Referansı

Step motor kontrol fonksiyonları Ayrıntılar...

stepper.c için içerme bağımlılık grafiği:

Fonksiyonlar

void init_step_motor (void)
 Step motor GPIO pinlerini başlatır.
 
bool is_motor_running (void)
 Motorun çalışıp çalışmadığını kontrol eder.
 
motor_state_t get_motor_state (void)
 Motorun mevcut durumunu döndürür.
 
void step_stop (void)
 Step motor için acil durdurma fonksiyonu.
 
void step_turn (motor_direction_t direction, uint speed, float revolutions)
 Belirtilen yön, hız ve devir sayısı ile step motor dönüşünü kontrol eder.
 

Değişkenler

static const uint8_t step_sequence [8][4]
 Step motoru yarım adım sekans deseni.
 
static const uint motor_pins [4]
 
static volatile motor_state_t motor_state = MOTOR_STOPPED
 
static volatile bool emergency_stop = false
 

Ayrıntılı tanımlama

Step motor kontrol fonksiyonları

Ayrıca Bakınız
Step Motor

Fonksiyon Dokümantasyonu

◆ get_motor_state()

motor_state_t get_motor_state ( void  )

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
Bu fonksiyon için çağırılma şeması:

◆ 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()

void step_stop ( void  )

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
Bu fonksiyon için çağırılma şeması:

◆ step_turn()

void step_turn ( motor_direction_t  direction,
uint  speed,
float  revolutions 
)

Belirtilen yön, hız ve devir sayısı ile step motor dönüşünü kontrol eder.

Parametreler
directionMotor dönüş yönü (CW veya CCW)
speedMotor hızı (adım/saniye)
revolutionsYapı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
Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması:

Değişken Dokümantasyonu

◆ emergency_stop

volatile bool emergency_stop = false
static

◆ motor_pins

const uint motor_pins[4]
static
İ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

volatile motor_state_t motor_state = MOTOR_STOPPED
static

◆ 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