Thư Viện Driver Arduino điều Khiển động Cơ Bước Với DRV8825 ...

Nội Dung Bài Viết

Toggle
  • Thư viện Driver điều khiển động cơ bước
  • Điều khiển động cơ bước dùng thư viện DRV8825
  • Code ví dụ

Thư viện Driver điều khiển động cơ bước

Thư viện driver gồm có thư viện cho DRV8825, A4988, DRV8834, RV8888, MultiDriver, SyncDriver,….Thư viện driver giúp cho việc lập trình điều khiển động cơ bước một cách đơn giản, chính xác, tiết kiệm thời gian viết code. Drv sử dụng như thư viện Stepper.h, điều khiển tốc độ, số bước,…Đặc biệt thư viện drv có thể điều khiển vi bước mà thư viện Stepper không làm được.

Link tải thư viện Link dự phòng

Điều khiển động cơ bước dùng thư viện DRV8825

Sơ đồ kết nối:

Sơ đồ nói dây DRV8825/DRV8824 với động cơ bước

Bo arduino kết nối DRV8825

  • DIR—–8
  • STEP—-9
  • EN—–13
  • GND — Arduino GND
  • GND — Motor power GND
  • VMOT – Motor power (check driver-specific voltage range)

A4988/DRV8825 microstep control

  • MS1/MODE0 – D10
  • MS2/MODE1 – D11
  • MS3/MODE2 – D12

Code ví dụ

Arduino /* * Microstepping demo * * This requires that M0, M1 be connected in addition to STEP,DIR * * Copyright (C)2015 Laurentiu Badea * * This file may be redistributed under the terms of the MIT license. * A copy of this license has been included with this distribution in the file LICENSE. */ #include <Arduino.h> // Motor steps per revolution. Most steppers are 200 steps or 1.8 degrees/step #define MOTOR_STEPS 200 #define RPM 120 #define DIR 8 #define STEP 9 #define ENABLE 13 // optional (just delete ENABLE from everywhere if not used) /* * Choose one of the sections below that match your board */ #include "DRV8825.h" #define MODE0 10 #define MODE1 11 #define MODE2 12 DRV8825 stepper(MOTOR_STEPS, DIR, STEP, ENABLE, MODE0, MODE1, MODE2); void setup() { /* * Set target motor RPM. * Too high will result in a high pitched whine and the motor does not move. */ stepper.begin(RPM); stepper.enable(); // set current level (for DRV8880 only). Valid percent values are 25, 50, 75 or 100. // stepper.setCurrent(100); } void loop() { delay(1000); /* * Moving motor at full speed is simple: */ stepper.setMicrostep(1); // make sure we are in full speed mode // these two are equivalent: 180 degrees is 100 steps in full speed mode stepper.move(100); stepper.rotate(180); // one full reverse rotation stepper.move(-100); stepper.rotate(-180); /* * Microstepping mode: 1,2,4,8,16 or 32(DRV8834 only) * Mode 1 is full speed. * Mode 32 is 32 microsteps per step. * The motor should rotate just as fast (set RPM), * but movement precision is increased. */ stepper.setMicrostep(8); // 180 degrees now takes 100 * 8 microsteps stepper.move(100*8); stepper.rotate(180); // as you can see, using degrees is easier stepper.move(-100*8); stepper.rotate(-180); delay(5000); }
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576/** Microstepping demo** This requires that M0, M1 be connected in addition to STEP,DIR** Copyright (C)2015 Laurentiu Badea** This file may be redistributed under the terms of the MIT license.* A copy of this license has been included with this distribution in the file LICENSE.*/#include <Arduino.h> // Motor steps per revolution. Most steppers are 200 steps or 1.8 degrees/step#define MOTOR_STEPS 200#define RPM 120 #define DIR 8#define STEP 9#define ENABLE 13 // optional (just delete ENABLE from everywhere if not used) /** Choose one of the sections below that match your board*/#include "DRV8825.h"#define MODE0 10#define MODE1 11#define MODE2 12DRV8825stepper(MOTOR_STEPS,DIR,STEP,ENABLE,MODE0,MODE1,MODE2); voidsetup(){/** Set target motor RPM.* Too high will result in a high pitched whine and the motor does not move.*/stepper.begin(RPM);stepper.enable(); // set current level (for DRV8880 only). Valid percent values are 25, 50, 75 or 100.// stepper.setCurrent(100);} voidloop(){delay(1000); /** Moving motor at full speed is simple:*/stepper.setMicrostep(1);// make sure we are in full speed mode // these two are equivalent: 180 degrees is 100 steps in full speed modestepper.move(100);stepper.rotate(180); // one full reverse rotationstepper.move(-100);stepper.rotate(-180); /** Microstepping mode: 1,2,4,8,16 or 32(DRV8834 only)* Mode 1 is full speed.* Mode 32 is 32 microsteps per step.* The motor should rotate just as fast (set RPM),* but movement precision is increased.*/stepper.setMicrostep(8); // 180 degrees now takes 100 * 8 microstepsstepper.move(100*8);stepper.rotate(180); // as you can see, using degrees is easierstepper.move(-100*8);stepper.rotate(-180); delay(5000);}

Tham khảo thêm: Stepper driver

arduinođiều khiển động cơ bướcThư việnThư viện DriverThư viện stepper

Từ khóa » Thư Viện A4988 Trong Proteus