完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一个月前开始玩树莓派3,由于树莓派是基于linux系统,用Python语言来控制。所以入门Python语言,当然最爽的就是驱动电机,根据自己的想法来控制。不得不说,Python语言控制很有优势,代码简单而且没有很多繁琐的逻辑。所以近些年他上升的快也是有道理的。一个让我印象最深的就是不需要先变量声明,跟C语言完全不一样。据了解,如果做游戏,该语言是不二之选。最后将电机的控制整理如下:
#!/usr/bin/python #coding: utf8 import RPi.GPIO as GPIO import time import sys from array import * GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) steps = int(sys.argv[1]); clockwise = int(sys.argv[2]); arr = [0,1,2,3]; if clockwise!=1: arr = [3,2,1,0]; ports = [40,38,36,35] # GPIO 21(Pin 40) GPIO 20(Pin 38) GPIO 16(Pin 36) GPIO 19(Pin 35) for p in ports: GPIO.setup(p,GPIO.OUT) for x in range(0,steps): for j in arr: time.sleep(0.01) for i in range(0,4): if i == j: GPIO.output(ports,True) else: GPIO.output(ports,False) 运行方法:执行 python motor.py 90 0 可以顺时针转动大约80度。 执行 python motor.py 90 1 则可逆时针转动大约80度。 说明:该程序可以用来控制小电流的步进电机,也可以用来控制无刷电机(只需要将节拍改掉即可) 也可参考下面的代码,利用L298N驱动板来控制,并实现PWM调控。树莓派的sleep是毫秒级的。 import RPi.GPIO as gpioimport time, sys #我用的第12个引脚pin = 12 gpio.setmode(gpio.BOARD)gpio.setup(pin, gpio.OUT) #频率设置为400Hzp = gpio.PWM(pin, 400)p.start(0) #占空比从10开始,逐渐加到90dc = 10for i in range(40): dc += 2 print ‘dc:’, dc p.ChangeDutyCycle(dc) time.sleep(0.3);p.stop()gpio.cleanup() |
|
|
|
只有小组成员才能发言,加入小组>>
2362 浏览 0 评论
8629 浏览 4 评论
36351 浏览 18 评论
4961 浏览 0 评论
24059 浏览 34 评论
1310浏览 2评论
1540浏览 1评论
1916浏览 1评论
1372浏览 0评论
1803浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 01:20 , Processed in 1.215012 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号