アナログ I/O

アナログ信号の入力や出力をするためのライブラリです。

analogReference

概要
アナログ入力で使われる基準電圧を設定します。analogRead関数は入力が基準電圧と同じとき1023を返します。
文法
analogReference(mode)
パラメータ
mode: DEFAULT(VCC電圧)、INTERNAL(内蔵電圧1.45V)、EXTERNAL(VCC電圧)
戻り値
なし

analogRead

概要
アナログ値を読み込みます。
文法
int analogRead(analog_pin)
パラメータ
analog_pin: アナログピン番号(A0~A7、または14~21)
戻り値
0~1023
注意
A0~A5ピンをanalogRead()に使う場合なるべく小さい番号から使用してください。pinMode()でデジタル入出力に指定した場合、それより大きいピン番号もデジタル入出力になります。例えばA2をデジタルピンにした場合、A3, A4, A5もデジタルピンになりanalogRead()でアナログ値を取得することができません。
補足
setPowerManagementMode()でSNOOZEモードを指定してanlogRead()をコールした場合、lowerからupperで指定される範囲の値を取得するまでSNOOZEモードになり、プログラムは停止します。

analogWrite

概要
アナログ値(PWM波)を出力します。LEDの明るさを変えたいときや、モータの回転スピードを調整したいときに使えます。PWM信号の周波数は初期値は約490Hzです(一部は125Hzです。補足を参照)。周波数はanalogWriteFrequencyで変えることができます。
文法
analogWrite(int pin, int value);
パラメータ
pin: ピン番号(3, 5, 6, 9, 10, 11, 22, 23,24)
value: 出力するPWMのデューティ(0~255)
戻り値
なし
補足
ピン11, 22, 23, 24はソフトウェアでPWMを実現しており、周波数は125Hzになります。

analogWriteFrequency

概要
analogWriteの周期を設定する。デフォルトは490Hzです。
文法
analogWriteFrequency(int Hz)
パラメータ
Hz: 周期
戻り値
なし
補足
すべてのアナログ出力(PWM)が停止している状態で実行してください。周波数を変更できるピンは3, 5, 6, 9, 10のみです。

サンプルプログラム

analogWriteを使用して13ピンのLEDをもわっと光らせます。


#include <Arduino.h>
void setup() {
  pinMode(13, OUTPUT); //Green LED
}
 
void loop() {
    for(int i = 0; i<250; i+=5){
        analogWrite(13, i);
        delay(30);
    }
    for(int i = 0; i<250; i+=5){
        analogWrite(13, 255-i);
        delay(30);
    }
}