analogWriteFreq()は指定した出力チャネルのPWM周波数を設定します。
uint16_t analogWriteFreq(uint8_t ch, uint32_t frequencyHz)
| コマンド | 引数 | 戻り値 | 動作 |
|---|---|---|---|
analogWriteFreq(ch, frequencyHz) | uint8_t chuint32_t frequencyHz | uint16_t | 指定した出力チャネルのPWM周波数を設定します。 |
void setup() { analogWriteFreq(3, 1000); // 指定出力チャンネルのPWM周波数を設定します。 uint16_t maxValue = analogWriteMax(3); // 指定出力チャンネルで使用できる最大値を返します。 analogWrite(3, maxValue / 4); // D46 / OC5A、約25% analogWrite(4, maxValue / 2); // D45 / OC5B、約50% analogWrite(5, maxValue); // D44 / OC5C, 100% } void loop() { }
analogWrite(0~15, value)はYアナログ出力用、analogWrite(20~31, value)はK/K2高速パルス出力用です。D130~D135、K2がD130~D141で、Yモジュール数に関係なく固定です。0~65535、高速パルス出力にはArduino互換の0~255値を使用します。analogWriteInit()、analogWriteFreq()、analogWriteMax()はYアナログ出力チャネル用です。高速パルス20~31には使用しません。analogWrite(130~141, value)は使用しません。analogWriteFreq()を呼び出すとTOPが自動で変わるため、その後のanalogWrite()の最大duty値も変わります。analogWriteFreq()の戻り値またはanalogWriteMax()で現在のduty最大値を確認します。