昨天折騰了一個晚上電機就是一直每隔兩秒鍾響一次,意思就是沒有收到任何油門信號。 我只把電調的信號線接到樹莓派上的pwm引腳上,只接了這一根線。所有問題都因為這一根線引的貨。
切記:一定要把電調信號線的gnd線接上要不然根本沒法設定行程。
要注意幾個問題:
1.首次接通電調必須設定行程,行程設定過程中可能會出現連續急促的 滴,滴,滴,滴,大概有N聲,這是因為油門行程設置最低點的時候油門最低點的值太低了,我這里用30的占空比來設定最低行程
2.最好使用400hz頻率來設置,因為400hz的周期是2.5ms ,而電調的中油門的范圍是1.0-20ms之間,請看好了,是之間。也就是1.1-1.9ms 所以400hz頻率是最接近這個范圍的,當然你也可以測試更高的頻率.
3.電調必須接上電機,然后在通電,單接電調是無法調試的(寫給小白)
4.行程設定過程中,是必須限設置油門上限,然后在設置油門下限。油門上線設置成功會有2聲連續的"嗶嗶 ",然后這時候是設置油門下限,設置成功會有兩聲連續"嗶嗶"和一聲長的嗶,到此設定完成
motor_pin = 12;
GPIO.setup(motor_pin, GPIO.OUT);
motor = GPIO.PWM(motor_pin, 400)
def myprint(msg):
sys.stdout.write(msg+"\n");
def changePower(power):
motor.ChangeDutyCycle(0.002/(1.0/power*100))
motor.start(0)
#最高油門設定,這里最高油門的占空比是96
motor.ChangeDutyCycle(96)
#changePower(90)
time.sleep(3);
myprint("hight is finish");
#最低油門設定 占空比30
motor.ChangeDutyCycle(30)
#changePower(10)
time.sleep(6);
#motor.ChangeDutyCycle(0)
#changePower(10)
#time.sleep(3);
myprint("low is finish");
#設定完畢,測試油門,一點一點增加
for dc in range(20, 80, 1):
motor.ChangeDutyCycle(dc)
myprint("dc:"+str(dc))
time.sleep(0.3);
#time.sleep(10)
motor.stop()
