树莓派3+python+wiringpi 生成PWM 驱动电调

来源:互联网 发布:子午觉知乎 编辑:程序博客网 时间:2024/06/02 15:14
  1. 材料:树莓派3,wiringpi,电源,HobbyWing电调;
  2. 接口:电调的白色线接GPIO21,黑色线接地;
  3. 代码
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个档位,对于精确控制不利,后面需要解决这个问题。

0 0
原创粉丝点击