重要的事情写在最前面:
注意:驱动器的控制端口的电平是否兼容3.3V,因为树莓派的脉冲信号高电平是3.3V。如不匹配则需电平转化器
接线图,参考树莓派——步进电机+驱动器 篇 - 简书 (jianshu.com)
简单示例一下
#! /usr/bin/python
# ! -*- coding: utf-8 -*-
# @Author : ***
# @File : motor_control.py
# @Time : 2021/11/27 16:52
import RPi.GPIO as GPIO
import time
pul = 26
dir = 19
ena = 13
motor_forward = GPIO.HIGH
motor_back = GPIO.LOW
def init_pin():
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
# 设置PUL,DIR,ENA 端口模式为输出
GPIO.setup(pul,GPIO.OUT)
GPIO.setup(dir, GPIO.OUT)
GPIO.setup(ena, GPIO.OUT)
print('初始化')
GPIO.setup(ena, GPIO.LOW)
def motor(speed,direction):
# 电机1 pwm 实例化 并设置速度
pwm_motor = GPIO.PWM(pul, speed)
# 设置初始占空比
pwm_motor.start(50)
# 设置方向
GPIO.setup(dir, direction)
# 打开使能端口
GPIO.setup(ena, GPIO.HIGH)
if __name__ == '__main__':
init_pin()
motor(speed=1000,direction=motor_forward)
time.sleep(10)
# 停止,通过使能端,也可以重新设置pwm
GPIO.setup(ena, GPIO.LOW)
print('电机停止')
注:
1、若果多的电机运动模式相同,可以设置统一的PWM,然后使用ENA使能来开启关闭单个电机
下一篇,研究一下电机pwm和电机速度的关系