折騰了2個晚上無刷電調(ESC),電機終於轉起來了,特此記錄一下


昨天折騰了一個晚上電機就是一直每隔兩秒鍾響一次,意思就是沒有收到任何油門信號。 我只把電調的信號線接到樹莓派上的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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM