LoginSignup
4
5

More than 5 years have passed since last update.

ArduinoでGrove光センサSEN11302PとLEDバーLED05031Pを試す

Last updated at Posted at 2015-03-03

準備

適宜、ご自身の環境に読み替えてくださいませ。

CASE1:光センサ値をシリアルモニタで確認する

まずは、単に取得値を確認します。

1. 光センサをベースシールドのA0端子に接続する

004-01-light.jpg

ピンアサインは、下表です。

Arduino Sensor Color
GND GND Black
VCC VCC Red
A1 NC White
A0 SIG Yellow

2. スケッチを作成する

とてもシンプルです。

Grove_Light_Sensor.ino
#define LIGHT_SIG A0

void setup() {
  Serial.begin( 9600 );
  pinMode( LIGHT_SIG, INPUT );
}

void loop() {
  int sValue = analogRead( LIGHT_SIG );
  Serial.print("the light sensor value is ");
  Serial.println( sValue );
  delay( 1000 );
}

3. 動作を確認する

  1. Arduino IDE にてコンパイル&書き込み
  2. シリアルモニタを起動し、ログを確認する
    [ツール] → [シリアルモニタ]

4. 感想

  • 当然、簡単に動作しました。
  • センサ値が 0 ~ 1023 の範囲なのですが、900を超えませんでした。もっと強い光が必要なのかな。

5. リファレンス

CASE2:光センサ値を LED バーで表示する

光センサ値を LED バー 10 段階で表現します。

1. LED バーをベースシールドのD8端子に接続する

IMG_20150320_100200-light.jpg

ピンアサインは、下表です。

Arduino LED Bar Color
GND GND Black
VCC VCC Red
D9 DCKI White
D8 DI Yellow

2. LEDバー用ライブラリをインストールする

  1. ライブラリをダウンロード
    https://github.com/Seeed-Studio/Grove_LED_Bar
    右の【Download ZIP】を押す。
  2. ライブラリを Arduino IDE にインストール
    Arduino IDE の [スケッチ] → [ライブラリを使用] → [ライブラリをインストール…] からダウンロードしたライブラリ ZIP (Grove_LED_Bar-master.zip) を選択し、インストールする。
    • \ドキュメント\Arduino\libraries\ 以下にコピーされる

3. スケッチを作成する

仕様を決めます。

  • センサ値 100 未満の場合、無灯
  • センサ値 100 毎に LED を 1 個ずつ点灯
    • ex) センサ値 300 以上 400 未満の場合、レベル 3 (3個点灯)
Grove_LED_Bar_with_Light_Sensor.ino
#include <Grove_LED_Bar.h>

#define LIGHT_SIG A0
#define BAR_CLK 9
#define BAR_DATA 8
#define BAR_GTR 0

Grove_LED_Bar bar( BAR_CLK, BAR_DATA, BAR_GTR );

void setup() {
  pinMode( LIGHT_SIG, INPUT );
}

void loop() {
  delay( 1000 );
  int sValue = analogRead( LIGHT_SIG );

  if( sValue<100 )
    bar.setLevel( 0 );
  else if( 100<=sValue && sValue<200 )
    bar.setLevel( 1 );
  else if( 200<=sValue && sValue<300 )
//  bar.setLevel( 2 );
    bar.setBits( 0b000000000000011 );
  else if( 300<=sValue && sValue<400 )
//  bar.setLevel( 3 );
    bar.setBits( 0x7 );
  else if( 400<=sValue && sValue<500 )
    bar.setLevel( 4 );
  else if( 500<=sValue && sValue<600 )
    bar.setLevel( 5 );
  else if( 600<=sValue && sValue<700 )
    bar.setLevel( 6 );
  else if( 700<=sValue && sValue<800 )
    bar.setLevel( 7 );
  else if( 800<=sValue && sValue<900 )
    bar.setLevel( 8 );
  else if( 900<=sValue && sValue<1000 )
    bar.setLevel( 9 );
  else if( 1000<=sValue )
    bar.setLevel( 10 );
}

3. 動作を確認する

  1. Arduino IDE にてコンパイル&書き込み
  2. LEDバーが落ち着いたら、光を当てたり、隠したりしてLEDバーの変化を確認する

4. 感想

  • 視覚で分かるようにすることで面白さが出る。子供が遊んでしまう。
  • 大雑把に変化を確認したい場合に向くように思う。

5. リファレンス

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5