實驗1:arduino pwm的簡單調用

我之前打算用來驅動無刷電機的PCA9685這塊芯片的PMW輸出頻率很低,最高只有1500Hz左右,而且通訊接口是I2c,要想生成一個自己想要的pwm波形,沒有幾十條語句下不來的。然后也沒有找到其他能夠替代PCA9685的類似的IC,所以入手了Arduino mega2560(就是沖著它的多路高速pwm輸出來的),高達31.25KHz的頻率,驅動電機可以避免人耳可聞的噪音(當然如果你要嘗試用電機演奏音樂,這個頻率太高了),而且編程調用也很簡單,唯一麻煩的就是搞清楚哪些針腳對應哪個計時器控制寄存器,哪個計時器支持哪種頻率。這里我參考了這個文章,地址: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進行了設置,設置頻率為31.25KHz,timer4有三個輸出針腳,分別是6、7、8。loop()里面的100,150,200是用來設置占空比的,100%對應255,大家可以看看波形圖分析一下對應我圖中測試的是哪個針腳。


下面是各種圖:

這是用來測量波形的示波器,usb接口的,配合電腦上的軟件就是個電子示波器,2個通道,淘寶收的。

圖片發自簡書App

這是極簡的測試電路

圖片發自簡書App

這是看測試結果的示波器軟件

圖片發自簡書App
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容