目录
介绍
步进电机
- 步进电机是一种无刷直流电机,可将360°的完整旋转角度分成相等的步数。
- 通过施加一定量的控制信号来旋转电动机。可以通过改变施加控制信号的速率来改变旋转速度。
- 有关步进电机及其控制顺序及其使用方法的更多信息,请参阅传感器和模块部分中的步进电机主题。
- Raspberry Pi的GPIO可用于控制步进电机的旋转。我们可以在Raspberry Pi的GPIO引脚上生成一系列控制信号。
电路连接图
步进电机与Raspberry Pi连接
例
让我们顺时针和逆时针方向交替旋转步进电机。
- 在这里,我们使用的是六线单极步进电机。控制该步进电机只需要四根电线。步进电机的两根中心抽头线连接到5V电源。
- ULN2003驱动器用于驱动单极步进电机。
- 我们将使用Python语言将Stepper Motor与Raspberry Pi连接起来。在此程序中,我们使用键盘键作为输入来选择电机旋转方向(即顺时针或逆时针)。
注意:要找到绕组线圈及其中心抽头引线,请测量引线之间的电阻。从中心引线开始,与绕组端之间的电阻相比,我们将获得一半的电阻值。
Python程序
'''
Stepper Motor interfacing with Raspberry Pi
https:///www.qutaojiao.com
'''
import RPi.GPIO as GPIO
from time import sleep
import sys
#assign GPIO pins for motor
motor_channel = (29,31,33,35)
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
#for defining more than 1 GPIO channel as input/output use
GPIO.setup(motor_channel, GPIO.OUT)
motor_direction = input('select motor direction a=anticlockwise, c=clockwise: ')
while True:
try:
if(motor_direction == 'c'):
print('motor running clockwise\n')
GPIO.output(motor_channel, (GPIO.HIGH,GPIO.LOW,GPIO.LOW,GPIO.HIGH))
sleep(0.02)
GPIO.output(motor_channel, (GPIO.HIGH,GPIO.HIGH,GPIO.LOW,GPIO.LOW))
sleep(0.02)
GPIO.output(motor_channel, (GPIO.LOW,GPIO.HIGH,GPIO.HIGH,GPIO.LOW))
sleep(0.02)
GPIO.output(motor_channel, (GPIO.LOW,GPIO.LOW,GPIO.HIGH,GPIO.HIGH))
sleep(0.02)
elif(motor_direction == 'a'):
print('motor running anti-clockwise\n')
GPIO.output(motor_channel, (GPIO.HIGH,GPIO.LOW,GPIO.LOW,GPIO.HIGH))
sleep(0.02)
GPIO.output(motor_channel, (GPIO.LOW,GPIO.LOW,GPIO.HIGH,GPIO.HIGH))
sleep(0.02)
GPIO.output(motor_channel, (GPIO.LOW,GPIO.HIGH,GPIO.HIGH,GPIO.LOW))
sleep(0.02)
GPIO.output(motor_channel, (GPIO.HIGH,GPIO.HIGH,GPIO.LOW,GPIO.LOW))
sleep(0.02)
余下程序:
本教程完整程序: