完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、硬件
sudo apt-get install python3-rpi.gpio 1 电机控制程序 import time import RPi.GPIO as GPIO #定义树莓派BCM编码引脚 Motor_A_EN = 16 Motor_A_Pin1 = 20 Motor_A_Pin2 = 21 #引脚初始设置 def setup(): global pwm_A GPIO.setwarnings(False) #禁用监测编码为非默认值时的警告 GPIO.setmode(GPIO.BCM) #指定编码规则 #设置引脚模式为输出 GPIO.setup(Motor_A_EN, GPIO.OUT) GPIO.setup(Motor_A_Pin1, GPIO.OUT) GPIO.setup(Motor_A_Pin2, GPIO.OUT) motorStop() #将所有引脚置为低电平 try: #捕获try后面语句的异常,如果有异常执行except语句后的 #将使能引脚初始化为PWM实例,频率为1000Hz;频率是指PWM脉宽调制的时间倒数 pwm_A = GPIO.PWM(Motor_A_EN, 1000) except: pass #无意义保证代码的完整性 def motorStop(): GPIO.output(Motor_A_Pin1, GPIO.LOW) GPIO.output(Motor_A_Pin2, GPIO.LOW) GPIO.output(Motor_A_EN, GPIO.LOW) def motor_A(direction,speed): if direction == 1: GPIO.output(Motor_A_Pin1,GPIO.LOW) GPIO.output(Motor_A_Pin2, GPIO.HIGH) pwm_A.start(0) #设置开始占空比为0 pwm_A.ChangeDutyCycle(speed) #改变占空比 占空比范围0-100 elif direction == 0: GPIO.output(Motor_A_Pin1, GPIO.HIGH) GPIO.output(Motor_A_Pin2, GPIO.LOW) pwm_A.start(0) pwm_A.ChangeDutyCycle(speed) else: GPIO.output(Motor_A_Pin1, GPIO.LOW) GPIO.output(Motor_A_Pin2, GPIO.LOW) setup() motor_A(1,100) time.sleep(3) motorStop() time.sleep(3) motor_A(0,100) time.sleep(3) #释放引脚资源 motorStop() GPIO.cleanup() |
|
|
|
只有小组成员才能发言,加入小组>>
2460 浏览 0 评论
9278 浏览 4 评论
36960 浏览 19 评论
5055 浏览 0 评论
24971 浏览 34 评论
1606浏览 2评论
1859浏览 1评论
2305浏览 1评论
1636浏览 0评论
617浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-13 16:36 , Processed in 1.066807 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号