LESSON 044
カラーセンサーモジュールで色を感知する
○ 今回はカラーセンサーモジュールについてを説明します。
○ CRGBカラーセンサの原理は色を調べたい部質を近づけると白LEDから発光した光が、物質に反射しIRカットフィルターを通ってカラーセンサーが光を感知しCRGBのデータを出力します。
IRカットフィルタは、人間の目に極力近いRGBカラー値を取得できます。
・電源電圧:3.3V~5V
・ダイナミックレンジ:1~ 3,800,000
・ロジックレベル:TTL(3.3V~5V)
・通信形式:I2C(プルアップ抵抗実装済み)
・通信速度:MAX 400KHz
・アドレス:0x29(固定)
になります。
-
- 構成部品
- 配線図
- スケッチ
- 結果
- まとめ
Arduino
USBケーブル
カラーセンサーモジュール(TCS34725)
ジャンパー線
5V ⇒ VIN
GND ⇒ GND
GPIO A4 ⇒ SDA
GPIO A5 ⇒ SDL
※
I2Cピンは I2C(SCL)、I2C(SDA)とアナログ入力の4(SDA)、5(SDL)
が利用可能です。
#include <Wire.h>
#include <Adafruit_TCS34725.h>
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_614MS, TCS34725_GAIN_1X);
uint16_t r, g, b, c;
void setup(void) {
Serial.begin(9600);
tcs.begin();
}
void loop(void) {
tcs.getRawData(&r, &g, &b, &c);
Serial.print("R: "); Serial.print(r, DEC); Serial.print(" ");
Serial.print("G: "); Serial.print(g, DEC); Serial.print(" ");
Serial.print("B: "); Serial.print(b, DEC); Serial.print(" ");
Serial.print("C: "); Serial.print(c, DEC); Serial.print(" ");
Serial.println(" ");
}
解説
#include <Wire.h>
I2C/TWI デバイスとの通信を可能にするライブラリです。
#include <Adafruit_TCS34725.h>
TCS34725のカラーセンサーをコントロールするライブラリです。
Adafruit_TCS3472 変数 =Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_614MS, TCS34725_GAIN_1X)
TCS34725_INTEGRATIONTIME_614MS
センサーからのカラーサンプルの積分時間を614msに設定
TCS34725_GAIN_1X
センサーの感度を制御するためにADCのゲインをゲイン無に設定
uint16_t 変数;
変数を符号なし16bit整数型に設定
- void setup()
tcs.begin();
TCS34725ライブラリを初期化し、I2Cバスにマスタかスレーブとして接続します。
- void loop() 内
tcs.getRawData(&r, &g, &b, &c);
TCS34725からデータを取得
&r 赤の値
&g 緑の値
&b 青の値
&c クリアーの値
○ CRGB値のデータは生値のため、大きくても±10程度のバラツキがあり、100で割った方がデータは扱いやすいと思われます。
○ このカラーセンサーで測定する時は、測定物の距離は2cm以下出来れば0cmに近い方がより精度の高い値が得られます。
○ Arduino を 学ぶ上で書籍やWebpageを参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。