準備
適宜、ご自身の環境に読み替えてくださいませ。
- 環境
- HW
- Windows PC (Windows 7 Pro 64bit)
- Arduino Uno
- Grove ベースシールド V2 SLD01099P
- Grove 光センサ SEN11302P
- Grove LED バー LED05031P
- SW
- Arduino IDE 1.6.0 / 1.6.1
CASE1:光センサ値をシリアルモニタで確認する
まずは、単に取得値を確認します。
1. 光センサをベースシールドのA0端子に接続する
ピンアサインは、下表です。
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. 動作を確認する
- Arduino IDE にてコンパイル&書き込み
- シリアルモニタを起動し、ログを確認する
[ツール] → [シリアルモニタ]
4. 感想
- 当然、簡単に動作しました。
- センサ値が 0 ~ 1023 の範囲なのですが、900を超えませんでした。もっと強い光が必要なのかな。
5. リファレンス
CASE2:光センサ値を LED バーで表示する
光センサ値を LED バー 10 段階で表現します。
1. LED バーをベースシールドのD8端子に接続する
ピンアサインは、下表です。
Arduino | LED Bar | Color |
---|---|---|
GND | GND | Black |
VCC | VCC | Red |
D9 | DCKI | White |
D8 | DI | Yellow |
2. LEDバー用ライブラリをインストールする
- ライブラリをダウンロード
https://github.com/Seeed-Studio/Grove_LED_Bar
右の【Download ZIP】を押す。 - ライブラリを 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. 動作を確認する
- Arduino IDE にてコンパイル&書き込み
- LEDバーが落ち着いたら、光を当てたり、隠したりしてLEDバーの変化を確認する
4. 感想
- 視覚で分かるようにすることで面白さが出る。子供が遊んでしまう。
- 大雑把に変化を確認したい場合に向くように思う。