Mündəricat:

Arduino 2'si 1 arada Model Qatar Nəzarətçisi: 4 addım
Arduino 2'si 1 arada Model Qatar Nəzarətçisi: 4 addım

Video: Arduino 2'si 1 arada Model Qatar Nəzarətçisi: 4 addım

Video: Arduino 2'si 1 arada Model Qatar Nəzarətçisi: 4 addım
Video: Как управлять приводом с помощью Arduino - Robojax 2024, Iyul
Anonim
Arduino 2'si 1 arada Model Qatar Nəzarətçisi
Arduino 2'si 1 arada Model Qatar Nəzarətçisi

Qırx il əvvəl bir neçə dost üçün op-amp əsaslı bir model qatar qazı hazırladım və sonra təxminən dörd il əvvəl bir PIC mikro nəzarət cihazı istifadə edərək yenidən yaratdım. Bu Arduino layihəsi PIC versiyasını yenidən yaradır, eyni zamanda qaz, əyləc və istiqamətə nəzarət üçün əl açarları əvəzinə Bluetooth bağlantısı istifadə etmək imkanı da əlavə edir. Burada təqdim etdiyim dizayn 12 volt modelli bir dəmir yolu mühərriki üçün nəzərdə tutulsa da, müxtəlif DC motor idarəetmə tətbiqləri üçün asanlıqla dəyişdirilə bilər.

Addım 1: Pulse Width Modulation (PWM)

Pulse Genişliyi Modulyasiyası (PWM)
Pulse Genişliyi Modulyasiyası (PWM)

PWM ilə tanış olmayanlarınız üçün göründüyü qədər qorxulu deyil. Sadə motor idarəetmə tətbiqimiz üçün əslində hər şey, müəyyən bir tezlikdə bir kvadrat dalğa meydana gətirməyimiz və sonra iş dövrünü dəyişdirməyimizdir. Vəzifə dövrü, çıxışın dalğa forması dövrü ilə müqayisədə məntiqi yüksək olduğu vaxt nisbəti olaraq təyin olunur. Bunu yuxarıdakı diaqramda 10% iş dövrü, 50% iş dövrü orta dalğa forması və 90% iş dövrü ilə alt dalğa forması ilə aydın şəkildə görə bilərsiniz. Hər bir dalğa formasının üstünə qoyulan kəsikli xətt, motorun gördüyü ekvivalent DC gərginliyini təmsil edir. Arduinonun bir PWM qabiliyyətinə sahib olduğunu nəzərə alsaq, bu tip DC motor idarəetməsini yaratmaq olduqca sadədir. PWM -in istifadəsinin digər bir üstünlüyü, motoru düz DC istifadə edərkən baş verə biləcək başlanğıcdan qorumağa kömək etməsidir. PWM -in bir dezavantajı, bəzən PWM tezliyində motordan eşidilən bir səsin olmasıdır.

Addım 2: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

Birinci şəkil, açarlar və LM298 motor sürücü modulu üçün Arduino əlaqələrini göstərir. Arduinonun içərisində zəif çəkmə rezistorları var, buna görə açarlar üçün çəkmə rezistorlarına ehtiyac yoxdur. İstiqamət açarı sadə bir SPST (tək qütblü tək atış) açarıdır. Gaz və Əyləc açarları normal olaraq açıq, ani əlaqə düymələri kimi göstərilir.

İkinci şəkil Bluetooth modulu və LM298 motor sürücü modulu üçün Arduino bağlantılarını göstərir. Bluetooth TXD çıxışı birbaşa Arduino RX serial girişinə qoşulur.

Üçüncü şəkil L298N ikili H-körpü moduludur. LM298 modulunda tullanan tərəfindən işə salınan 5 voltluq bir tənzimləyici var. Arduino və Bluetooth üçün +5 volt lazımdır, ancaq motoru idarə etmək üçün +12 volt istəyirik. Bu vəziyyətdə, L298N -in " +12V güc" girişinə +12 volt tətbiq edirik və "5V imkan" tullananını yerində qoyacağıq. Bu, 5 voltluq tənzimləyicinin moduldakı "+5 güc" bağlantısına çıxmasına imkan verir. Bunu Arduino və Bluetooth -a qoşun. +12 girişi və +5 çıxışı üçün torpaq tellərini "güc GND" moduluna bağlamağı unutmayın.

Mühərrikin çıxış gərginliyinin Arduino tərəfindən yaradılmış PWM -dən asılı olaraq dəyişməsini istəyirik. Bunu etmək üçün atlayıcıları "ENA" və "ENB" -dən çıxarırıq və Arduino PWM çıxışımızı moduldakı "ENA" ya bağlayırıq. Həqiqi aktivləşdirmə pininin lövhənin kənarına ən yaxın olduğunu ("giriş" pinlərinin yanında) olduğunu unutmayın. Hər bir aktivasiya üçün arxa pin +5 voltdur, buna görə də buna qoşulmadığımızdan əmin olmaq istəyirik.

Moduldakı "IN1" və "IN2" pinləri müvafiq Arduino pinlərinə bağlanır. Bu sancaqlar mühərrik istiqamətini idarə edir və bəli, Arduinonun modula keçid bağlamaq əvəzinə onları idarə etməsinə icazə vermək üçün yaxşı bir səbəb var. Bunun səbəbini proqram müzakirəsində görəcəyik.

Addım 3: Bluetooth Modulu

Bluetooth Modulu
Bluetooth Modulu

Burada göstərilən şəkil mövcud Bluetooth modulları üçün tipikdir. Almaq üçün bir şey axtararkən "HC-05" və HC-06 "ifadələrini axtara bilərsiniz. İkisi arasındakı fərqlər firmware -də və ümumiyyətlə lövhədəki pin sayında olur. Yuxarıdakı şəkil HC-06 modulundadır və yalnız çox sadə konfiqurasiyaya imkan verən sadələşdirilmiş proqram təminatı ilə gəlir. Həm də yalnız "Qul" Bluetooth cihazı olaraq təyin edilmişdir. Sadə dillə desək, yalnız "Master" cihazından gələn əmrlərə cavab verə bilər və öz başına əmr verə bilməz. HC-05 modulu daha çox konfiqurasiya imkanlarına malikdir və ya "Master" və ya "Slave" cihazı olaraq təyin edilə bilər. HC-05, ümumiyyətlə HC-06 üçün yuxarıda göstərilən dörd ədəd əvəzinə altı sancağa malikdir. Vəziyyət pin həqiqətən vacib deyil, ancaq hər hansı bir konfiqurasiya etmək istəyirsinizsə Açar pin (bəzən "EN" kimi başqa adlarla gedir) tələb olunur. Ümumiyyətlə, 9600 standart baud dərəcəsi ilə razısınızsa və modula xüsusi bir ad verməyinizə əhəmiyyət verməsəniz, modulların heç bir konfiqurasiyaya ehtiyacı yoxdur. Bunları istifadə etdiyim bir neçə layihəm var, buna görə də onlara ad verməyi sevirəm.

Bluetooth modullarını konfiqurasiya etmək üçün ya RS-232 seriyalı portuna, ya da USB portuna bir interfeys almalı və ya qurmalısınız. Bu yazıda necə qurulacağını izah etməyəcəyəm, ancaq İnternetdə məlumat tapa bilməlisiniz. Və ya sadəcə bir interfeys satın alın. Konfiqurasiya əmrləri, telefon modemləri ilə köhnə günlərdə istifadə edildiyi kimi AT əmrlərindən istifadə edir. Burada hər bir modul növü üçün AT əmrləri olan bir istifadəçi təlimatı əlavə etdim. Qeyd etmək lazım olan bir şey, HC-06 UPPERCASE əmrlərini tələb edir və əmr sətri 1 saniyə ərzində tamamlanmalıdır. Bu o deməkdir ki, baud nisbətlərini dəyişdirmək kimi uzun xətlərin bir hissəsini kəsib terminal proqramınıza yapışdırmaq və ya göndərmək üçün mətn faylları qurmaq lazımdır. UPPERCASE tələbi yalnız konfiqurasiya əmrləri göndərməyə çalışırsınızsa. Daimi ünsiyyət rejimi istənilən 8 bit məlumatı qəbul edə bilər.

Addım 4: Proqram təminatı

Proqram həm əl versiyası, həm də Bluetooth versiyası üçün olduqca sadədir. Bluetooth versiyasını seçmək üçün sadəcə "#define BT_Ctrl" ifadəsini şərhdən çıxarın.

PIC kodunu yazanda PWM tezliyi ilə sınaqdan keçirdim və nəhayət 500-Hz-də yerləşdim. Kəşf etdim ki, tezlik çox yüksək olarsa, LM298N modulu pulslara kifayət qədər tez reaksiya verə bilməz. Bu o deməkdir ki, gərginlik çıxışı xətti deyildi və böyük sıçrayışlar edə bilərdi. Arduino'da PWM əmrləri var, lakin onlar yalnız iş dövrünü dəyişməyə imkan verir, tezliyi deyil. Xoşbəxtlikdən, tezlik təxminən 490-Hz-dir, buna görə PIC-də istifadə etdiyim 500-Hz-ə kifayət qədər yaxındır.

Qatar qazlarının "xüsusiyyətlərindən" biri, həqiqi bir qatarın necə işlədiyini təqlid etmək üçün sürətləndirmə və əyləc üçün bir momentum hissidir. Bunu etmək üçün, proqramın əl versiyası üçün döngəyə sadə bir gecikmə daxil edilir. Göstərilən dəyərlə 0 -dan 12 volta və ya 12 voltdan sıfıra dönmək təxminən 13 saniyə çəkir. Gecikmə daha uzun və ya daha qısa müddətdə asanlıqla dəyişdirilə bilər. İmpulsun təsir etmədiyi yeganə hal, Direction düyməsini dəyişdirməkdir. Mühafizə məqsədləri üçün PWM iş dövrü bu keçid dəyişdirildikdə dərhal 0% -ə təyin olunur. Bu, əslində İstiqamət açarını təcili əyləc kimi ikiqat artırır.

İstiqamət açarının dərhal işlənməsini təmin etmək üçün onun kodunu kəsmə işləyicisinə qoydum. Bu da "dəyişikliyə ara ver" funksiyasından istifadə etməyimizə imkan verir, buna görə dəyişikliyin aşağıdan yuxarıya və ya yüksəkdən aşağıya keçməsinin əhəmiyyəti yoxdur.

Proqramın Bluetooth versiyası İrəli, Geri, Əyləc və Qəza funksiyalarını başlatmaq üçün tək hərf əmrlərindən istifadə edir. Əslində alınan əmrlər əl açarlarını əvəz edir, lakin eyni cavablara səbəb olur. Bluetooth nəzarət üçün istifadə etdiyim tətbiq Next Prototypes tərəfindən "Bluetooth Serial Controller" adlanır. Virtual klaviatura konfiqurasiya etməyə və hər bir düymə üçün öz əmr sətirlərini və adlarını təyin etməyə imkan verir. Təkrarlama dərəcəsini təyin etməyə imkan verir, buna görə də təxminən 14 saniyə sürət vermək üçün Əyləc və Qaz düymələrini 50ms olaraq təyin etdim. İrəli və Geri düymələri üçün təkrarlama funksiyasını deaktiv etdim.

Bu yazı üçün budur. Digər Təlimatlarımı yoxlayın. PIC mikro nəzarətçi layihələri ilə maraqlanırsınızsa, www.boomerrules.wordpress.com saytındakı veb saytımı yoxlayın

Tövsiyə: