thumbd72034 發表於 2015-10-8 11:31:54

請問如何修改analogWrite 改變PWM輸出頻率

請問arduino所產生的PWM要如何調整頻率呢?

arduino analogWrite內定的PWM時間週期似乎2ms輸出PWM為500hz




目前是想把500hz,調降到100hz
有哪些方法呢?

超新手 發表於 2015-10-8 12:48:42

http://playground.arduino.cc/Code/PwmFrequency
在UNO 上試過 OK, 其他就不一定了
不過他的倍數有限制, 大部份是 2^N 次方
裡面有寫各接腳的限制

hrean 發表於 2015-11-2 15:00:17

這個主題我之前有研究過
在Arduino現有的API是不能改頻率
只能直接改Atmega MCU的暫存器,改變除頻的量
以Arduino UNO為例,pin 5 的 PWM 輸出是從 timer 0 所產生的
原始的除頻量是64
雖然可以除頻量,不過不能微調,只有幾個選項可以選 (如下表)

要如何才能夠改CS00~CS02?
可以使用bitWrite()函式來做,範例如下:

bitWrite(TCCR0B, CS00, 1);
bitWrite(TCCR0B, CS01, 0);
bitWrite(TCCR0B, CS02, 1);//修改除頻量為 1024
頁: [1]
查看完整版本: 請問如何修改analogWrite 改變PWM輸出頻率