ArduinoのanalogWriteでPWM出力できるのは、デジタルピンの~が付いた3, 5, 6, 9, 10, 11の6つ。3と11, 5と6, 9と10が同じタイマーを使うようになっている。
詳しくは、次のサイトをチェック。とても詳しくてわかりやすい。
analogWrite()
今回は9, 10を使う事にした。
次のようにTCCR1A, TCCR1Bを設定する事で、約30kHzに設定できた。
void setup() {
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
TCCR1A = 0b00000001;
TCCR1B = 0b00000001;
analogWrite(9, 127);
analogWrite(10, 127);
}
このページも参考になる。
PMWの周波数を変更する(タイマ/カウンタ レジスタ値の確認と変更)