Làm thế nào để dây một động cơ bước?


10

Gần đây tôi đã mua một trong những bảng điều khiển và động cơ bước này - và tôi không thể tìm thấy bất kỳ tài liệu nào về cách kết nối nó với Raspberry Pi - Tôi đang cố gắng sử dụng hướng dẫn AdaFbean và trong khi tôi đã nhận được tất cả các kết nối được thực hiện theo đúng chân gpio được kết nối (đèn led trên bảng điều khiển sáng lên đúng cách, động cơ không làm gì).

Có ai biết nơi tôi có thể tìm kiếm thêm thông tin về cách kết nối pi mâm xôi với động cơ bước không?

Cập nhật: ngày 15 tháng 11 năm 2013 Mã chương trình của tôi là đây

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

#enable_pin = 18
coil_A_1_pin = 4
coil_A_2_pin = 17
coil_B_1_pin = 23
coil_B_2_pin = 24

#GPIO.setup(enable_pin, GPIO.OUT)
GPIO.setup(coil_A_1_pin, GPIO.OUT)
GPIO.setup(coil_A_2_pin, GPIO.OUT)
GPIO.setup(coil_B_1_pin, GPIO.OUT)
GPIO.setup(coil_B_2_pin, GPIO.OUT)

#GPIO.output(enable_pin, 1)

def forward(delay, steps):  
  for i in range(0, steps):
    setStep(1, 0, 1, 0)
    setStep(0, 1, 1, 0)
    setStep(0, 1, 0, 1)
    setStep(1, 0, 0, 1)

def backwards(delay, steps):  
  for i in range(0, steps):
    setStep(1, 0, 0, 1)
    setStep(0, 1, 0, 1)
    setStep(0, 1, 1, 0)
    setStep(1, 0, 1, 0)


def setStep(w1, w2, w3, w4):
  GPIO.output(coil_A_1_pin, w1)
  GPIO.output(coil_A_2_pin, w2)
  GPIO.output(coil_B_1_pin, w3)
  GPIO.output(coil_B_2_pin, w4)

while True:
  delay = raw_input("Delay between steps (milliseconds)?")
  steps = raw_input("How many steps forward? ")
  forward(int(delay) / 1000.0, int(steps))
  steps = raw_input("How many steps backwards? ")
  backwards(int(delay) / 1000.0, int(steps))

Bánh mì của tôi trông như thế này nhập mô tả hình ảnh ở đây

Bảng điều khiển của tôi trông như thế này nhập mô tả hình ảnh ở đây

Tôi có

IN1 => GPIO 4

IN2 => GPIO 17

IN3 => GPIO 23

IN4 => GPIO 24


Các đèn LED đang sáng theo đúng trình tự, với độ trễ 0,5 giây?
John La Rooy

Ước gì tôi có thể bỏ phiếu nhiều lần.
Loko

Họ đang chiếu sáng theo đúng trình tự với độ trễ.
Steve Pháp

Câu trả lời:


6

Bạn cần trình điều khiển xe buýt 3,3 volt đến 5 volt. Bộ động cơ bạn mua là cho Arduino sử dụng 5 volt gpio, rpi sử dụng 3,3 volt, vừa đủ để ngắt đèn led, nhưng không hoạt động. bạn cũng có thể có một bộ điều khiển động cơ chấp nhận các dòng điều khiển 3,3 volt.

Hãy nhớ luôn kiểm tra xếp hạng volt của bạn !!


[Smacks head] Tôi đã không nghĩ về điều đó - có cách nào để khiến bộ điều khiển động cơ hoạt động mà bạn có thể nghĩ đến - tôi nhận ra tôi đang yêu cầu một điều kỳ diệu ở đây, hay tôi chỉ gặp may?
Steve Pháp

@SteveFbler đó là lý do tại sao họ tạo ra các trình điều khiển xe buýt điện áp kép có bộ đệm giữa các điện áp, tôi đã mua một số trên ebay vài tháng trước, nhưng không thể nhớ phần không. chúng là phổ biến và có sẵn
hildred

Nhưng màu đỏ trong ảnh được kết nối với chân 5V, không phải là 3.3. Không nên sao chứ ?? Tôi đã không sử dụng nó cho mình, nhưng tôi nghĩ rằng có một số hãy cẩn thận ..
goldilocks

1
@goldilocks nó phụ thuộc vào chip điều khiển, nhưng có lẽ là không. Tôi đã không tra cứu biểu dữ liệu cho chip điều khiển, nhưng hầu hết các chip điện áp kép sử dụng 3,3v io khi vcc được kết nối với 3,3v. nhưng trước khi thử bạn phải tạo ra shure thì đó là chip điện áp kép, hầu hết là điện áp đơn. cũng có chip điện áp rộng, nhưng điểm mấu chốt là kiểm tra bảng dữ liệu cho chip của bạn.
hildred

0

Các bài báo quảng cáo nói

Mặc dù mã bên dưới đề cập đến chân 18 của đầu nối GPIO đang được sử dụng làm chân Bật, nhưng điều này chỉ được yêu cầu khi sử dụng L293D.

Nếu đèn LED đang sáng và bạn đã kiểm tra kỹ xem bạn có 5V trên dây màu đỏ không, đã đến lúc nghi ngờ động cơ bị lỗi.

Khi động cơ bị ngắt kết nối, sử dụng đồng hồ vạn năng để kiểm tra điện trở giữa mỗi dây và dây màu đỏ. Tất cả chúng nên giống nhau


Tôi đã nhận xét enable_pin và đã sử dụng một động cơ khác, tất cả đều vô ích. Tôi đang thử phương pháp tiếp cận hôm nay - cảm ơn vì sự giúp đỡ của bạn
Steve French

Tôi đã kiểm tra điện trở - không có sự khác biệt về điện trở - rất khó hiểu.
Steve Pháp

Điều gì sẽ là một cách tốt để thử nghiệm 5v trên dây màu đỏ? Tôi đã cố gắng đặt đồng hồ vạn năng trực tiếp lên đó, nhưng xung dường như không đủ lâu để đăng ký.
Steve Pháp

0

Đầu tiên, bạn đang sử dụng nguồn điện nào? Trong cấu hình tôi thấy, cùng một Vcc được sử dụng để lái RPi, động cơ và bảng (nhảy ngắn). Tôi ngạc nhiên khi không thiết lập lại Raspberry (vẽ quá nhiều từ + 5V có xu hướng làm điều đó) nhưng tôi thực sự không biết các đặc tính của động cơ - vì vậy, có lẽ?

Bạn có thể có được bước để di chuyển (tối thiểu, các bước đơn lẻ) bằng cách kết nối + 5V từ nguồn điện đến Đỏ từ động cơ và GND với 4 đầu nối tiếp theo không?

Nếu đèn LED sáng lên và động cơ không di chuyển, có vẻ như nó không đủ dòng điện. Nếu đây là trường hợp, hãy cung cấp nguồn điện mạnh hơn hoặc (khuyến nghị) thêm một PSU riêng để cấp nguồn cho động cơ - tháo jumper và gắn Vcc vào pin ngoài cùng và kết nối GND với cùng một dòng trên bảng điều khiển như dây "-" (mặt bằng chung, không ngắt kết nối dây đã có ở đó.)

(có một khả năng nhỏ là có gì đó không đúng với bảng. Bạn có thể cung cấp một bức ảnh tốt về mặt trái của bảng không? (mặt hàn)?


Tôi có thể khiến động cơ bước di chuyển trực tiếp - Tôi đang thử phương pháp khác ngay bây giờ.
Steve Pháp

Chỉ cần thử phương pháp vcc - kết quả tương tự. Có lẽ những bảng này không thể được sử dụng với pi vì một số lý do.
Steve Pháp

Nếu đèn LED sáng đúng, thì bảng hoạt động đúng. Động cơ bị lỗi hoặc không có đủ dòng điện (hoặc, không chắc là dây / đầu nối ở phía động cơ bị hỏng.) Bạn đã thử nếu động cơ di chuyển mà không sử dụng bảng, chỉ kết nối trực tiếp với các tiếp điểm của nó?
SF.

0

Nhìn vào mã AdaFnut và của bạn, có vẻ như trình tự bước là sai, đặc biệt có vẻ như bạn cần phải lái hai chân cùng một lúc chứ không chỉ một.

Tôi nghĩ rằng trình tự sau sẽ hoạt động dựa trên mã AdaFnut:

# Define simple sequence
StepCount1 = 4
Seq1 = []
Seq1 = range(0, StepCount1)
Seq1[0] = [1,0,1,0]
Seq1[1] = [0,1,1,0]
Seq1[2] = [0,1,0,1]
Seq1[3] = [1,0,0,1]

Tôi đã phải sao chép rằng trong lỗi chương trình thực tế của chương trình là trình tự bạn có.
Steve Pháp

0

Tôi đã làm theo hướng dẫn ở đây http://www.raspberrypi-spy.co.uk/2012/07/stepper-motor-control-in-python/ , nhóm các chân GPIO đẹp, nhưng kết thúc tại stackexchange vì xe máy đã không làm gì. Ngoại trừ nó là. Khi nhặt lên tôi có thể cảm thấy một "nhịp tim" nhỏ mỗi khi đèn LED thay đổi, tôi đã thay đổi tham số WaitTime từ 0,5 thành nhỏ hơn và nhỏ hơn cho đến khi 0,001 cho phép xoay hoàn toàn trong 8,5 giây.

Nhưng tôi đã thay đổi loại trình tự thành 2 (nhà sản xuất) vì loại 1 dường như thỉnh thoảng dừng động cơ ngay cả với một "nhịp tim" đang hoạt động.

Tôi đã thay đổi mã để tôi có thể kiểm tra số bước mà một vòng quay đầy đủ đã thực hiện và xây dựng một công tắc dòng lệnh để xoay theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ.

Với WaitTime ở mức 0,001 đang chạy CW thử nghiệm và sau đó sử dụng cùng một số bước, CCW đã tạo ra một số lỗi nhỏ, nghĩa là nó không xếp hàng ở nơi nó đã bắt đầu.

Đặt WaitTime thành 0,01 cho phép tôi hiển thị thực hiện lặp lại 4100 bước hoặc CW hoặc CCW luôn kết thúc tại cùng một điểm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.