材料:树莓派3,wiringpi,电源,HobbyWing电调;接口:电调的白色线接GPIO21,黑色线接地;代码:
import wiringpi as wiringpifrom time import sleep;#from wiringpi import GPIOwiringpi.wiringPiSetupGpio()#import wiringpi as wiringpiwiringpi.pinMode(21,1)wiringpi.digitalWrite(21,0)wiringpi.pwmSetClock(2)W=raw_input("Input 1-200 :")i=wiringpi.softPwmCreate(21,0,200)wiringpi.softPwmWrite(21,int(W))W=raw_input("Input 1-200 :")wiringpi.softPwmWrite(21,int(W))W=raw_input("Input 1-200 :")wiringpi.softPwmWrite(21,int(W))W=raw_input("Input 1-200 :")wiringpi.softPwmWrite(21,int(W))W=raw_input("Input 1-200 :")wiringpi.softPwmWrite(21,int(W))W=raw_input("Input 1-200 :")wiringpi.softPwmWrite(21,int(W))W=raw_input("Input 1-200 :")wiringpi.softPwmWrite(21,int(W))W=raw_input("Input 1-200 :")wiringpi.softPwmWrite(21,int(W))while 1:sleep(30)print "goodbye"
4.操作
1)先给树莓派上电,运行程序,输入参数20,此时树莓派通过GPIO21输出周期为20ms,脉宽为2ms的方波(相当于油门最大);
2)电调上电,“哔哔”两声后,3秒内将输入输入参数10,此时树莓派通过GPIO21输出周期为20ms,脉宽为1ms的方波(相当于油门最小);
3)油门设定完毕,将参数设定成11,电机开始以较低速度旋转,逐渐提高输入参数,转速随着升高,参数为20时达到最高速。
5.总结
用wiringpi的softPWM,PWM的Clock是固定不变的(100us),而我们需要的PWM周期20ms,softPwmCreate中设置200就好了。问题在于softPwmWrite函数中的参数均为整数,转速10到20可调,也就是共11个档位,对于精确控制不利,后面需要解决这个问题。
如果觉得《树莓派3+python+wiringpi 生成PWM 驱动电调》对你有帮助,请点赞、收藏,并留下你的观点哦!