Mündəricat:

Arduino: Step Motor üçün Precision Lib: 19 Addım
Arduino: Step Motor üçün Precision Lib: 19 Addım

Video: Arduino: Step Motor üçün Precision Lib: 19 Addım

Video: Arduino: Step Motor üçün Precision Lib: 19 Addım
Video: Control Speed of Stepper Motor using L298N with Push Button Switches STLPB-01 2024, Noyabr
Anonim
Image
Image
Qlobal Dəyişənlər
Qlobal Dəyişənlər

Bu gün sizə limit açarları olan tam addımlı motor sürücüsü və sürətləndirmə və mikro addımlı mühərrik hərəkəti üçün bir kitabxana göstərəcəyəm. Həm Arduino Uno, həm də Arduino Mega üzərində işləyən bu Lib, mühərrikləri təkcə addım sayına deyil, həm də millimetrə görə hərəkət etdirməyə imkan verir. Və olduqca dəqiqdir.

Bu kitabxananın əhəmiyyətli bir xüsusiyyəti, yalnız X, Y deyil, həm də bir bölmə açarı olan öz CNC maşınınızı qurmağa imkan verməsidir, çünki bu hazır GRBL deyil, daha doğrusu proqramlaşdırmadır. sizin üçün ideal maşın hazırlamağa imkan verir.

Ancaq aşağıdakı ifadə əhəmiyyətli bir detaldır! Bu video yalnız proqramlaşdırmaya artıq alışmış olanlar üçündür. Arduino proqramlaşdırma ilə tanış deyilsinizsə, əvvəlcə kanalımdakı digər tanıtım videolarını izləməlisiniz. Bunun səbəbi, bu xüsusi videoda qabaqcıl bir mövzunu müzakirə etdiyim və videoda istifadə olunan Lib: Sürətlənmə və vuruşun sonu olan Step Motoru daha ətraflı izah etdiyimdir.

Addım 1: StepDriver Kitabxanası

Bu kitabxana bazarda ən çox yayılmış üç sürücü növünü əhatə edir: A4988, DRV8825 və TB6600. Sürücülərin sancaqlarını konfiqurasiya edərək, sıfırlama və yerləşdirmə rejimini Yuxu rejiminə keçirməyə imkan verir, həmçinin Enable pinində işləyən motor çıxışlarını aktivləşdirir və söndürür. Sürücünün mikro addım pimlərinin girişlərini təyin edir və açarları və onların aktivləşdirmə səviyyəsini (yüksək və ya aşağı) məhdudlaşdırır. Daimi sürətlənmə mm / s², maksimum sürət mm / s və minimum sürət mm / s ilə motor hərəkət koduna malikdir.

Sürətlənmə və vuruşun sonu olan Step Motor videosunun 1 və 2 -ci hissələrini izləyənlər üçün bu yeni kitabxananı bu gün yükləyin, çünki istifadəsini asanlaşdırmaq üçün ilk faylda bəzi dəyişikliklər etdim.

Addım 2: Qlobal Dəyişənlər

Qlobal dəyişənlərin hər birinin tam olaraq nə üçün olduğunu göstərirəm.

Addım 3: Funksiyalar - Sürücü pinlərinin qurulması

Funksiyalar - Sürücü pinlərinin qurulması
Funksiyalar - Sürücü pinlərinin qurulması

Burada bəzi üsulları təsvir edirəm.

Pinout parametrini və Arduino pinlərini çıxış olaraq təyin etdim.

Addım 4: Funksiyalar - Sürücünün əsas funksiyaları

Funksiyalar - Sürücünün əsas funksiyaları
Funksiyalar - Sürücünün əsas funksiyaları

Bu hissədə sürücünün konfiqurasiyası və əsas funksiyaları ilə işləyirik.

Addım 5: Funksiyalar - Motor Addım Ayarı

Funksiyalar - Motor Addım Ayarı
Funksiyalar - Motor Addım Ayarı
Funksiyalar - Motor Addım Ayarı
Funksiyalar - Motor Addım Ayarı

Kodun bu addımında, mühərrikin icra etməsi lazım olan millimetr üçün addımların miqdarını konfiqurasiya edirik.

Addım 6: Funksiyalar - Motor Addım Rejiminin qurulması

Funksiyalar - Motor addım rejiminin qurulması
Funksiyalar - Motor addım rejiminin qurulması
Funksiyalar - Motor addım rejiminin qurulması
Funksiyalar - Motor addım rejiminin qurulması
Funksiyalar - Motor addım rejiminin qurulması
Funksiyalar - Motor addım rejiminin qurulması

Bu cədvəldə motor addım rejimi üçün parametrlər göstərilir. Burada bəzi nümunələr var.

Addım 7: Funksiyalar - Limit Açarlarının Qurulması

Funksiyalar - Limit açarlarının təyin edilməsi
Funksiyalar - Limit açarlarının təyin edilməsi

Burada bütün və boolean dəyərləri oxumalıyam. Maksimum və minimum limit ucunu təyin edərkən aktiv düymənin yuxarı və ya aşağı olduğunu təyin etmək lazımdır.

Addım 8: Funksiyalar - Limit açarlarının oxunması

Funksiyalar - Limit açarlarının oxunması
Funksiyalar - Limit açarlarının oxunması
Funksiyalar - Limit açarlarının oxunması
Funksiyalar - Limit açarlarının oxunması
Funksiyalar - Limit açarlarının oxunması
Funksiyalar - Limit açarlarının oxunması

Bu hissə, keçən həftə təqdim etdiyim Libdəki hissədən fərqlidir. Niyə dəyişdim? Yaxşı ki, başqalarını əvəz etmək üçün eRead yaratdım. Burada eRead LVL, digitalRead (pin) oxuyacaq və DOĞRU qaytaracaq. Bütün bunları yüksək səviyyədə yerinə yetirmək lazımdır. Aktiv düymə ilə aşağıdakı işlər aşağı səviyyədə olacaq. Burada "Həqiqət" cədvəlini göstərmək üçün istifadə edəcəyəm.

Kod görüntüsündə mənbə kodunun bu hissəsində Artan istiqamətə doğru irəlilədiyimi və kursun sonuna hələ də vurmadığımı anlamağa kömək edəcək bir diaqram yerləşdirdim.

İndi bu kodda bool DRV8825 kodunda mühərrikin hələ də artan istiqamətdə hərəkət etdiyini göstərirəm. Ancaq maksimum limit açarı aktivləşdirildi. O zaman mexanizm hərəkəti dayandırmalıdır.

Son olaraq eyni hərəkəti göstərirəm, əksinə.

Burada artıq kursun sonu aktivləşdirilmişdir.

Addım 9: Funksiyalar - Hərəkət Quraşdırması

Funksiyalar - Motion Setup
Funksiyalar - Motion Setup

MotionConfig metodunun əsas faydası, bir pilləli mühərrikin idarəedicisini qarşılamaq üçün saniyədə millimetr (CNC maşınlarında istifadə olunan ölçü) addımlara çevirməkdir. Dəyişənləri millimetr deyil, addımları başa düşmək üçün bu hissədə hazırlayıram.

Addım 10: Funksiyalar - Hərəkət funksiyası

Funksiyalar - Hərəkət funksiyası
Funksiyalar - Hərəkət funksiyası

Bu addımda, istədiyiniz istiqamətdə bir addımı bir saniyədə mikrosaniyələrdə hərəkət etdirən əmri müalicə edirik. Sürücünün istiqamət pinini, gecikmə vaxtını və limit açarlarının istiqamətini də təyin edirik.

Addım 11: Funksiyalar - Hərəkət funksiyası - Dəyişənlər

Funksiyalar - Hərəkət funksiyası - Dəyişənlər
Funksiyalar - Hərəkət funksiyası - Dəyişənlər

Bu hissədə, maksimum və minimum sürət dövrlərini, traektoriya məsafəsini və traektoriyanı kəsmək üçün lazım olan addımları əhatə edən bütün dəyişənləri konfiqurasiya edirik.

Addım 12: Funksiyalar - Hərəkət funksiyası - Sürətləndirmə

Funksiyalar - Hərəkət funksiyası - Sürətləndirmə
Funksiyalar - Hərəkət funksiyası - Sürətləndirmə
Funksiyalar - Hərəkət funksiyası - Sürətləndirmə
Funksiyalar - Hərəkət funksiyası - Sürətləndirmə

Burada, Torricelli tənliyi ilə hesablanan sürətləndirmə məlumatlarına necə çatdığımızla bağlı bəzi detalları təqdim edirəm, çünki burada sürət deyil, işləmə məkanları nəzərə alınır. Ancaq burada bütün tənliyin yalnız bir kod sətri olduğunu başa düşmək vacibdir.

Yuxarıdakı şəkildə bir trapez müəyyən etdik, çünki ilkin RPM -lər əksər pilləli mühərriklər üçün pisdir. Eyni şey yavaşlama ilə də baş verir. Bu səbəbdən, sürətlənmə və yavaşlama arasındakı dövrdə bir trapezoidi təsəvvür edirik.

Addım 13: Funksiyalar - Hərəkət funksiyası - Davamlı sürət

Funksiyalar - Hərəkət funksiyası - Davamlı sürət
Funksiyalar - Hərəkət funksiyası - Davamlı sürət
Funksiyalar - Hərəkət funksiyası - Davamlı sürət
Funksiyalar - Hərəkət funksiyası - Davamlı sürət

Burada sürətlənmədə istifadə olunan addımların sayını saxlayırıq, davamlı sürətlə davam edirik və aşağıdakı sürətdə görünən maksimum sürətlə davam edirik.

Addım 14: Funksiyalar - Hərəkət funksiyası - Yavaşlama

Funksiyalar - Hərəkət funksiyası - Yavaşlama
Funksiyalar - Hərəkət funksiyası - Yavaşlama
Funksiyalar - Hərəkət funksiyası - Yavaşlama
Funksiyalar - Hərəkət funksiyası - Yavaşlama

Burada başqa bir tənliyə sahibik, bu dəfə mənfi sürətlənmə dəyəri ilə. Aşağıdakı şəkildə Yavaşlama etiketli düzbucağı təmsil edən bir kod satırında da göstərilir.

Addım 15: Funksiyalar - Hərəkət funksiyası - Davamlı sürət

Funksiyalar - Hərəkət funksiyası - Davamlı sürət
Funksiyalar - Hərəkət funksiyası - Davamlı sürət
Funksiyalar - Hərəkət funksiyası - Davamlı sürət
Funksiyalar - Hərəkət funksiyası - Davamlı sürət

Aşağıda göründüyü kimi, traektoriyanın ikinci yarısını işləmək üçün davamlı sürətə qayıdırıq.

Addım 16: Funksiyalar - Hərəkət funksiyası - Dönmə hərəkətləri

Funksiyalar - Hərəkət funksiyası - Dönmə hərəkətləri
Funksiyalar - Hərəkət funksiyası - Dönmə hərəkətləri

Bu hissədə, mühərriki dönmə sayını millimetrə çevirərək, müəyyən istiqamətdə istədiyiniz istiqamətdə hərəkət etdiririk. Nəhayət, motoru istədiyiniz istiqamətdə hərəkət etdiririk.

Addım 17: Hərəkət qrafiki - mövqe sürəti

Hərəkət qrafiki - mövqe sürəti
Hərəkət qrafiki - mövqe sürəti

Bu qrafikdə Sürətləndirmə hissəsində istifadə etdiyimiz tənlikdən çıxarılan məlumatlar var. Dəyərləri götürdüm və Arduino serialında oynadım və bundan Excel -ə keçdim, nəticədə bu cədvəl çıxdı. Bu cədvəl addımın gedişatını göstərir.

Addım 18: Hərəkət Qrafiki - Vəzifə Vs. Vəzifə

Hərəkət qrafiki - Vəzifə Vs. Vəzifə
Hərəkət qrafiki - Vəzifə Vs. Vəzifə

Burada mövqeyi addımlarla və sürəti götürərək mikrosaniyədə dövrə çeviririk. Bu addımda, dövrün sürətlə tərs mütənasib olduğunu qeyd edirik.

Addım 19: Hərəkət Qrafiki - Sürət Vs. An

Hərəkət qrafiki - Sürət Vs. An
Hərəkət qrafiki - Sürət Vs. An

Nəhayət, anın bir funksiyası olaraq sürətimiz var və buna görə düz bir xəttə sahibik, çünki bu zaman funksiyası olaraq sürətdir.

Tövsiyə: