ElektrotexnikaKoteqoriyasız

Arduino ilə sensorlu fırçasız DC mühərrikin idarə edilməsi

Fırçasız sabit cərəyan (BLDC motor (Brushless Direct Current moto və ya BL motor)) mühərriklərinin iki növü var: sensorlu və sensorsuz. Sensorlu BLDC mühərriki, rotorun yerini təyin etmək üçün hall effektli sensorlarındən istifadə edir, çünki sensorsuz BLDC mühərriki BEMF (arxa elektromotor qüvvəsi) olan başqa bir texnikanı istifadə edir. Bu mövzuda bir Arduino UNO lövhəsindən istifadə edərək sensorlu BLDC motorunun necə idarə ediləcəyi göstərilir. Bu layihədə istifadə olunan BLDC motoru sadəcə bir PC CD-ROM motorudur (spindle motor).

BLDC motoru (sensorlu və sensorsuz), 3 fazalı bir motordur, yəni statorun nüvəsində 3 sarğac var. Dönən bir elektrik sahəsi yaratmaq üçün iki sarğaca bir anda enerji verilir. Bu metodu həyata keçirmək olduqca asandır, lakin sabit maqnitli rotorunun statorla kilidlənməsinin qarşısını almaq üçün,rotor maqnitlərinin dəqiq vəziyyətini bilərək, statordakı həyəcanlanmanı(maqnitlənməni) xüsusi bir şəkildə ardıcıllıqla aparılması lazımdır.

3 Phase BLDC motor coils

Bu motoru idarə etmək üçün bizə 3 fazalı körpü lazımdır, bunun əsas elementləri 6 MOSFET-dir. 3 fazlı körpünün ümumi dövrə sxematik diaqramı aşağıda göstərilmişdir:

3 Phase bridge for BLDC motor control

Sensorlu BLDC mühərrikdə rotor vəziyyətini qeydə ala bilmək üçün 3 hall effektli sensor (A, B və C) var, bu sensorlar aşağıdakı şəkildəki kimi yerləşdirilmişdir. Bu layihədə istifadə etdiyim motor aşağıda göstərildiyi kimi çıxış pinlərinə malikdir (digər mühərriklər çıxış pinləri fərqli ola bilər).
Bu motorda hər bir hall effektli sensorun 4 pini var: VCC (H +), GND (H-) və iki çıxış (bəzi sensorlar 3 pinlə gəlir: VCC, GND və çıxış).

CD-ROM BLDC motor pin configuration

Əlimdə 4 pinli hall effektli sensorları olduğundan,hər birinə bir analoq müayisə edici (LM339N dördlü müqaisə edici İC istifadə etdim) əlavə etdim,beləliklə hər sensor çıxışı aşağıdakı dövrə sxemində göstərildiyi kimi (2 çıxış: + və -) girişlərə qoşulur (2 giriş: invers və qeyri invers), nəhayət sonda 3 hall effektli sensorlarından 3 çıxış əldə etdim.

Hər bir sensor 180 elektrik dərəcəsi üçün bir rəqəmsal “bir” verir və digər 180 elektrik dərəcəsi üçün bir rəqəmsal “sıfır” verir. Aşağıdakı şəkildə sensor çıxışları ilə A, B və C fazaları üçün tələb olunan motor sürücüsü voltajları arasındakı əlaqə göstərilir.

3 Phase BLDC motor phases

Hall effektli sensorlarına görə,3 fazalı körpü aşağıdakı cədvəldə göstərildiyi kimi idarə olunur:

brushless dc motor driving sequence

Lazım olan komponentlər:

  • Arduino lövhəsi
  • Sensorlu fırçasız DC motor
  • 6 x 06N03LA N-tip MOSFET (və ya əvəz edici)  – datasheet
  • 3 x IR2104S rəzə (gate) sürücü IC  – datasheet
  • LM339N (və ya LM339) dördlü komporator (quad comparator) IC  – datasheet
  • 10k om (və ya daha az) potensiometr
  • 3 x 10k om rezistor
  • 7 x 100 om rezistor
  • 3 x IN4148 diod
  • 3 x 10uF kondensator
  • 3 x 2.2uF kondensator
  • 12V qida mənbəyi
  • Breadboard
  • Birləşdirici naqillər (Jumper wires)

Arduino ilə sensorlu fırçasız DC motorun idarəetmə dövrəsi:

Ümumi dövrə diaqramı aşağıda göstərilmişdir.

Arduino BLDC motor control circuit

(Bütün torpqalanmış (GND) qütblər bir-birinə bağlıdır).

Dövrədə üç IR2104S rəzə (gate) sürücü İC var, hər biri bir yüksək tərəfli mosfet və bir aşağı tərəfli mosfet sürmək üçün istifadə olunur, yüksək və aşağı tərəf arasında keçid idarəetmə xətlərinə uyğun olaraq həyata keçirilir: İN və SD. Aşağıdakı şəkildə giriş və çıxış -ın zaman diaqramı göstərilir:

ir2104s timing

Fırçasız (brushless) DC motorun sürətini idarə etmək üçün 10k potensiometr istifadə olunur.Motor PWM texnikasından (PWM-in yüksək tərəfləri yalnız) istifadə edərək idarə olunur. İstənilən vaxt intervalında bir aktiv yüksək yan mosfet və bir aktiv aşağı yan mosfet var, yəni həmişə bir aktiv PWM pini var (Arduino pin 2, 4 və ya 6).

Aşağıdakı cədvəl hall effektli sensorların vəziyyətinə görə aktiv Arduino pinlərini xarakterizə edir (pinlər: 8, 9 və 10):

arduino bldc motor driving sequence table

Arduino kodu ilə sensorlu BLDC motorun idarə edilməsi:


Bu layihədə sadə bir proqram PWM kodunu tətbiq etdim, çünki 2, 4 və ya 6 pin üzərində aktiv PWM siqnalına ehtiyacım vardı (hər dəfə də sadəcə bir pin aktivdir), bunun üçün mən Timer2 modulundan istifadə etdim və onu prescaler ilə konfiqurasiya etdim. 1/ 8 deməkdir ki, PWM siqnal tezliyi təxminən 7.8KHz (bərabərdir: 16MHz / (8 * 256)) və 8 bitlik dəqiqlik(resoluton).

ADC modulu yalnız 0 kanalından oxumaq üçün qurulmuşdur.

Daha yaxşı kommutasiya (dəyişiklik) üçün 8, 9 və 10 nömrəli pinlərdə (hall effektli sensorun girişləri) kəsmə (interrupt) aktivləşdirilir.

PORTB – Arduino uno pinləri: 8… 13.
PORTD – Arduino uno pinləri: 0 … 7.

Arduino kodu ilə sensorlu BLDC motorun idarə edilməsinə dair video:

Aşağıdakı videoda layihənin sadə bir sxem (hardware) dövrəsi göstərilir.

Yeni yazıda bu bu dövrə daha da təkmilləşdirilmişdir.

Əlaqəli yazı: https://electron-x-lab.com/2020/04/12/arduino-il%c9%99-cd-rom-sensorlu-bldc-motor-idar%c9%99edicisi/


Mənbə: https://simple-circuit.com/arduino-bldc-brushless-dc-motor-control/

Əlaqəli Məqalələr

0 0 səslər
Article Rating
Abunə ol
Xəbər ver
guest

1 Comment
Ən köhnə
Ən yeni Ən çox səs alanlar
Sətir içi geri bildirimlər
Bütün şərhlərə baxın
Back to top button
1
0
Fikirlərinizi bilmək istərdik,lütfən şərh yazın.x