Motor Sürücü Kartları
İçindekiler
- = 0; --i) { - -analogwrite(ena,-i); - -analogwrite(enb,-i); - -delay(20); } //-now-turn-off-motors -digitalwrite(in1,-low); -digitalwrite(in2,-low); -digitalwrite(in3,-low); -digitalwrite(in4,-low); }void loop(){ -demoone(); -delay(1000); -demotwo(); -delay(1000);} peki-bu-kodda-neler-oluyor?-demoone()-işlevinde-motorları-açıp-200-pwm-değerinde-çalıştırıyoruz.-bu-bir-hız-değeri-değil,-güç-bir-kerede-200/255-süre-için-kullanılıyor. sonra-bir-dakika-sonra-motorlar-ters-yönde-çalışır-(bkz.-digitalwrite-()-işlevlerinde-yÜksek-ve-dÜŞÜk'leri-nasıl-değiştirdik?). donanımınızın-mümkün-olan-hız-aralığı-hakkında-bir-fikir-edinmek-için,-motorları-açan-demowo-()-işlevindeki-tüm-pwm-aralığı-boyunca-çalışıyoruz-ve-döngüler-için-iki-ile-pwm-değerleri-sıfırdan-255'e-ve-sıfıra-geri-dönüyoruz-. sonunda-bu,-aşağıdaki-videoda-gösterilmiştir---iki-dc-motorlu-iyi-giyilmiş-bir-tank-şasisi-kullanarak: step-motor-kontrolü bu-örnekte,-dört-telli-tipik-bir-nema-17-step-motorumuz-var: devir-başına-200-adımı-vardır-ve-60-rpm'de-çalışabilir.-motorunuz-için-halihazırda-bir-adım-ve-hız-değeri-yoksa,-şimdi-öğrenin-ve-taslak-için-ihtiyacınız-olacak. başarılı-step-motor-kontrolünün-anahtarı-telleri-tanımlamaktır---hangisi-hangisidir.-a-+,-a-,-b-+-ve-b-tellerini-belirlemeniz-gerekecektir.-Örnek-motorumuzda-bunlar-kırmızı,-yeşil,-sarı-ve-mavi.-Şimdi-kablolamayı-halledelim. a-+,-a-,-b-+-ve-b-tellerini,-step-motordan-sırasıyla-1,-2,-13-ve-14-modül-bağlantılarına-bağlayın.-l298n-modülü-ile-birlikte-verilen-atlama-tellerini-7-ve-12-numaralı-modül-noktalarındaki-çiftlerin-üzerine-yerleştirin.-ardından-güç-kaynağını-4-(pozitif)-ve-5-(negatif-/-gnd)-noktalarına-gerektiği-gibi-bağlayın. bir-kez-daha-step-motorunuzun-güç-kaynağı-12v'dan-az-ise,-jumper'ı-arduino'nuz-için-temiz-bir-5v-güç-kaynağı-sağlayan-3.-noktadaki-modüle-takın. ardından,-l298n-modül-pinlerini-in1,-in2,-in3-ve-in4'ü-sırasıyla-arduino-dijital-pinleri-d8,-d9,-d10-ve-d11'e-bağlayın.-son-olarak,-arduino-gnd'yi-modüldeki-5.-noktaya,-arduino-5v-ise-modülden-5v-alıyorsa-6.-noktaya-bağlayın. standart-olarak-arduino-ide'ye-dahil-olan-stepper-arduino-kütüphanesi-sayesinde-step-motorunu-çizimlerinizden-kontrol-etmek-çok-kolaydır. motorunuzu-göstermek-için,-yalnızca-stepper-kütüphanesinde-bulunan-stepper_onerevolution-çizimini-yükleyin,-örneğin: son-olarak,-değerini-kontrol-edin const-int-stepsperrevolution-=-200; eskizde-ve-step-motorunuz-için-200-devir-başına-adım-sayısını-ve-ayrıca-aşağıdaki-satırda-60-rpm-olarak-ayarlanan-hızı-değiştirin: mystepper.setspeed-(60); Şimdi-step-motorunuzu-bir-devir-etrafına-gönderecek-olan-eskizi-kaydedip-yükleyebilirsiniz,-sonra-tekrar-geri-getirebilirsiniz.-bu-işlev-ile-elde-edilir mystepper.step-(stepsperrevolution);-//-saat-yönündemystepper.step-(-stepsperrevolution);-//-saat-yönünün-tersi-için son-olarak,-test-donanımımızın-hızlı-bir-şekilde-gösterilmesi-aşağıdaki-videoda-gösterilmektedir: ve-sonunda,-arduino'nuz-veya-diğer-geliştirme-platformunuz-için-ucuz-ve-kullanışlı-bir-motor-kontrol-cihazı. ">Motor Sürücü Kartları Sürücü kartları sayesinde ardunio kartınız üzerinde istediğiniz voltaj ve güçte motoru kontrol edebilirsiniz. Voltaj Regulatörlü Çift Motor Sürücü Kart L298N İki DC motorun hızını ve yönünü kontrol etmenizi veya bir bipolar step motoru kolaylıkla kontrol etmenizi sağlar. L298N H köprü modülü, 5 ila 35V DC arasında gerilime sahip motorlarla kullanılabilir. Ayrıca 5V'lık bir regülatör vardır. Besleme voltajınız 12V'a kadar ise, panodan 5V'luk kaynak alabilirsiniz. 24V'a kadar olan motorları sürmek için hazırlanmış olan bu motor sürücü kartı, iki kanallı olup, kanal başına 2A akım vermektedir. Kart üzerinde L298N motor sürücü entegresi kullanılmıştır. Sumo, mini sumo, çizgi izleyen robotlarda ve çok çeşitli motor kontrol uygulamalarında kullanılabilir. DC motorlardan ayrı olarak step motor kontrolüne de imkan sağlamaktadır. Daha ayrıntılı bilgi için aşağıdaki örnek dokumanı inceleyebilirsiniz. Özellikleri : Birbirinden bağımsız olarak iki ayrı motoru kontrol edebilir. Kanal başına 2A akım verebilmektedir. Üzerinde dahili regülatörü vardır. Yüksek sıcaklık ve kısa devre koruması vardır. Motor dönüş yönüne göre yanan ledler vardır. Kart üzerinde dahili soğutucu vardır. Akım okuma (current sense) pinleri dışa verilmiş haldedir. Kartın 4 yanında istenilen yüzeye sabitleyebileceğiniz 4 adet vida deliği bulunmaktadır. Pin Bağlantıları : ENA: Sol motor kanalını aktif etme pini IN1: Sol motor 1. girişi IN2: Sol motor 2. gitişi IN3: Sağ motor 1. girişi IN4: Sağ motor 2. girişi ENB: Sağ motor kanalını aktif etme pini MotorA: Sol motor çıkışı MotorB: Sağ motor çıkışı VCC: Besleme voltaj girişi(4.8V-24V) GND: Toprak bağlantısı 5V: 5V çıkışı Ürün üzerinde ayrıca jumper takılmış pinler de yer almaktadır. Bu pinler opsiyonel kullanımlar ve farklı özellikleri aktif etmek için kullanılabilinmektedir. CSA: A motor sürücü kanalının akım çıkışıdır. Buradan jumper çıkarılarak çekilen akım değeri analog voltaj olarak okunabilinmektedir. CSB: B motor sürücü kanalının akım çıkışıdır. Buradan jumper çıkarılarak çekilen akım değeri analog voltaj olarak okunabilinmektedir. V1: IN1 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir. V2: IN2 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir. V3: IN3 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir. V4: IN4 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir. 5V-EN: 7805 hattını aktif ve pasif hale getiren jumperder. Takılı durumda kartın 5V çıkışı aktif olur ve buradan 5V çekilebilir. Çıkarıldığı durumda ise bu hat pasif konuma geçer. Tronixlabs Avustralya'dan Arduino için L298N Motor Kontrol Cihazı 1. DC motor 1 "+" veya step motor A + 2. DC motor 1 "-" veya step motoru A- 3. 12V jumper - 12V DC'den daha büyük bir besleme voltajı kullanıyorsanız bunu kaldırın. Bu, yerleşik 5V regülatöre güç sağlar 4. Motor besleme voltajınızı buraya maksimum 35V DC bağlayın. 12V DC den yüksekse 12V jumper'ı çıkartın 5. GND 6. 12V atlamacı yerinde ise 5V çıkış, Arduino'nuzu (vb.) Çalıştırmak için ideal 7. DC motor 1, jumper'ı etkinleştirir. Bir step motor kullanırken bunu yerinde bırakın. DC motor hız kontrolü için PWM çıkışına bağlayın. 8. IN1 9. IN2 10. IN3 11. IN4 12. DC motor 2, jumper'ı etkinleştirir. Bir step motor kullanırken bunu yerinde bırakın. DC motor hız kontrolü için PWM çıkışına bağlayın. 13. DC motor 2 "+" veya step motor B + 14. DC motor 2 "-" veya step motor B- DC Motorların Kontrolü Bir veya iki DC motorunu kontrol etmek oldukça kolaydır. Öncelikle her bir motoru L298N modülündeki A ve B bağlantılarına bağlayın. Bir robot (vb.) İçin iki motor kullanıyorsanız, motorların kutuplarının her iki girişte de aynı olduğundan emin olun. Aksi halde, her iki motoru da ileri doğru ayarladığınızda ve bir tanesi geriye doğru gittiğinde onları değiştirmeniz gerekebilir! Ardından, güç kaynağınızı bağlayın - modüldeki pim 4'e pozitif ve pim 5'e negatif / GND olacak şekilde besleyin. Eğer 12V'a kadar veriyorsanız, 12V jumper'da bırakabilirsiniz (yukarıdaki resimde 3. nokta) ve 5V mevcut olacaktır. modül üzerindeki pim 6'dan. Bu, motorların güç kaynağından güç almak için Arduino'nuzun 5V pinine beslenebilir. Arduino GND'yi modüldeki pim 5'e bağlamayı ve devreyi tamamlamayı unutmayın. Arduino'nuzda, ikisi PWM (darbe genişlik modülasyonu) pinleri olması gereken altı dijital çıkış pinine ihtiyacınız olacak. PWM pinleri, pin numarasının yanında bulunan tilde ("~") ile gösterilir, örneğin: Arduino UNO PWM pimleri Son olarak, Arduino dijital çıkış pimlerini sürücü modülüne bağlayın. Örneğimizde iki DC motorumuz var, bu nedenle dijital pinler D9, D8, D7 ve D6 sırasıyla IN1, IN2, IN3 ve IN4 pinlerine bağlanacak. Ardından D10'u modül pim 7'ye bağlayın (önce atlama kablosunu çıkarın) ve D5'i modül pimi 12'ye bağlayın (tekrar atlama kablosunu çıkarın). Motor yönü, her motor (veya kanal) için sürücüye YÜKSEK veya DÜŞÜK bir sinyal gönderilerek kontrol edilir. Örneğin, bir motor için, bir YÜKSEK İN1 ve bir DÜŞÜK-IN2, bir yönde dönmesine neden olur ve DÜŞÜK ve YÜKSEK, diğer yönde dönmesine neden olur. Bununla birlikte, motorlar bir YÜKSEK etkinleştirme pimine ayarlanana kadar dönmeyecektir (bir motor için 7, iki motor için 12). Ve aynı pimlere LOW ile kapatılabilirler. Bununla birlikte, motorların hızını kontrol etmeniz gerekirse, etkinleştirme pimine bağlı dijital pinten gelen PWM sinyali bununla ilgilenebilir. Örnek Kodlama // connect motor controller pins to Arduino digital pins// motor oneint enA = 10;int in1 = 9;int in2 = 8;// motor twoint enB = 5;int in3 = 7;int in4 = 6;void setup(){ // set all the motor control pins to outputs pinMode(enA, OUTPUT); pinMode(enB, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT);}void demoOne(){ // this function will run the motors in both directions at a fixed speed // turn on motor A digitalWrite(in1, HIGH); digitalWrite(in2, LOW); // set speed to 200 out of possible range 0~255 analogWrite(enA, 200); // turn on motor B digitalWrite(in3, HIGH); digitalWrite(in4, LOW); // set speed to 200 out of possible range 0~255 analogWrite(enB, 200); delay(2000); // now change motor directions digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); delay(2000); // now turn off motors digitalWrite(in1, LOW); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, LOW);}void demoTwo(){ // this function will run the motors across the range of possible speeds // note that maximum speed is determined by the motor itself and the operating voltage // the PWM values sent by analogWrite() are fractions of the maximum speed possible // by your hardware // turn on motors digitalWrite(in1, LOW); digitalWrite(in2, HIGH); digitalWrite(in3, LOW); digitalWrite(in4, HIGH); // accelerate from zero to maximum speed for (int i = 0; i < 256; i++) { analogWrite(enA, i); analogWrite(enB, i); delay(20); } // decelerate from maximum speed to zero for (int i = 255; i >= 0; --i) { analogWrite(enA, i); analogWrite(enB, i); delay(20); } // now turn off motors digitalWrite(in1, LOW); digitalWrite(in2, LOW); digitalWrite(in3, LOW); digitalWrite(in4, LOW); }void loop(){ demoOne(); delay(1000); demoTwo(); delay(1000);} Peki bu kodda neler oluyor? DemoOne() işlevinde motorları açıp 200 PWM değerinde çalıştırıyoruz. Bu bir hız değeri değil, güç bir kerede 200/255 süre için kullanılıyor. Sonra bir dakika sonra motorlar ters yönde çalışır (bkz. DigitalWrite () işlevlerinde YÜKSEK ve DÜŞÜK'leri nasıl değiştirdik?). Donanımınızın mümkün olan hız aralığı hakkında bir fikir edinmek için, motorları açan demoWo () işlevindeki tüm PWM aralığı boyunca çalışıyoruz ve döngüler için iki ile PWM değerleri sıfırdan 255'e ve sıfıra geri dönüyoruz . Sonunda bu, aşağıdaki videoda gösterilmiştir - iki DC motorlu iyi giyilmiş bir tank şasisi kullanarak: Step Motor Kontrolü Bu örnekte, dört telli tipik bir NEMA-17 step motorumuz var: Devir başına 200 adımı vardır ve 60 RPM'de çalışabilir. Motorunuz için halihazırda bir adım ve hız değeri yoksa, şimdi öğrenin ve taslak için ihtiyacınız olacak. Başarılı step motor kontrolünün anahtarı telleri tanımlamaktır - hangisi hangisidir. A +, A-, B + ve B-tellerini belirlemeniz gerekecektir. Örnek motorumuzda bunlar kırmızı, yeşil, sarı ve mavi. Şimdi kablolamayı halledelim. A +, A-, B + ve B tellerini, step motordan sırasıyla 1, 2, 13 ve 14 modül bağlantılarına bağlayın. L298N modülü ile birlikte verilen atlama tellerini 7 ve 12 numaralı modül noktalarındaki çiftlerin üzerine yerleştirin. Ardından güç kaynağını 4 (pozitif) ve 5 (negatif / GND) noktalarına gerektiği gibi bağlayın. Bir kez daha step motorunuzun güç kaynağı 12V'dan az ise, jumper'ı Arduino'nuz için temiz bir 5V güç kaynağı sağlayan 3. noktadaki modüle takın. Ardından, L298N modül pinlerini IN1, IN2, IN3 ve IN4'ü sırasıyla Arduino dijital pinleri D8, D9, D10 ve D11'e bağlayın. Son olarak, Arduino GND'yi modüldeki 5. noktaya, Arduino 5V ise modülden 5V alıyorsa 6. noktaya bağlayın. Standart olarak Arduino IDE'ye dahil olan Stepper Arduino kütüphanesi sayesinde step motorunu çizimlerinizden kontrol etmek çok kolaydır. Motorunuzu göstermek için, yalnızca Stepper kütüphanesinde bulunan stepper_oneRevolution çizimini yükleyin, örneğin: Son olarak, değerini kontrol edin const int stepsPerRevolution = 200; eskizde ve step motorunuz için 200 devir başına adım sayısını ve ayrıca aşağıdaki satırda 60 RPM olarak ayarlanan hızı değiştirin: myStepper.setSpeed (60); Şimdi step motorunuzu bir devir etrafına gönderecek olan eskizi kaydedip yükleyebilirsiniz, sonra tekrar geri getirebilirsiniz. Bu işlev ile elde edilir myStepper.step (stepsPerRevolution); // saat yönündemyStepper.step (-stepsPerRevolution); // saat yönünün tersi için Son olarak, test donanımımızın hızlı bir şekilde gösterilmesi aşağıdaki videoda gösterilmektedir: Ve sonunda, Arduino'nuz veya diğer geliştirme platformunuz için ucuz ve kullanışlı bir motor kontrol cihazı.
- Sürücü kartları sayesinde ardunio kartınız üzerinde istediğiniz voltaj ve güçte motoru kontrol edebilirsiniz.
- Voltaj Regulatörlü Çift Motor Sürücü Kart L298N
- Step Motor Kontrolü
Motor Sürücü Kartları
Sürücü kartları sayesinde ardunio kartınız üzerinde istediğiniz voltaj ve güçte motoru kontrol edebilirsiniz.
Voltaj Regulatörlü Çift Motor Sürücü Kart L298N
İki DC motorun hızını ve yönünü kontrol etmenizi veya bir bipolar step motoru kolaylıkla kontrol etmenizi sağlar. L298N H köprü modülü, 5 ila 35V DC arasında gerilime sahip motorlarla kullanılabilir.
Ayrıca 5V'lık bir regülatör vardır. Besleme voltajınız 12V'a kadar ise, panodan 5V'luk kaynak alabilirsiniz.
24V'a kadar olan motorları sürmek için hazırlanmış olan bu motor sürücü kartı, iki kanallı olup, kanal başına 2A akım vermektedir. Kart üzerinde L298N motor sürücü entegresi kullanılmıştır. Sumo, mini sumo, çizgi izleyen robotlarda ve çok çeşitli motor kontrol uygulamalarında kullanılabilir.
DC motorlardan ayrı olarak step motor kontrolüne de imkan sağlamaktadır. Daha ayrıntılı bilgi için aşağıdaki örnek dokumanı inceleyebilirsiniz.
Özellikleri :
- Birbirinden bağımsız olarak iki ayrı motoru kontrol edebilir.
- Kanal başına 2A akım verebilmektedir.
- Üzerinde dahili regülatörü vardır.
- Yüksek sıcaklık ve kısa devre koruması vardır.
- Motor dönüş yönüne göre yanan ledler vardır.
- Kart üzerinde dahili soğutucu vardır.
- Akım okuma (current sense) pinleri dışa verilmiş haldedir.
- Kartın 4 yanında istenilen yüzeye sabitleyebileceğiniz 4 adet vida deliği bulunmaktadır.
Pin Bağlantıları :
- ENA: Sol motor kanalını aktif etme pini
- IN1: Sol motor 1. girişi
- IN2: Sol motor 2. gitişi
- IN3: Sağ motor 1. girişi
- IN4: Sağ motor 2. girişi
- ENB: Sağ motor kanalını aktif etme pini
- MotorA: Sol motor çıkışı
- MotorB: Sağ motor çıkışı
- VCC: Besleme voltaj girişi(4.8V-24V)
- GND: Toprak bağlantısı
- 5V: 5V çıkışı
Ürün üzerinde ayrıca jumper takılmış pinler de yer almaktadır. Bu pinler opsiyonel kullanımlar ve farklı özellikleri aktif etmek için kullanılabilinmektedir.
- CSA: A motor sürücü kanalının akım çıkışıdır. Buradan jumper çıkarılarak çekilen akım değeri analog voltaj olarak okunabilinmektedir.
- CSB: B motor sürücü kanalının akım çıkışıdır. Buradan jumper çıkarılarak çekilen akım değeri analog voltaj olarak okunabilinmektedir.
- V1: IN1 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir.
- V2: IN2 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir.
- V3: IN3 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir.
- V4: IN4 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir.
- 5V-EN: 7805 hattını aktif ve pasif hale getiren jumperder. Takılı durumda kartın 5V çıkışı aktif olur ve buradan 5V çekilebilir. Çıkarıldığı durumda ise bu hat pasif konuma geçer.
Tronixlabs Avustralya'dan Arduino için L298N Motor Kontrol Cihazı
1. DC motor 1 "+" veya step motor A +
2. DC motor 1 "-" veya step motoru A-
3. 12V jumper - 12V DC'den daha büyük bir besleme voltajı kullanıyorsanız bunu kaldırın. Bu, yerleşik 5V regülatöre güç sağlar
4. Motor besleme voltajınızı buraya maksimum 35V DC bağlayın. 12V DC den yüksekse 12V jumper'ı çıkartın
5. GND
6. 12V atlamacı yerinde ise 5V çıkış, Arduino'nuzu (vb.) Çalıştırmak için ideal
7. DC motor 1, jumper'ı etkinleştirir. Bir step motor kullanırken bunu yerinde bırakın. DC motor hız kontrolü için PWM çıkışına bağlayın.
8. IN1
9. IN2
10. IN3
11. IN4
12. DC motor 2, jumper'ı etkinleştirir. Bir step motor kullanırken bunu yerinde bırakın. DC motor hız kontrolü için PWM çıkışına bağlayın.
13. DC motor 2 "+" veya step motor B +
14. DC motor 2 "-" veya step motor B-
DC Motorların Kontrolü
Bir veya iki DC motorunu kontrol etmek oldukça kolaydır. Öncelikle her bir motoru L298N modülündeki A ve B bağlantılarına bağlayın. Bir robot (vb.) İçin iki motor kullanıyorsanız, motorların kutuplarının her iki girişte de aynı olduğundan emin olun. Aksi halde, her iki motoru da ileri doğru ayarladığınızda ve bir tanesi geriye doğru gittiğinde onları değiştirmeniz gerekebilir!
Ardından, güç kaynağınızı bağlayın - modüldeki pim 4'e pozitif ve pim 5'e negatif / GND olacak şekilde besleyin. Eğer 12V'a kadar veriyorsanız, 12V jumper'da bırakabilirsiniz (yukarıdaki resimde 3. nokta) ve 5V mevcut olacaktır. modül üzerindeki pim 6'dan. Bu, motorların güç kaynağından güç almak için Arduino'nuzun 5V pinine beslenebilir. Arduino GND'yi modüldeki pim 5'e bağlamayı ve devreyi tamamlamayı unutmayın.
Arduino'nuzda, ikisi PWM (darbe genişlik modülasyonu) pinleri olması gereken altı dijital çıkış pinine ihtiyacınız olacak. PWM pinleri, pin numarasının yanında bulunan tilde ("~") ile gösterilir, örneğin:
Arduino UNO PWM pimleri
Son olarak, Arduino dijital çıkış pimlerini sürücü modülüne bağlayın. Örneğimizde iki DC motorumuz var, bu nedenle dijital pinler D9, D8, D7 ve D6 sırasıyla IN1, IN2, IN3 ve IN4 pinlerine bağlanacak. Ardından D10'u modül pim 7'ye bağlayın (önce atlama kablosunu çıkarın) ve D5'i modül pimi 12'ye bağlayın (tekrar atlama kablosunu çıkarın).
Motor yönü, her motor (veya kanal) için sürücüye YÜKSEK veya DÜŞÜK bir sinyal gönderilerek kontrol edilir. Örneğin, bir motor için, bir YÜKSEK İN1 ve bir DÜŞÜK-IN2, bir yönde dönmesine neden olur ve DÜŞÜK ve YÜKSEK, diğer yönde dönmesine neden olur.
Bununla birlikte, motorlar bir YÜKSEK etkinleştirme pimine ayarlanana kadar dönmeyecektir (bir motor için 7, iki motor için 12). Ve aynı pimlere LOW ile kapatılabilirler. Bununla birlikte, motorların hızını kontrol etmeniz gerekirse, etkinleştirme pimine bağlı dijital pinten gelen PWM sinyali bununla ilgilenebilir.
Örnek Kodlama
// connect motor controller pins to Arduino digital pins
// motor one
int enA = 10;
int in1 = 9;
int in2 = 8;
// motor two
int enB = 5;
int in3 = 7;
int in4 = 6;
void setup()
{
// set all the motor control pins to outputs
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void demoOne()
{
// this function will run the motors in both directions at a fixed speed
// turn on motor A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// set speed to 200 out of possible range 0~255
analogWrite(enA, 200);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
// set speed to 200 out of possible range 0~255
analogWrite(enB, 200);
delay(2000);
// now change motor directions
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(2000);
// now turn off motors
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void demoTwo()
{
// this function will run the motors across the range of possible speeds
// note that maximum speed is determined by the motor itself and the operating voltage
// the PWM values sent by analogWrite() are fractions of the maximum speed possible
// by your hardware
// turn on motors
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
// accelerate from zero to maximum speed
for (int i = 0; i < 256; i++)
{
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}
// decelerate from maximum speed to zero
for (int i = 255; i >= 0; --i)
{
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}
// now turn off motors
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void loop()
{
demoOne();
delay(1000);
demoTwo();
delay(1000);
}
Peki bu kodda neler oluyor? DemoOne() işlevinde motorları açıp 200 PWM değerinde çalıştırıyoruz. Bu bir hız değeri değil, güç bir kerede 200/255 süre için kullanılıyor.
Sonra bir dakika sonra motorlar ters yönde çalışır (bkz. DigitalWrite () işlevlerinde YÜKSEK ve DÜŞÜK'leri nasıl değiştirdik?).
Donanımınızın mümkün olan hız aralığı hakkında bir fikir edinmek için, motorları açan demoWo () işlevindeki tüm PWM aralığı boyunca çalışıyoruz ve döngüler için iki ile PWM değerleri sıfırdan 255'e ve sıfıra geri dönüyoruz .
Sonunda bu, aşağıdaki videoda gösterilmiştir - iki DC motorlu iyi giyilmiş bir tank şasisi kullanarak:
Step Motor Kontrolü
Bu örnekte, dört telli tipik bir NEMA-17 step motorumuz var:
Devir başına 200 adımı vardır ve 60 RPM'de çalışabilir. Motorunuz için halihazırda bir adım ve hız değeri yoksa, şimdi öğrenin ve taslak için ihtiyacınız olacak.
Başarılı step motor kontrolünün anahtarı telleri tanımlamaktır - hangisi hangisidir. A +, A-, B + ve B-tellerini belirlemeniz gerekecektir. Örnek motorumuzda bunlar kırmızı, yeşil, sarı ve mavi. Şimdi kablolamayı halledelim.
A +, A-, B + ve B tellerini, step motordan sırasıyla 1, 2, 13 ve 14 modül bağlantılarına bağlayın. L298N modülü ile birlikte verilen atlama tellerini 7 ve 12 numaralı modül noktalarındaki çiftlerin üzerine yerleştirin. Ardından güç kaynağını 4 (pozitif) ve 5 (negatif / GND) noktalarına gerektiği gibi bağlayın.
Bir kez daha step motorunuzun güç kaynağı 12V'dan az ise, jumper'ı Arduino'nuz için temiz bir 5V güç kaynağı sağlayan 3. noktadaki modüle takın.
Ardından, L298N modül pinlerini IN1, IN2, IN3 ve IN4'ü sırasıyla Arduino dijital pinleri D8, D9, D10 ve D11'e bağlayın. Son olarak, Arduino GND'yi modüldeki 5. noktaya, Arduino 5V ise modülden 5V alıyorsa 6. noktaya bağlayın.
Standart olarak Arduino IDE'ye dahil olan Stepper Arduino kütüphanesi sayesinde step motorunu çizimlerinizden kontrol etmek çok kolaydır.
Motorunuzu göstermek için, yalnızca Stepper kütüphanesinde bulunan stepper_oneRevolution çizimini yükleyin, örneğin:
Son olarak, değerini kontrol edin
const int stepsPerRevolution = 200;
eskizde ve step motorunuz için 200 devir başına adım sayısını ve ayrıca aşağıdaki satırda 60 RPM olarak ayarlanan hızı değiştirin:
myStepper.setSpeed (60);
Şimdi step motorunuzu bir devir etrafına gönderecek olan eskizi kaydedip yükleyebilirsiniz, sonra tekrar geri getirebilirsiniz. Bu işlev ile elde edilir
myStepper.step (stepsPerRevolution); // saat yönünde
myStepper.step (-stepsPerRevolution); // saat yönünün tersi için
Son olarak, test donanımımızın hızlı bir şekilde gösterilmesi aşağıdaki videoda gösterilmektedir:
Ve sonunda, Arduino'nuz veya diğer geliştirme platformunuz için ucuz ve kullanışlı bir motor kontrol cihazı.
Sürücü kartları sayesinde ardunio kartınız üzerinde istediğiniz voltaj ve güçte motoru kontrol edebilirsiniz.
Voltaj Regulatörlü Çift Motor Sürücü Kart L298N
İki DC motorun hızını ve yönünü kontrol etmenizi veya bir bipolar step motoru kolaylıkla kontrol etmenizi sağlar. L298N H köprü modülü, 5 ila 35V DC arasında gerilime sahip motorlarla kullanılabilir.
Ayrıca 5V'lık bir regülatör vardır. Besleme voltajınız 12V'a kadar ise, panodan 5V'luk kaynak alabilirsiniz.
24V'a kadar olan motorları sürmek için hazırlanmış olan bu motor sürücü kartı, iki kanallı olup, kanal başına 2A akım vermektedir. Kart üzerinde L298N motor sürücü entegresi kullanılmıştır. Sumo, mini sumo, çizgi izleyen robotlarda ve çok çeşitli motor kontrol uygulamalarında kullanılabilir.
DC motorlardan ayrı olarak step motor kontrolüne de imkan sağlamaktadır. Daha ayrıntılı bilgi için aşağıdaki örnek dokumanı inceleyebilirsiniz.
Özellikleri :
- Birbirinden bağımsız olarak iki ayrı motoru kontrol edebilir.
- Kanal başına 2A akım verebilmektedir.
- Üzerinde dahili regülatörü vardır.
- Yüksek sıcaklık ve kısa devre koruması vardır.
- Motor dönüş yönüne göre yanan ledler vardır.
- Kart üzerinde dahili soğutucu vardır.
- Akım okuma (current sense) pinleri dışa verilmiş haldedir.
- Kartın 4 yanında istenilen yüzeye sabitleyebileceğiniz 4 adet vida deliği bulunmaktadır.
Pin Bağlantıları :
- ENA: Sol motor kanalını aktif etme pini
- IN1: Sol motor 1. girişi
- IN2: Sol motor 2. gitişi
- IN3: Sağ motor 1. girişi
- IN4: Sağ motor 2. girişi
- ENB: Sağ motor kanalını aktif etme pini
- MotorA: Sol motor çıkışı
- MotorB: Sağ motor çıkışı
- VCC: Besleme voltaj girişi(4.8V-24V)
- GND: Toprak bağlantısı
- 5V: 5V çıkışı
Ürün üzerinde ayrıca jumper takılmış pinler de yer almaktadır. Bu pinler opsiyonel kullanımlar ve farklı özellikleri aktif etmek için kullanılabilinmektedir.
- CSA: A motor sürücü kanalının akım çıkışıdır. Buradan jumper çıkarılarak çekilen akım değeri analog voltaj olarak okunabilinmektedir.
- CSB: B motor sürücü kanalının akım çıkışıdır. Buradan jumper çıkarılarak çekilen akım değeri analog voltaj olarak okunabilinmektedir.
- V1: IN1 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir.
- V2: IN2 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir.
- V3: IN3 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir.
- V4: IN4 girişini direk olarak 5V'a çeken pull-up direncine bağlı olan bir jumperdır. Bu sayede siz toprağa çekmedikçe pine sürekli olarak 5V gelecektir.
- 5V-EN: 7805 hattını aktif ve pasif hale getiren jumperder. Takılı durumda kartın 5V çıkışı aktif olur ve buradan 5V çekilebilir. Çıkarıldığı durumda ise bu hat pasif konuma geçer.
Tronixlabs Avustralya'dan Arduino için L298N Motor Kontrol Cihazı
1. DC motor 1 "+" veya step motor A +
2. DC motor 1 "-" veya step motoru A-
3. 12V jumper - 12V DC'den daha büyük bir besleme voltajı kullanıyorsanız bunu kaldırın. Bu, yerleşik 5V regülatöre güç sağlar
4. Motor besleme voltajınızı buraya maksimum 35V DC bağlayın. 12V DC den yüksekse 12V jumper'ı çıkartın
5. GND
6. 12V atlamacı yerinde ise 5V çıkış, Arduino'nuzu (vb.) Çalıştırmak için ideal
7. DC motor 1, jumper'ı etkinleştirir. Bir step motor kullanırken bunu yerinde bırakın. DC motor hız kontrolü için PWM çıkışına bağlayın.
8. IN1
9. IN2
10. IN3
11. IN4
12. DC motor 2, jumper'ı etkinleştirir. Bir step motor kullanırken bunu yerinde bırakın. DC motor hız kontrolü için PWM çıkışına bağlayın.
13. DC motor 2 "+" veya step motor B +
14. DC motor 2 "-" veya step motor B-
DC Motorların Kontrolü
Bir veya iki DC motorunu kontrol etmek oldukça kolaydır. Öncelikle her bir motoru L298N modülündeki A ve B bağlantılarına bağlayın. Bir robot (vb.) İçin iki motor kullanıyorsanız, motorların kutuplarının her iki girişte de aynı olduğundan emin olun. Aksi halde, her iki motoru da ileri doğru ayarladığınızda ve bir tanesi geriye doğru gittiğinde onları değiştirmeniz gerekebilir!
Ardından, güç kaynağınızı bağlayın - modüldeki pim 4'e pozitif ve pim 5'e negatif / GND olacak şekilde besleyin. Eğer 12V'a kadar veriyorsanız, 12V jumper'da bırakabilirsiniz (yukarıdaki resimde 3. nokta) ve 5V mevcut olacaktır. modül üzerindeki pim 6'dan. Bu, motorların güç kaynağından güç almak için Arduino'nuzun 5V pinine beslenebilir. Arduino GND'yi modüldeki pim 5'e bağlamayı ve devreyi tamamlamayı unutmayın.
Arduino'nuzda, ikisi PWM (darbe genişlik modülasyonu) pinleri olması gereken altı dijital çıkış pinine ihtiyacınız olacak. PWM pinleri, pin numarasının yanında bulunan tilde ("~") ile gösterilir, örneğin:
Arduino UNO PWM pimleri
Son olarak, Arduino dijital çıkış pimlerini sürücü modülüne bağlayın. Örneğimizde iki DC motorumuz var, bu nedenle dijital pinler D9, D8, D7 ve D6 sırasıyla IN1, IN2, IN3 ve IN4 pinlerine bağlanacak. Ardından D10'u modül pim 7'ye bağlayın (önce atlama kablosunu çıkarın) ve D5'i modül pimi 12'ye bağlayın (tekrar atlama kablosunu çıkarın).
Motor yönü, her motor (veya kanal) için sürücüye YÜKSEK veya DÜŞÜK bir sinyal gönderilerek kontrol edilir. Örneğin, bir motor için, bir YÜKSEK İN1 ve bir DÜŞÜK-IN2, bir yönde dönmesine neden olur ve DÜŞÜK ve YÜKSEK, diğer yönde dönmesine neden olur.
Bununla birlikte, motorlar bir YÜKSEK etkinleştirme pimine ayarlanana kadar dönmeyecektir (bir motor için 7, iki motor için 12). Ve aynı pimlere LOW ile kapatılabilirler. Bununla birlikte, motorların hızını kontrol etmeniz gerekirse, etkinleştirme pimine bağlı dijital pinten gelen PWM sinyali bununla ilgilenebilir.
Örnek Kodlama
// motor one
int enA = 10;
int in1 = 9;
int in2 = 8;
// motor two
int enB = 5;
int in3 = 7;
int in4 = 6;
void setup()
{
// set all the motor control pins to outputs
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void demoOne()
{
// this function will run the motors in both directions at a fixed speed
// turn on motor A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// set speed to 200 out of possible range 0~255
analogWrite(enA, 200);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
// set speed to 200 out of possible range 0~255
analogWrite(enB, 200);
delay(2000);
// now change motor directions
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(2000);
// now turn off motors
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void demoTwo()
{
// this function will run the motors across the range of possible speeds
// note that maximum speed is determined by the motor itself and the operating voltage
// the PWM values sent by analogWrite() are fractions of the maximum speed possible
// by your hardware
// turn on motors
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
// accelerate from zero to maximum speed
for (int i = 0; i < 256; i++)
{
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}
// decelerate from maximum speed to zero
for (int i = 255; i >= 0; --i)
{
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}
// now turn off motors
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void loop()
{
demoOne();
delay(1000);
demoTwo();
delay(1000);
}
Peki bu kodda neler oluyor? DemoOne() işlevinde motorları açıp 200 PWM değerinde çalıştırıyoruz. Bu bir hız değeri değil, güç bir kerede 200/255 süre için kullanılıyor.
Sonra bir dakika sonra motorlar ters yönde çalışır (bkz. DigitalWrite () işlevlerinde YÜKSEK ve DÜŞÜK'leri nasıl değiştirdik?).
Donanımınızın mümkün olan hız aralığı hakkında bir fikir edinmek için, motorları açan demoWo () işlevindeki tüm PWM aralığı boyunca çalışıyoruz ve döngüler için iki ile PWM değerleri sıfırdan 255'e ve sıfıra geri dönüyoruz .
Sonunda bu, aşağıdaki videoda gösterilmiştir - iki DC motorlu iyi giyilmiş bir tank şasisi kullanarak:
Step Motor Kontrolü
Bu örnekte, dört telli tipik bir NEMA-17 step motorumuz var:
Devir başına 200 adımı vardır ve 60 RPM'de çalışabilir. Motorunuz için halihazırda bir adım ve hız değeri yoksa, şimdi öğrenin ve taslak için ihtiyacınız olacak.
Başarılı step motor kontrolünün anahtarı telleri tanımlamaktır - hangisi hangisidir. A +, A-, B + ve B-tellerini belirlemeniz gerekecektir. Örnek motorumuzda bunlar kırmızı, yeşil, sarı ve mavi. Şimdi kablolamayı halledelim.
A +, A-, B + ve B tellerini, step motordan sırasıyla 1, 2, 13 ve 14 modül bağlantılarına bağlayın. L298N modülü ile birlikte verilen atlama tellerini 7 ve 12 numaralı modül noktalarındaki çiftlerin üzerine yerleştirin. Ardından güç kaynağını 4 (pozitif) ve 5 (negatif / GND) noktalarına gerektiği gibi bağlayın.
Bir kez daha step motorunuzun güç kaynağı 12V'dan az ise, jumper'ı Arduino'nuz için temiz bir 5V güç kaynağı sağlayan 3. noktadaki modüle takın.
Ardından, L298N modül pinlerini IN1, IN2, IN3 ve IN4'ü sırasıyla Arduino dijital pinleri D8, D9, D10 ve D11'e bağlayın. Son olarak, Arduino GND'yi modüldeki 5. noktaya, Arduino 5V ise modülden 5V alıyorsa 6. noktaya bağlayın.
Standart olarak Arduino IDE'ye dahil olan Stepper Arduino kütüphanesi sayesinde step motorunu çizimlerinizden kontrol etmek çok kolaydır.
Motorunuzu göstermek için, yalnızca Stepper kütüphanesinde bulunan stepper_oneRevolution çizimini yükleyin, örneğin:
Son olarak, değerini kontrol edin
const int stepsPerRevolution = 200;
eskizde ve step motorunuz için 200 devir başına adım sayısını ve ayrıca aşağıdaki satırda 60 RPM olarak ayarlanan hızı değiştirin:
myStepper.setSpeed (60);
Şimdi step motorunuzu bir devir etrafına gönderecek olan eskizi kaydedip yükleyebilirsiniz, sonra tekrar geri getirebilirsiniz. Bu işlev ile elde edilir
myStepper.step (stepsPerRevolution); // saat yönünde
myStepper.step (-stepsPerRevolution); // saat yönünün tersi için
Son olarak, test donanımımızın hızlı bir şekilde gösterilmesi aşağıdaki videoda gösterilmektedir:
Ve sonunda, Arduino'nuz veya diğer geliştirme platformunuz için ucuz ve kullanışlı bir motor kontrol cihazı.