Động cơ bước 28BYJ-48 với Raspberry Pi Pico sử dụng MicroPython

Động cơ bước 28BYJ-48 với Raspberry Pi Pico sử dụng MicroPython

Giới thiệu động cơ bước

Động cơ bước là động cơ không chổi than DC và đồng bộ. Chúng xoay theo các bước rời rạc của các giá trị được xác định trước và có thể xoay cả theo chiều kim đồng hồ và ngược chiều kim đồng hồ. Không giống như các động cơ DC khác, chúng cung cấp điều khiển vị trí chính xác theo số bước trên mỗi vòng quay mà động cơ được thiết kế. Điều đó có nghĩa là một cuộc cách mạng hoàn chỉnh của động cơ bước được chia thành một số bước rời rạc. Chúng thường được sử dụng trong máy CNC, robot, máy in 2D và 3D.

Đối với hướng dẫn này, chúng tôi sẽ sử dụng động cơ bước 28BYJ-48 và điều khiển nó thông qua trình điều khiển động cơ ULN2003.

Động cơ bước 28BYJ-48

Đây là động cơ bước được sử dụng phổ biến nhất trong công nghiệp công suất thấp và nổi tiếng nhất trong các dự án sở thích.

Động cơ bước 8BYJ-48

28BYJ-48 là động cơ bước 5V đơn cực lấy tín hiệu điện làm đầu vào và quay bằng cách chuyển đổi các tín hiệu đầu vào này thành vòng quay cơ học. Nó bao gồm 4 cuộn dây cố định được đánh giá ở +5V. Những cuộn dây này được gọi là stato và tạo ra một vòng xung quanh rôto. Do điện áp hoạt động 5 volt, chúng ta có thể dễ dàng điều khiển động cơ này từ bất kỳ vi điều khiển nào như Raspberry Pi Pico, ESP32, ESP8266, Arduino hoặc TM4C123 Tiva Launchpad, v.v. Nó có bộ bánh răng giảm 1/64 và do đó di chuyển theo 512 bước chính xác cho mỗi vòng quay. Những động cơ này im lặng so với các động cơ DC và động cơ servo khác. Bạn có thể đạt được điều khiển vị trí một cách dễ dàng mà không cần thêm mạch và các thành phần.

Góc sải chân

Động cơ bước này có góc sải 5.625 độ. Điều đó có nghĩa là 28BYJ-48 sẽ hoàn thành một cuộc cách mạng trong (360 / 5.625) 64 bước bằng cách thực hiện từng bước một và trong một bước, nó bao gồm khoảng cách 5.625 độ. Tuy nhiên, động cơ bước cũng có thể được sử dụng ở chế độ toàn bước. Ở chế độ toàn bước, góc của mỗi bước là 11,25 độ. Điều đó có nghĩa là động cơ hoàn thành một cuộc cách mạng của nó trong 32 bước thay thế (360 / 11.25).

Do đó, để di chuyển một bước tiến hoặc lùi, các cuộn dây của động cơ cung cấp năng lượng với một trình tự cụ thể.

Các bước mỗi cuộc cách mạng & Góc bước

Trục đầu ra của động cơ bước đặc biệt này được dẫn động thông qua tỷ số truyền 64: 1 còn được gọi là tỷ lệ thay đổi tốc độ. Điều này cho thấy rằng sau khi động cơ bên trong quay 64 lần thì trục sẽ hoàn thành một vòng quay.

Do đó chúng ta có thể kết luận rằng:

  • Để hoàn thành một vòng quay đầy đủ của trục, tổng cộng 2048 bước sẽ được yêu cầu. Đây được gọi là các bước trên mỗi vòng quay được tính bằng cách nhân 32 và 64 (32×64 = 2048).

  • Hơn nữa, điều này sẽ cho phép động cơ có góc bước 360º/2048 bước = 0,18º / bước.

Kỹ thuật

  • Nó là một cuộn dây 5 chân đơn cực với điện áp DC định mức là 5V.

  • Có 4 pha với góc sải chân 5,625°/64.

  • Tỷ lệ biến đổi tốc độ là 1/64

  • Tần số của động cơ bước này là 100Hz và công suất cách điện là 600VAC / 1mA / 1s.

  • Phương pháp nửa bước được khuyến nghị để lái động cơ bước này.

  • Giá trị của mô-men xoắn kéo cho động cơ bước là 300 gf-cm.

Sơ đồ chân

Hình dưới đây cho thấy sơ đồ sơ đồ chân của động cơ bước 28BYJ-48. Nó bao gồm 5 chân. Trong số 5 chân này, bốn chân được sử dụng để cung cấp logic trình tự cho các cuộn dây và một chân là chân cung cấp +5 volt.

28BYJ-48 chân cuộn dây động cơ bước

Chi tiết cấu hình pin

Số pin

Số cuộn dây

Màu

1

4

Xanh

2

2

Hồng

3

3

Vàng

4

1

Cam

5

Vcc

Đỏ

 

Cuộn dây 1-Cuộn dây 4: Đây là những cuộn dây được sử dụng để điều khiển trình tự bước của động cơ bước. Một đầu của mỗi cuộn dây được kết nối với +5V và đầu kia sẽ được kết nối với đầu ra trình điều khiển ULN2003.

Vcc: Được sử dụng để áp dụng nguồn cung cấp +5 volt cho động cơ bước. Điện áp này xuất hiện trên các cuộn dây khi một cuộn dây cụ thể được nối đất thông qua một chuỗi điều khiển.

Mô-đun trình điều khiển động cơ bước ULN2003

Để sử dụng động cơ bước 28BYJ-28 với Raspberry Pi Pico, chúng tôi sẽ được yêu cầu gắn nó với trình điều khiển động cơ ULN2003. Điều này là cần thiết vì mức tiêu thụ hiện tại của 28BYJ-48 là khoảng 240mA. Điều đó có nghĩa là dòng điện cần thiết để dẫn động cuộn dây bằng cách áp dụng một chuỗi tín hiệu điều khiển cũng gần 200mA. Các chân của Raspberry Pi Pico không thể cung cấp dòng điện có cường độ này. Do đó, chúng ta cần một trình điều khiển ULN2003 chuyển đầu ra dòng điện thấp của chân Raspberry Pi Pico thành dòng điện cao hơn đáp ứng yêu cầu của tín hiệu điều khiển động cơ bước.

Trình điều khiển ULN2007

Bo mạch đột phá ULN2003 có dòng điện và điện áp cao hơn một bóng bán dẫn đơn lẻ và do đó nó có thể điều khiển động cơ bước một cách dễ dàng bằng cách kích hoạt Raspberry Pi Pico của chúng tôi.

Mô-đun trình điều khiển động cơ bước Pinout

IC trình điều khiển ULN2003 bao gồm 7 đầu ra bóng bán dẫn cặp Darlington. Mỗi đầu ra có thể lái tải 500mA và 50V. Đầu vào cho mỗi bóng bán dẫn cặp 7 Darlington sẽ là tín hiệu từ vi điều khiển của chúng tôi. Để điều khiển động cơ bước, bảng điều khiển này chỉ sử dụng bốn chân đầu vào (IN1, IN2, IN3 và IN4).

Sơ đồ sau đây cho thấy bảng điều khiển động cơ ULN2003:

ULN2003 Stepper Motor driver board

Tiêu đề đầu nối động cơ được sử dụng để kết nối động cơ bước. Nó cung cấp đầu ra từ bốn bóng bán dẫn cặp Darlington.

Ghim

Mô tả:__________

1N1 đến IN4

Đây là những chân đầu vào được sử dụng để cung cấp tín hiệu điều khiển cho động cơ bước như trình tự điều khiển. Chúng tôi sẽ kết nối các chân này với các chân GPIO của Raspberry Pi Pico.

Vcc và GND

Vcc là một chân cung cấp điện và nó được sử dụng để cung cấp năng lượng 5 volt cho động cơ bước từ nguồn điện bên ngoài.

Động cơ bước 28BYJ-48 yêu cầu dòng điện 240mA để hoạt động và nó cũng tiêu thụ điện năng ở điều kiện không tải. Do đó, không nên cấp nguồn cho động cơ bước 28BYJ-48 trực tiếp từ bất kỳ bộ vi điều khiển nào. Thay vào đó sử dụng nguồn điện 5 volt bên ngoài.

Giao diện Raspberry Pi Pico với Động cơ bước 28BYJ-48 và trình điều khiển động cơ ULN2003

Để kết nối Raspberry Pi Pico với động cơ bước và trình điều khiển, chúng tôi sẽ sử dụng các chân đầu vào IN1-IN4, chân cung cấp điện và tiêu đề kết nối động cơ. Động cơ bước 28BYJ-48 đã được gắn với trình điều khiển động cơ thông qua tiêu đề đầu nối động cơ. Bây giờ chúng tôi sẽ kết nối bốn chân GPIO của bảng Raspberry Pi Pico với các chân đầu vào (IN1-IN4) của trình điều khiển. Chúng tôi đã sử dụng các chân GPIO sau để kết nối với từng chân đầu vào.

Raspberry Pi Pico

Trình điều khiển động cơ

GP2 ·

TRONG 1

GP3 ·

TRONG 2

GP4 ·

TRONG 3

GP5 ·

TRONG 4

Bạn cũng có thể sử dụng bất kỳ chân Pi Pico GPIO phù hợp nào khác.

Ngoài ra, chúng tôi sẽ cấp nguồn cho trình điều khiển động cơ bằng nguồn điện bên ngoài 5V. Cả hai căn cứ của nguồn điện và vi điều khiển sẽ là điểm chung.

Sơ đồ kết nối được thể hiện trong hình dưới đây.

Raspberry Pi Pico với Động cơ bước 28BYJ-48 và sơ đồ kết nối Trình điều khiển động cơ ULN2003

Raspberry Pi Pico với Động cơ bước 28BYJ-48 và Trình điều khiển động cơ ULN2003

MicroPython Script: Động cơ bước 28BYJ-48 với Raspberry Pi Pico

Mã MicroPython này sẽ giúp chúng ta xoay động cơ bước theo chiều kim đồng hồ. Để làm được điều đó, chúng tôi phải cung cấp một chuỗi các giá trị (1 (trạng thái cao), 0 (trạng thái thấp)) cho các chân động cơ bước.

from machine import Pin

from time import sleep

 

IN1 = Pin(2,Pin.OUT)

IN2 = Pin(3,Pin.OUT)

IN3 = Pin(4,Pin.OUT)

IN4 = Pin(5,Pin.OUT)

 

pins = [IN1, IN2, IN3, IN4]

 

sequence = [[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]

 

while True:

    for step in sequence:

        for i in range(len(pins)):

            pins[i].value(step[i])

            sleep(0.001)

Mã hoạt động như thế nào?

Chúng ta sẽ bắt đầu bằng cách nhập lớp Pin từ mô-đun máy và lớp ngủ từ mô-đun thời gian.

from machine import Pin

from time import sleep

Định cấu hình các chân GPIO được kết nối với các chân IN1, IN2, IN3, IN4 làm chân đầu ra. Điều này được thực hiện bằng cách sử dụng phương thức Pin() và truyền số GPIO làm tham số đầu tiên và Pin.OUT làm tham số thứ hai.

Tiếp theo, tạo một mảng gọi là 'chân' bao gồm bốn chân đầu ra IN1, IN2, IN3 và IN4.

IN1 = Pin(2,Pin.OUT)

IN2 = Pin(3,Pin.OUT)

IN3 = Pin(4,Pin.OUT)

IN4 = Pin(5,Pin.OUT)

 

pins = [IN1, IN2, IN3, IN4]

Sau đó, tạo một mảng 2d được gọi là 'chuỗi' để giữ chuỗi các giá trị mà chúng tôi sẽ cung cấp cho các chân động cơ bước. Các giá trị này là 1 và 0 cho biết trạng thái cao và trạng thái thấp.

Lưu ý: Đảo ngược dãy số này sẽ di chuyển động cơ bước theo hướng ngược chiều kim đồng hồ.

sequence = [[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]

Bên trong vòng lặp vô hạn, chúng ta sẽ bước qua chuỗi và đặt mỗi chân giá trị của chuỗi theo thứ tự. Điều này sẽ được thực hiện sau khi trì hoãn 0,001 giây để đảm bảo chuyển động đúng của động cơ bước.

while True:

    for step in sequence:

        for i in range(len(pins)):

            pins[i].value(step[i])

            sleep(0.001)

Cuộc biểu tình

Để xem bản demo của đoạn mã trên, hãy sao chép mã này vào Thonny IDE và tải nó lên Raspberry Pi Pico. Ngoài ra, gắn động cơ bước và ULN2003 với Raspberry Pi Pico theo sơ đồ kết nối ở trên.

 

 

Bài viết cùng chuyên mục

NHANH

NHANH

Vì Đổi mới liên tục nên Nhanh hơn

ĐÚNG

ĐÚNG

Coi trọng và ưu tiên việc làm Đúng

ĐỦ

ĐỦ

Tìm và mua Đủ Đơn hàng hơn

KỊP THỜI

KỊP THỜI

Hiệu suất tối ưu bởi Kịp Thời hơn