Nội Dung Bài Viết
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:
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ụ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | /* * 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); } |
Tham khảo thêm: Stepper driver