マイコン制御の基礎の一つ、ボリュームの値をプログラムの中で使う方法を説明します。マイコンのアナログポートにボリュームをつなぎ、ボリュームの値で別のI/Oポートに接続したLEDの点灯時間を制御してみましょう。

まず、下図のような回路を作成します。

LED回路については、こちらの【マイコン便利手帳 LED制御】を参照してください。

また、写真中のクリップは、こちらのサイトで販売しています。

回路が出来たら次はプログラムを作成します。ここでは Arduino IDE でArduino UNO のプログラムを作成する例を紹介します。

まず、Arduino IDE の設定が以下のように設定してください。Arduino UNO との通信に使用するCOMポートの確認方法はこちら

Arduino IDE の設定が出来たら以下のプログラムを入力してください。

/*--- Volume 入力 & LED点滅速度制御プログラム ---*/

#define VOL_PORT  0  //ボリュームを接続するポート(ピン番号)を定義する
#define LED_PORT  8 //LEDを接続するポート(ピン番号)を定義する

void setup() {
  // シリアルポート初期化(ボーレート)115200
  Serial.begin(115200);
  pinMode( LED_PORT, OUTPUT );
}

void loop() {
  int vol;              //ボリュームの値(0-1023)
  float brightness;     //

  vol = analogRead( VOL_PORT );
  Serial.print( "volume = " );
  Serial.println( vol );
  if(vol >= 1000){
    vol = 1000;
    //  LED点灯
    digitalWrite( LED_PORT, HIGH );
    //  1000msec - ボリュームの値時間 ON
    delay(1000);
  }else if(vol < 10){
    vol = 0;
    //  LED消灯
    digitalWrite( LED_PORT, LOW );
    //  ボリュームの値時間OFF
    delay(1000);
  }else{
  //  LED点灯
    digitalWrite( LED_PORT, HIGH );
    //  ボリュームの値時間ON
    delay(vol);
    //  LED消灯
    digitalWrite( LED_PORT, LOW );
    //  1000msec - ボリュームの値時間 OFF
    delay(1000-vol);
  }
}

プログラムが出来たらコンパイルしてArduino UNO に書き込みます。

プログラムの書き込みが成功したらボリュームを動かしてみて下さい。LEDの点灯時間が変化します。

ここで紹介したボリュームによるLEDの点灯時間制御に必要な電子部品は下記サイトから購入できます。

LED回路部品

ボリューム回路部品

Arduino UNO