メインコンテンツに移動

アナログ I/O

アナログ 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のみです。


サンプルプログラム

KURUMI上の緑LEDをもわっと光らせます。


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