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

Ana program, adım motoru kontrolü için Raspberry Pi Pico Eğitim Kartı'nı başlatır. Ayrıntılar...

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

Fonksiyonlar

void button_callback (uint gpio, uint32_t events)
 Button interrupt callback function.
 
void init_motor_buttons (void)
 Initialize button interrupts for motor control.
 
void core1_main ()
 Core 1'de çalışacak işlev.
 
void send_motor_parameters (motor_direction_t direction, uint speed, float revolutions)
 Step motor parametrelerini Core1'e gönderir (yön, hız, devir)
 
void write_analog_to_lcd (char *component_name, float value)
 LCD ekrana isim:değer formatında yazı yazar.
 
void display_keypad_value ()
 Keypad’den tuş okur ve LCD’ye gösterir.
 
void display_potentiometer_value ()
 Potansiyometre değerini okuyup LCD’nin ilk satırına yazar.
 
void display_ldr_sensor_value ()
 LDR değerini okuyup LCD’nin ikinci satırına yazar.
 
void motion_detect (void)
 Hareket algılandığında melodi çalar ve mesafeyi LCD'ye yazar.
 
int main ()
 

Değişkenler

static volatile bool motor_running = false
 Kart üzerindeki motor durumunu tutan değişkenler.
 
static volatile bool motor_command_pending = false
 
static volatile motor_direction_t current_direction = CW
 
static volatile motor_direction_t requested_direction = CW
 
static const char * MELODY1 [][2]
 
static volatile uint32_t last_irq_time_us = 0
 
static const uint32_t IRQ_MIN_INTERVAL_US = 50000
 
float revolutions
 

Ayrıntılı tanımlama

Ana program, adım motoru kontrolü için Raspberry Pi Pico Eğitim Kartı'nı başlatır.

Yazar
Hakan KILIÇASLAN
Tarih
2024-02-07

Fonksiyon Dokümantasyonu

◆ button_callback()

void button_callback ( uint  gpio,
uint32_t  events 
)

Button interrupt callback function.

FIXME: Birden fazla komut geliyor kontrolü yapılacak !!!!

Buton kesme geri çağrısı

Parametreler
gpioTetikleyen GPIO pini
eventsIRQ olay bayrakları
Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması:

◆ core1_main()

void core1_main ( )

Core 1'de çalışacak işlev.

Bu fonksiyon RP2040'ın Core 1'inde çalışır ve multicore FIFO üzerinden Core 0'dan gelen adım motoru kontrol komutlarını işler. Üç parametre işler: yön, hız ve devir sayısı.

Fonksiyon:

  1. Core 0'dan gelen verileri bekler
  2. FIFO'dan motor parametrelerini okur
  3. Motor hareketini yürütür
  4. Core 0'a tamamlanma sinyalini geri gönderir
Not
Bu fonksiyon sonsuz bir döngüde çalışır ve Core 0'ın verileri doğru sırada göndermesini gerektirir: yön, hız, devir sayısı
Ayrıca Bakınız
step_turn()
multicore_fifo_pop_blocking()
multicore_fifo_push_blocking()

Core1 ana döngüsü; FIFO üzerinden gelen step motor komutlarını işler

Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması:

◆ display_keypad_value()

void display_keypad_value ( )

Keypad’den tuş okur ve LCD’ye gösterir.

Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması:

◆ display_ldr_sensor_value()

void display_ldr_sensor_value ( )

LDR değerini okuyup LCD’nin ikinci satırına yazar.

Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması:

◆ display_potentiometer_value()

void display_potentiometer_value ( )

Potansiyometre değerini okuyup LCD’nin ilk satırına yazar.

Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması:

◆ init_motor_buttons()

void init_motor_buttons ( void  )

Initialize button interrupts for motor control.

FIXME: buton callbak değişecek birden fazla komut gidiyor !!!

Motor kontrolü için buton kesmelerini başlatır

Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması:

◆ main()

int main ( )

Ana program, adım motoru kontrolü için Raspberry Pi Pico Eğitim Kartı'nı başlatır.

Bu program, adım motorunu kontrol etmek için gerekli olan ilklendirmeleri gerçekleştirir ve ana döngüde kullanıcıdan veya geri çağırma işlevlerinden veri alarak adım motoru kontrolünü sağlar.

Döndürdüğü değer
0 Program başarıyla tamamlandığında.
Bu fonksiyon için çağırılma şeması:

◆ motion_detect()

void motion_detect ( void  )

Hareket algılandığında melodi çalar ve mesafeyi LCD'ye yazar.

Bu fonksiyon için çağırılma şeması:

◆ send_motor_parameters()

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

Step motor parametrelerini Core1'e gönderir (yön, hız, devir)

Parametreler
directionMotor yönü
speedAdım/saniye
revolutionsDevir sayısı (float)
Bu fonksiyon için çağırılma şeması:

◆ write_analog_to_lcd()

void write_analog_to_lcd ( char *  component_name,
float  value 
)

LCD ekrana isim:değer formatında yazı yazar.

Parametreler
component_nameBileşen adı (ör. POT_1)
valueYazdırılacak değer
Bu fonksiyon için çağırılma şeması:
Bu fonksiyon için çağırılma şeması:

Değişken Dokümantasyonu

◆ current_direction

volatile motor_direction_t current_direction = CW
static

◆ IRQ_MIN_INTERVAL_US

const uint32_t IRQ_MIN_INTERVAL_US = 50000
static

◆ last_irq_time_us

volatile uint32_t last_irq_time_us = 0
static

◆ MELODY1

const char* MELODY1[][2]
static
İlk değer:
= {
{"C", "4"}, {"D", "4"}, {"E", "4"}, {"F", "4"},
{"G", "4"}, {"A", "4"}, {"B", "4"}, {"C", "5"}
}

◆ motor_command_pending

volatile bool motor_command_pending = false
static

◆ motor_running

volatile bool motor_running = false
static

Kart üzerindeki motor durumunu tutan değişkenler.

◆ requested_direction

volatile motor_direction_t requested_direction = CW
static

◆ revolutions

float revolutions