2016-07-27 66 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

我已经做了像你所指示的,但无济于事,电机仍然不动,嗯我调用函数,它读取输出,通过它应该发送信号向右移动? 我会更新我的代码到最新的变化,嗯,我不知道什么是错的 –