我之前打算用來驅(qū)動無刷電機的PCA9685這塊芯片的PMW輸出頻率很低,最高只有1500Hz左右内颗,而且通訊接口是I2c盒揉,要想生成一個自己想要的pwm波形盗冷,沒有幾十條語句下不來的。然后也沒有找到其他能夠替代PCA9685的類似的IC得封,所以入手了Arduino mega2560(就是沖著它的多路高速pwm輸出來的)埋心,高達31.25KHz的頻率,驅(qū)動電機可以避免人耳可聞的噪音(當然如果你要嘗試用電機演奏音樂忙上,這個頻率太高了)拷呆,而且編程調(diào)用也很簡單,唯一麻煩的就是搞清楚哪些針腳對應(yīng)哪個計時器控制寄存器疫粥,哪個計時器支持哪種頻率茬斧。這里我參考了這個文章,地址:http://blog.csdn.net/EAIBOT/article/details/51499453
程序代碼:
void setup() {
TCCR4B = (TCCR4B & 0xF8)|0x01;
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
}
void loop() {
analogWrite(6,100);
analogWrite(7,150);
analogWrite(8,200);
}
setup()里對timer4進行了設(shè)置梗逮,設(shè)置頻率為31.25KHz,timer4有三個輸出針腳项秉,分別是6、7慷彤、8娄蔼。loop()里面的100,150,200是用來設(shè)置占空比的,100%對應(yīng)255,大家可以看看波形圖分析一下對應(yīng)我圖中測試的是哪個針腳底哗。
下面是各種圖:
這是用來測量波形的示波器岁诉,usb接口的,配合電腦上的軟件就是個電子示波器跋选,2個通道唉侄,淘寶收的。
這是極簡的測試電路
這是看測試結(jié)果的示波器軟件