Arduino ilə Sensorlu BLDC motor (CD-ROM) idarəedicisi
Sonuncu dəfə Arduino UNO lövhəsindən istifadə edərək sadə bir PC CD-ROM (və ya DVD-ROM) fırçasız DC mühərrik idarəedicisini qurdum və indi eyni idarəedicini dəyişikliklər edərək təkrar quracağam (təkmilləşmələr edərək də demək olar).
Bu nümunədə istifadə olunan motor növü, fərdi kompüterlərin CD-ROM sürücülərində (xüsusən də köhnələrində) tapıla bilən sensorlu BLDC motorudur. Əvvəlki layihə bağlantısı aşağıdakı kimidir:
Arduino ilə sensorlu fırçasız DC mühərrikin idarə edilməsi
Lazım olan komponentlər:
- Arduino lövhəsi
- Sensorlu fırçasız DC mühərrik
- 6 x 06N03LA N-tip MOSFET (və ya əvəzedici) – datasheet
- 3 x IR2101 (IR2101S) rəzə (gate) sürücü IC – datasheet
- LM339N (və ya LM339) dördlü müqayisə edici (quad comparator) IC – datasheet
- 10k om (və ya daha az) potensiometr
- 3 x 10k om rezistor
- 100 om rezistor
- 6 x 10 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 BLDC motor idarəetmə dövrəsi:
Dövrə diaqramı aşağıda göstərilmişdir.
(Bütün torpqalanmış (GND) qütblər bir-birinə bağlıdır).
Dövrədə üç IR2101 rəzə (gate) sürücüsü 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: HIN və LIN . Aşağıdakı şəkildə giriş və çıxış -ın zaman diaqramı göstərilir:
Istifadə olunan motor, hər hansı bir sensorlu fırçasız motor olaraq 3 hall effektli sensoruna malikdir, hər hall effektli sensorun 4 pini var: VCC, GND, H + və H-. Üç sensora 100 om rezistor vasitəsilə + 5V verilir. Hər bir sensor çıxışı (H + və H-) bir müqayisə qurğusuna (LM339) bağlıdır, buna görə yuxarıdakı sxemdə göstərildiyi müqayisə edici qurğu kimi tək bir çıxış verir.
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 9, 10 və ya 11).
Aşağıdakı cədvəl hall effektli sensorların vəziyyətinə görə aktiv Arduino pinlərini xarakterizə edir (pinlər: 5, 6 və 7):
Arduino kodu ilə sensorlu BLDC motorun idarə edilməsi:
Arduino pinləri 9, 10 və pin 11 , pin 9 və pin 10-un Timer1 modulu (OC1A və OC1B) ilə əlaqəli olduğu və pin 11 Timer2 modulu (OC2A) ilə əlaqəli olduğu yerlərdə PWM siqnalları yarada bilər. Hər iki Taymer modulu da 31KHz tezlikli və 8 bit dəqiqlik ilə PWM siqnalının yaradılması üçün konfiqurasiya edilmişdir. PWM siqnallarının dövrləri (duty cycle), kanal 0-dan (Arduino pin A0) analoq məlumatları oxuduqdan sonra registerlərə (OCR1A, OCR1B və OCR1A) yazılaraq yenilənir.
ADC modulu yalnız 0 kanalından oxumaq üçün qurulmuşdur.
Daha yaxşı kommutasiya (dəyişiklik) üçün 5, 6 və 7 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.
Kodu tam başa düşmək üçün ATmega328 məlumat kitabçasını (datasheet) oxuyun!
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.
Mənbə: https://simple-circuit.com/arduino-cd-rom-brushless-motor-control/