2016-07-27 28 views
3

我在我的覆盆子pi上移動我的步進電機時遇到了一些問題。用easydriver測試步進電機與python代碼

我是新的Python語言,希望如果我能得到幫助移動我的步進電機。

我附上我設置的照片 Stepper Motor Setup

我使用一個NEMA 17步進電機,EasyDriver步進電機驅動器和樹莓派3

Python版本:2.7.9

安裝RPi.GPIO

import RPi.GPIO as gpio 
import time 
import sys 

gpio.setmode(gpio.BCM) 

gpio.setup(14, gpio.OUT) #step 
gpio.setup(15, gpio.OUT) #dir 
gpio.setup(23, gpio.OUT) #ms1 
gpio.setup(24, gpio.OUT) #ms2 

def set_stepper_on(): 
     gpio.output(14, 0) 
     time.sleep(0.05) 
     gpio.output(14, 1) 
     time.sleep(0.05) 

def set_cw(): 
     gpio.output(15, 0) 

def set_anticw(): 
     gpio.output(15, 1) 

def ms_steps(): 
     gpio.output(23, 0) 
     gpio.output(24, 0) 

ms_steps() 
set_cw() 

infinite_loop = True 
steps=0 
while (infinite_loop == True): 
     set_stepper_on() 
     steps+=1 
     print steps 

我不知道爲什麼我的電機不工作... :(

編輯:我好像有許多導遊說,我必須對步進電機和步進關在while循環電機採取了一步,但它仍然無法正常工作... :(

回答

0

我傻!我檢查了我的電機的數據表並做了一個多表測試。 我把A +和A =錯誤地連接到了簡單的驅動器板上......現在它正在工作,我的代碼工作正常。

0

您需要將set_stepper,set_cwset_anticw定義爲函數而不是變量。它現在的工作方式是,您最初將兩個GPIO輸出定義爲false,while循環中沒有任何反應。

def set_stepper(): 
    gpio.output(14, False) 

def set_cw(): 
    gpio.output(15, False) 

def set_anticw(): 
    gpio.output(15, True) 

而且,當時打電話給他們在while循環:

set_stepper() 
set_cw() 
+0

我已經做了像你所指示的,但無濟於事,電機仍然不動,嗯我調用函數,它讀取輸出,通過它應該發送信號向右移動? 我會更新我的代碼到最新的變化,嗯,我不知道什麼是錯的 –