Robofun 機器人論壇

標題: 關於Arduino的PWM脈波寬度調變 [打印本頁]

作者: 豪豪    時間: 2014-10-10 15:54
標題: 關於Arduino的PWM脈波寬度調變
想請問各位前輩~! 我想要用Arduino UNO腳位做PWM的輸出(輸出是接 "示波器")  我有查閱一些資料 知道arduino在做PWM輸出時,頻率大約是500HZ,請問是否能改變arduino在做PWM輸出時的"頻率",例如將頻率改成10kHZ,還是說它的頻率是固定的??
作者: io64227    時間: 2014-10-10 19:19
不是固定
是用指令 analogWrite
設定
作者: 豪豪    時間: 2014-10-11 00:04
回復 2# io64227
analogWrite是改變波寬嗎??
作者: io64227    時間: 2014-10-11 15:35
yes
作者: 豪豪    時間: 2014-10-11 17:47
謝謝你~! 我知道了~ 不過我是想要改變它的"頻率",不是改變它的"波寬" 它內部本身有500Hz,我想請問能不能將他改成10kHz ??
作者: io64227    時間: 2014-10-11 18:02
頻率
要自己寫 TIMEER
輸出方波
作者: pizg    時間: 2014-11-2 11:55
回復 5# 豪豪


   你可以參考這篇文章http://arduino-info.wikispaces.com/Arduino-PWM-Frequency
作者: havy    時間: 2014-11-21 13:06
本帖最後由 havy 於 2014-11-21 13:09 編輯

Pins 5 and 6: controlled by Timer 0 in fastPWM mode (cycle length = 256)


Setting    Divisor   Frequency

0x01              1            62500

0x02             8            7812.5

0x03             64          976.5625   

0x04              256       244.140625

0x05              1024        61.03515625


TCCR0B = TCCR0B & 0b11111000 |<setting>;TCCR0B = TCCR0B & 0b11111000 | <setting>;

10kHz 沒有,但有接近的...7.8KHz

可以在void setup() 大括號內加入下面這行

TCCR0B = TCCR0B & 0b11111000 | <0x02>;

再使用pin 56 .

Referencehttp://playground.arduino.cc/Main/TimerPWMCheatsheet






歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2