Mạch Điều Khiển Động Cơ Bước Arduino Và A4988 Driver, Mạch Điều Khiển Động Cơ Bước A4988

Trong lý giải Arduino này, họ sẽ khám phá cách điều khiển động cơ bước bởi Driver A4988. Chúng ta có thể xem đoạn phim sau hoặc đọc giải đáp dưới đây.

Bạn đang xem: Điều khiển động cơ bước arduino

*

động cơ bước 42

Tổng quan tiền về Driver A4988

A4988 là một trong trình điều khiển vi bước để điều khiển động cơ cách lưỡng cực có bộ dịch tích vừa lòng để quản lý và vận hành dễ dàng. Điều này có nghĩa là chúng ta có thể điều khiển động cơ bước chỉ với 2 chân tự bộ tinh chỉnh của bọn họ hoặc một chân để tinh chỉnh hướng quay và chân cơ để tinh chỉnh và điều khiển các bước.

*

A4988-Trình điều khiển bước

Driver cung ứng năm độ phân giải bước không giống nhau: bước đủ, ½ bước, ¼ bước, 1/8 cách và 1/16 bước. Xung quanh ra, nó bao gồm một phát triển thành trở để kiểm soát và điều chỉnh đầu ra hiện tại tại, tắt lúc nhiệt độ không thấp chút nào và đảm bảo dòng điện chéo.

Nguồn vào của nó là từ bỏ 3 cho 5,5 V và dòng điện tối đa trên từng pha là 2A nếu được làm mát bổ sung cập nhật tốt hoặc cái điện tiếp tục 1A mỗi pha nhưng mà không phải tản nhiệt độ hoặc có tác dụng mát.

*

A4988-Thông số kỹ thuật

Chân ra Driver A4988

Bây giờ, hãy chú ý kỹ vào sơ vật dụng chân của trình tinh chỉnh và nối nó với hộp động cơ bước và bộ điều khiển. Vì vậy, cửa hàng chúng tôi sẽ bắt đầu với 2 chân ngơi nghỉ nút bên phải để cấp nguồn đến trình điều khiển, chân VDD cùng Ground mà shop chúng tôi cần liên kết chúng với nguồn điện từ 3 cho 5,5 V cùng trong trường hợp của công ty chúng tôi sẽ là bộ điều khiển và tinh chỉnh của chúng tôi, Arduino Board sẽ hỗ trợ 5 V. 4 chân sau đây để kết nối động cơ. Các chân 1A cùng 1B sẽ được kết nối với một cuộn dây của bộ động cơ và chân 2A cùng 2B cùng với cuộn dây không giống của động cơ. Để cung cấp năng lượng mang lại động cơ, chúng tôi sử dụng 2 chân tiếp theo, Ground với VMOT mà cửa hàng chúng tôi cần kết nối chúng với Nguồn cung cấp từ 8 đến 35 V và công ty chúng tôi cũng cần thực hiện tụ tách rời với ít nhất 47 Pha
F để bảo đảm board tinh chỉnh khỏi những xung năng lượng điện áp.

*

A4988-Sơ vật nối dây

Hai chân tiếp theo, Step và Direction là những chân mà chúng ta thực sự thực hiện để điều khiển vận động của cồn cơ. Chân Direction tinh chỉnh hướng tảo của động cơ và bọn họ cần liên kết nó cùng với một trong những chân kỹ thuật số trên vi điều khiển, hoặc trong trường phù hợp của tôi, tôi sẽ kết nối nó với chân số 4 của Board Arduino.

Với chân Step, bọn họ điều khiển mirosteps của hộp động cơ và với mỗi xung được thân tặng chân này, động cơ sẽ dịch rời một bước. Vị vậy, điều đó có nghĩa là không cần ngẫu nhiên chương trình phức tạp, board đưa pha, dòng tinh chỉnh tần số, v.v., vì trình dịch tích hòa hợp của Driver A4988 đảm nhận mọi thứ. Ở đây bọn họ không yêu cầu nối chúng trong lịch trình của mình.

Tiếp theo là chân SLEEP cùng mức súc tích thấp đặt board ở cơ chế nghỉ để giảm thiểu nút tiêu thụ điện khi động cơ không được sử dụng.

Tiếp theo, chân RESET đặt trình dịch sang trọng trạng thái trang chủ được xác minh trước. Trạng thái home hoặc vị trí Microstep trang chủ này có thể được nhìn thấy từ Board dữ liệu A4988. Vị vậy, đây là vị trí ban đầu từ nơi bộ động cơ khởi động và chúng khác nhau tùy ở trong vào độ phân giải microstep. Nếu như trạng thái đầu vào của chân này sống mức súc tích thấp, toàn bộ các nguồn vào STEP sẽ bị bỏ qua. Chân Reset là 1 chân nổi, do vậy nếu chúng ta không bao gồm ý định tinh chỉnh và điều khiển nó trong lịch trình của mình, bọn họ cần kết nối nó với chân SLEEP để lấy nó lên tới mức cao và nhảy board.

*

3 chân tiếp sau (MS1, MS2 với MS3) là để chọn một trong năm độ sắc nét theo board ở trên. Những chân này còn có điện trở mặt trong, do vậy nếu bọn họ ngắt kết nối, board sẽ hoạt động ở chính sách bước đủ.

Cuối cùng, chân ENABLE được sử dụng để bật hoặc tắt những đầu ra FET. Vày vậy, nấc cao sẽ giữ cho cổng đầu ra bị loại bỏ hóa.

Các linh phụ kiện cần thiết

Trình điều khiển A4988 Stepper Driver
Bộ biến đổi 12V/2ABộ nguồn
Board Arduino
Breadboard với dây dẫn

Sơ vật mạch

Đây là sơ đồ vật mạch trả chỉnh. Tôi sẽ sử dụng ổ đĩa ở cách đủ vị vậy tôi sẽ ngắt liên kết 3 chân MS và chỉ kết nối các chân Direction và chân của ổ đĩa với những chân số 3 cùng 4 trên Board Arduino cùng cả chân Ground cùng 5 V để cấp cho nguồn đến board. Xung quanh ra, tôi sẽ áp dụng một tụ 100u
F để bóc rời với bộ đổi khác 12V, 1.5A để cấp cho nguồn đến động cơ. Tôi sẽ thực hiện Động cơ bước Nema 17 và những dây A với C của nó sẽ tiến hành kết nối với các chân 1A và 1B với dây B với D với những chân 2A cùng 2B.

*

Sơ vật điều khiển-động cơ-mạch-động cơ

Giới hạn mẫu điện

Trước khi kết nối động cơ, bọn họ nên kiểm soát và điều chỉnh giới hạn cái điện của trình điều khiển để chắc hẳn rằng rằng chiếc điện phía trong giới hạn lúc này của động cơ. Bạn có thể làm điều đó bằng cách điều chỉnh năng lượng điện áp tham chiếu bằng biến trở bên trên board và để mắt tới phương trình này:

Giới hạn mẫu điện = VRef x 2

*

Tuy nhiên phương trình này chưa phải lúc nào cũng đúng do có những nhà tiếp tế board điều khiển A4988 không giống nhau. Đây là 1 trong minh hội chứng cho trường hòa hợp của tôi: Tôi đã điều chỉnh biến trở cùng đo năng lượng điện áp tham chiếu 0,6V. Vì vậy, giới hạn dòng điện đề xuất là giá trị 0,6 * 2, bằng 1,2 A.

*

Bây giờ vị tôi đang sử dụng Trình tinh chỉnh ở chính sách STEP và theo Board tài liệu A4988 ở cơ chế này, dòng điện của cuộn dây chỉ có thể đạt cho tới 70% giới hạn dòng điện, 1,2A * 0,7 sẽ bởi 0,84A. Để soát sổ điều này, tôi đã cài lên một code đơn giản với nút cao thường xuyên ở chân STEP (để chúng ta cũng có thể nhận thấy cái điện xuất sắc hơn) và liên kết đồng hồ của chính bản thân mình nối tiếp với một cuộn dây của động cơ và cấp nguồn mang đến nó. Những gì tôi dìm được được coi là dòng 0,5A tức là phương trình sai với trường phù hợp này.

Xem thêm: Áo Choàng Cho Bé Sơ Sinh Giá Khuyến Mãi Giao Hàng, Áo Choàng Cho Bé Sơ Sinh

*

Code lập trình Arduino cùng A4988

Đây là 1 trong code ví dụ. Đầu tiên chúng ta phải khẳng định các chân STEP với DIRECTION. Vào trường thích hợp này, bọn chúng là các chân 3 cùng 4 bên trên Board Arduino với chúng được đặt tên là step
Pin với dir
Pin với phần thiết lập họ phải khẳng định chúng đầu ra.

// defines pins numbersconst int step
Pin = 3; const int dir
Pin = 4; void setup() // Sets the two pins as Outputs pin
Mode(step
Pin,OUTPUT); pin
Mode(dir
Pin,OUTPUT);void loop() digital
Write(dir
Pin,HIGH); // Enables the motor to move in a particular direction // Makes 200 pulses for making one full cycle rotation for(int x = 0; x trong phần vòng lặp đầu tiên, chúng ta sẽ để chân Direction sống trạng thái cao có thể chấp nhận được động cơ di chuyển theo một hướng cụ thể. Bây giờ bằng phương pháp sử dụng vòng lặp này, họ sẽ làm cho động cơ tiến hành một vòng lặp đầy đủ. Khi trình điều khiển được để ở cơ chế bước đủ và Động cơ bước gồm góc cách 1,8 độ hoặc 200 bước, họ cần gởi 200 xung vào chân Step để tiến hành một vòng xoay toàn chu kỳ. Vày vậy, vòng lặp for sẽ sở hữu được 200 lần lặp và mỗi lần nó đã đặt chân Step tại mức cao và tiếp đến ở mức rẻ để chế tác xung. Thân mỗi Digital
Write, chúng ta cần thêm một số delay để rang buộc vận tốc của rượu cồn cơ.

Sau vòng xoay toàn chu kỳ luân hồi này, bọn họ sẽ thực hiện delay một giây, sau đó biến đổi hướng quay bằng cách đặt dir
Pin ở mức thấp và bây chừ thực hiện tại 2 vòng quay toàn chu kỳ với vòng lặp 400 lần lặp. Vào thời gian cuối hàm bao gồm thêm một giây delay. Hiện giờ hãy sở hữu lên code và xem nó sẽ chuyển động như nỗ lực nào.

Tôi đã làm thêm một lấy một ví dụ cho trả lời này, vị trí tôi điều khiển tốc độ của động cơ bởi biến trở. Đây là code của ví dụ đó:

// Defines pins numbersconst int step
Pin = 3;const int dir
Pin = 4; int custom
Delay,custom
Delay
Mapped; // Defines variables void setup() // Sets the two pins as Outputs pin
Mode(step
Pin,OUTPUT); pin
Mode(dir
Pin,OUTPUT); digital
Write(dir
Pin,HIGH); //Enables the motor lớn move in a particular directionvoid loop() custom
Delay
Mapped = speed
Up(); // Gets custom delay values from the custom speed
Up function // Makes pules with custom delay, depending on the Potentiometer, from which the speed of the motor depends digital
Write(step
Pin, HIGH); delay
Microseconds(custom
Delay
Mapped); digital
Write(step
Pin, LOW); delay
Microseconds(custom
Delay
Mapped);// Function for reading the Potentiometerint speed
Up() int custom
Delay = analog
Read(A0); // Reads the potentiometer int new
Custom = map(custom
Delay, 0, 1023, 300,4000); // Convrests the read values of the potentiometer from 0 khổng lồ 1023 into desireded delay values (300 to lớn 4000) return new
Custom; Dịch từ: https://howtomechatronics.com/tutorials/arduino/how-to-control-stepper-motor-with-a4988-driver-and-arduino/

Bài đăng này cho thấy cách điều khiển vận tốc động cơ bước và hướng quay bằng phương pháp sử dụng board Arduino UNO và cần điều khiển và tinh chỉnh PS2.

Động cơ bước được thực hiện trong lấy ví dụ như này là 28BYJ-48 (động cơ bước đối chọi cực) thường kèm theo với board tinh chỉnh và điều khiển của nó.

Cần điều khiển và tinh chỉnh (Cần tinh chỉnh và điều khiển PS2) bao hàm hai thay đổi trở 10k ohm (một cho trục X và một cho trục Y) với nút ấn.

*

Yêu mong phần cứng:

Board UNOĐộng cơ bước 28BYJ-48 (với board điều khiển và tinh chỉnh ULN2003A)Cần điều khiển
Nguồn điện 5VBreadboard
Dây dẫn

Sơ vật dụng

Sơ đồ vật mạch dự án được hiển thị bên dưới (tất cả những đầu nối đất được nối cùng với nhau).

*

và hình hình ảnh sau đây cho biết mạch fritzing :

*

Động cơ cách được liên kết với board ULN2003A được cung cấp nguồn 5V làm việc ngoài. Những chân điều khiển và tinh chỉnh (IN1, IN2, IN3 và IN4) của board này được nối cùng với Arduino như sau:

IN1 cùng với chân Arduino 11IN2 tới chân Arduino 10IN3 đến chân Arduino 9IN4 mang đến chân Arduino 8

Board tinh chỉnh có 5 chân: GND, + 5V, VRX, VRY với SW vào đó:

GND với + 5V là các chân cấp nguồn
VRX là cổng output biến trở trục XVRY là áp sạc ra biến trở trục YSW là điểm mút của nút ấn ( điểm mút còn lại được liên kết với GND).

Đầu ra của trở thành trở trục X (VRX) được nối với chân tương tự như Arduino A0, cổng output biến trở trục Y (VRY) cũng hoàn toàn có thể được sử dụng. Chân chuyển đổi (SW) ko được áp dụng trong lấy ví dụ này.

Sử dụng biến hóa trở trục X cùng trục Y, bạn cũng có thể điều khiển hai động cơ bước độc lập.

Điều khiển bộ động cơ bước với CODE Arduino và nên điều khiển:

Trong lấy một ví dụ này tôi đã thực hiện thư viện bộ động cơ bước Arduino (tích hợp) để đơn giản dễ dàng hóa code, nó được phân phối code bằng phương pháp sử dụng mẫu sau:

#include Động cơ cách mà tôi đã sử dụng trong dự án công trình này là 28BYJ-48, hộp động cơ này được lắp thêm bộ tụt giảm 1/64. Động cơ bên phía trong có 32 bước trên một vòng quay, tức là trục ngoài gồm 2048 bước trên một vòng xoay (64 x 32). Số bước được xác minh trong code như bên dưới đây:

#define STEPS 32và các chân tinh chỉnh của hộp động cơ bước được khái niệm là:

// define stepper motor control châns#define IN1 11#define IN2 10#define IN3 9#define IN4 8// initialize stepper library
Stepper stepper(STEPS, IN4, IN2, IN3, IN1);Chân cổng output biến trở vào cần điều khiển được nối cùng với chân tương tự như Arduino 0, được xác định trong code là:

// joystick pot đầu ra is connected khổng lồ Arduino A0#define joystick A0Khi phím tinh chỉnh và điều khiển được sử dụng, trở thành trở làm việc vị trí vị trí trung tâm và điện áp đầu ra output của nó giao động 2,5V, gọi nó cùng với Arduino sẽ cho giá trị số khoảng tầm 511 (độ phân giải mô-đun Arduino UNO ADC là 10-bit).

Trong code tôi đã thực hiện 3 khoảng:

Cái thứ nhất trong khoảng chừng từ 500 đến 523: vào khoảng thời hạn này, phím tinh chỉnh không được sử dụng và bộ động cơ bước không di chuyển chút nào (tất cả áp sạc ra đều là 0).Khoảng vật dụng hai khi quý hiếm số lớn hơn hoặc bởi 523 thì động cơ dịch chuyển theo hướng thiết bị nhất.Khoảng sau cuối khi giá trị số nhỏ hơn hoặc bằng 500 thì động cơ di chuyển theo hướng khác.

Tốc độ của đụng cơ luôn nằm trong khoảng từ 5 cho 500 vòng / phút. Di chuyển cần điều khiển và tinh chỉnh đến mức buổi tối đa (cả hai hướng) làm cho động cơ dịch chuyển ở vận tốc tối đa.

CODE hoàn chỉnh:

// include Arduino stepper motor library#include // define number of steps per revolution#define STEPS 32// define stepper motor control pins#define IN1 11#define IN2 10#define IN3 9#define IN4 8// initialize stepper library
Stepper stepper(STEPS, IN4, IN2, IN3, IN1);// joystick pot output đầu ra is connected khổng lồ Arduino A0#define joystick A0void setup()void loop() // read analog value from the potentiometer int val = analog
Write(IN1, LOW); digital
Write(IN2, LOW); digital
Write(IN3, LOW); digital
Write(IN4, LOW); else // move the motor in the first direction while (val >= 523) // map the speed between 5 và 500 rpm int speed_ = map(val, 523, 1023, 5, 500); // set motor speed stepper.set
Speed(speed_); // move the motor (1 step) stepper.step(1); val = analog
Read(joystick); // move the motor in the other direction while (val 500) // bản đồ the tốc độ between 5 & 500 rpm int speed_ = map(val, 500, 0, 5, 500); // set motor tốc độ stepper.set
Speed(speed_); // move the motor (1 step) stepper.step(-1); val = analog
Read(joystick); VIDEO DEMO:

Leave a Reply

Your email address will not be published. Required fields are marked *

x

Welcome Back!

Login to your account below

Retrieve your password

Please enter your username or email address to reset your password.