Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2604

Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2604

Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2632

analogWrite

説明

指定されたアナログピンからアナログ値(PWM)を出力します。
この機能によって、LEDの輝度を変えたり、モーターの駆動速度をコントロールすることができます。
analogWrite関数が実行されると、次にanalogWriteやdigitalRead、digitalWriteなどがそのピンに対して使用されるまで、安定した矩形波が出力されます。

書き方 analogWrite(ピン番号,アナログ値)
戻り値 無し
引数 ピン番号(uint8_t)… ピン番号
アナログ値(int)…0(常にオフ)から255(常にオン)の間のデューティー比
ボード別PWMピンと周波数
ボード PWMピン PWM周波数
Uno, Nano, Mini 3, 5, 6, 9, 10, 11 490 Hz (pins 5 and 6: 980 Hz)
Mega 2 – 13, 44 – 46 490 Hz (pins 4 and 13: 980 Hz)
Leonardo, Micro, Yún 3, 5, 6, 9, 10, 11, 13 490 Hz (pins 3 and 11: 980 Hz)
Uno WiFi Rev2, Nano Every 3, 5, 6, 9, 10 976 Hz
MKR boards * 0 – 8, 10, A3, A4 732 Hz
MKR1000 WiFi * 0 – 8, 10, 11, A3, A4 732 Hz
Zero * 3 – 13, A0, A1 732 Hz
Nano 33 IoT * 2, 3, 5, 6, 9 – 12, A2, A3, A5 732 Hz
Nano 33 BLE/BLE Sense 1 – 13, A0 – A7 500 Hz
Due ** 2-13 1000 Hz
101 3, 5, 6, 9 pins 3 and 9: 90 Hz,
pins 5 and 6: 980 Hz

※ MKRとNano33 IoT、Zeroボードでは、AC0(A0)ピンに対してanalogWrite()を利用で真のアナログ出力を行うことができます。

※ Dueボードでは、DAC0とDAC1ピンに対してanalogWrite()を利用することで真のアナログ出力を行うことができる。

※analogWrite()を呼び出す前にpinMode()を利用してピンの設定を行う必要はありません。

プログラム例

可変抵抗を回すとその値に応じてLEDの輝度を変えるプログラム

int ledPin = 9;      // LED connected to digital pin 9
int analogPin = A0;   // potentiometer connected to analog pin 3
int val = 0;         // variable to store the read value

void setup() {
  pinMode(ledPin, OUTPUT);  // sets the pin as output
}

void loop() {
  val = analogRead(analogPin);  // read the input pin
  analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
}

注意

ピン5と6で生成されたPWM出力は、も高いデューティサイクルを持ちます。
これは、これらのPWM出力の生成に使用されるのと同じ内部タイマーmillis()およびdelay()関数との相互作用によるものです。

これは、例えば、低デューティサイクル設定(たとえば0〜10)で使用するとき、5番ピン6番ピンに0に設定しても出力が完全にオフにならない可能性があります。

タイトルとURLをコピーしました