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 5或6 .
Reference:http://playground.arduino.cc/Main/TimerPWMCheatsheet
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) |
Powered by Discuz! X3.2 |