Grove - I2C カラーセンサー
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

このモジュールは、デジタル出力 I2C を備えたカラーセンサー TCS3414CS に基づいています。8×2 配列のフィルタ付きフォトダイオードと 16 ビットのアナログ-デジタルコンバーターを基に、周囲光の色度や物体の色を測定できます。16 個のフォトダイオードのうち、4 個は赤フィルター、4 個は緑フィルター、4 個は青フィルター、4 個はフィルターなし(クリア)です。同期入力ピンを使用すると、外部のパルス光源が正確な同期変換制御を提供できます。
最新バージョン V2.0 では IC が TCS3472 に置き換えられ、古いライブラリも更新されています。V2.0 バージョンを使用している場合は、新しいライブラリを使用してください。
特徴
- Grove 互換インターフェース
- I2C による 16 ビットデジタル出力
- SYNC 入力により、変調光源との統合サイクルを同期
- 動作温度範囲 -40°C ~ 85°C
- ユーザー定義の上限および下限しきい値設定を備えたプログラム可能な割り込み機能
- RoHS 準拠
Grove モジュールの詳細については、Grove System を参照してください。
仕様
パラメータ | 値/範囲 |
---|---|
PCB サイズ | 2.0 cm × 4.0 cm |
インターフェース | 2.0mm ピッチピンヘッダー |
VCC | 3.3 - 6.0 V |
I2C スピード | 400 kHz |
対応プラットフォーム
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
上記でサポートされていると記載されているプラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduino プラットフォーム用のソフトウェアライブラリまたはコード例のみを提供しています。すべての可能な MCU プラットフォーム用のソフトウェアライブラリ/デモコードを提供することはできません。そのため、ユーザーは独自のソフトウェアライブラリを作成する必要があります。
はじめに
以下のドキュメントは、Grove の使用を開始する際に役立ちます。
ハードウェア接続
Grove 製品はエコシステムを持ち、すべて同じコネクタを備えており、Grove ベースシールドに接続できます。このモジュールをベースシールドの I2C ポートに接続してください。ただし、ジャンパーワイヤーを使用して Grove - I2C カラーセンサーを Arduino に直接接続することもできます。
Arduino UNO | Grove - I2C カラーセンサー |
---|---|
5V | VCC |
GND | GND |
SDA | SDA |
SCL | SCL |
ソフトウェアインストール
Arduino をダウンロードし、Arduino ドライバーをインストールします。
Seeeduino/Arduino の使い方を始める
デモ
このモジュールは、光源の色や物体の色を検出するために使用できます。光源の色を検出する場合、LED スイッチをオフにし、光源をセンサーに直接照射する必要があります。物体の色を検出する場合、LED をオンにし、物体をエンクロージャーの上部に密着させる必要があります。物体の色を検出する理論は反射検知理論です。以下の図のように動作します。

カラーセンサーライブラリ
Seeeduino/Arduino をすぐに使い始めるためのライブラリを作成しました。このセクションでは、ライブラリのセットアップ方法を説明します。
セットアップ
- Grove_I2C_Color_Sensor GitHub ページからライブラリコードを zip ファイルとしてダウンロードします。最新バージョン V2.0(IC が TCS3472)の場合は、この新しいライブラリを使用してください。
- ダウンロードしたファイルを …/arduino/libraries に解凍します。
- 解凍したフォルダの名前を "Color_Sensor" に変更します。
- Arduino IDE を起動(または開いている場合は再起動)します。
関数の説明
このライブラリで最も重要かつ有用な関数です。利用可能なすべての関数を確認するために、ぜひ .h ファイルと .cpp ファイルをご覧ください。
ライブラリ関数を使用して RGB データを読み取る
readRGB(int *red, int *green, int *blue)
- red: R の値を保存する変数のアドレス。
- green: G の値を保存する変数のアドレス。
- blue: B の値を保存する変数のアドレス。
void loop()
{
int red, green, blue;
GroveColorSensor colorSensor;
colorSensor.ledStatus = 1; // カラーセンサーの LED をオンにする場合は ledStatus = 1; オフにする場合は ledStatus = 0。
while(1)
{
colorSensor.readRGB(&red, &green, &blue); // RGB 値を変数に読み取る。
delay(300);
Serial.print("RGB 値は: RGB( ");
Serial.print(red,DEC);
Serial.print(", ");
Serial.print(green,DEC);
Serial.print(", ");
Serial.print(blue,DEC);
Serial.println(" )");
colorSensor.clearInterrupt();
}
}
カラーセンサーの例/応用
この例では、Grove - I2C カラーセンサーの機能を使用し、Chainable RGB LED Grove を使用して検出された色を表示する方法を示します。
Arduino IDE に Grove-Chainable RGB LED ライブラリ をまだダウンロードしていない場合は、まずライブラリをダウンロードしてセットアップしてください。
- 完全な例を確認するには、File->Examples->Color_Sensor->example->ColorSensorWithRGB-LED スケッチを開くか、以下のコードを新しい Arduino スケッチにコピーして貼り付けてください。
説明: この例では、周囲光の色の色度や物体の色を測定し、Chainable RGB LED Grove を介して検出された色を表示します。
また、他の表示モジュールを使用して Grove - I2C カラーセンサーで検出された色を表示することもできます。
#include <Wire.h>
#include <GroveColorSensor.h>
#include <ChainableLED.h>
#define CLK_PIN 7
#define DATA_PIN 8
#define NUM_LEDS 1 // Chainable RGB LED の数
ChainableLED leds(CLK_PIN, DATA_PIN, NUM_LEDS);
void setup()
{
Serial.begin(9600);
Wire.begin();
}
void loop()
{
int red, green, blue;
GroveColorSensor colorSensor;
colorSensor.ledStatus = 1; // カラーセンサーの LED をオンにする場合は ledStatus = 1; オフにする場合は ledStatus = 0。
while(1)
{
colorSensor.readRGB(&red, &green, &blue); // RGB 値を変数に読み取る。
delay(300);
Serial.print("RGB 値は: RGB( ");
Serial.print(red,DEC);
Serial.print(", ");
Serial.print(green,DEC);
Serial.print(", ");
Serial.print(blue,DEC);
Serial.println(" )");
colorSensor.clearInterrupt();
for(int i = 0; i<NUM_LEDS; i++)
{
leds.setColorRGB(i, red, green, blue);
}
}
}
- コードを開発ボードにアップロードします。
- その後、Grove_-_Chainable_RGB_LED が検出された色を表示します。
その他の参考情報
このモジュールはカラーセンサー TCS3414CS をベースにしています。TCS3414CS デジタルカラーセンサーは、赤(R)、緑(G)、青(B)、およびクリア(C)(フィルターなし)の4つのチャンネルからデータを返します。赤、緑、青のチャンネル (RGB) の応答を使用して、特定の光源の色度座標 (x, y) を決定できます。これらの基準は国際照明委員会 (CIE) によって設定されています。CIE は色と色の測定に関する主要な国際機関です。
TCS3414CS を使用して特定の物体の色を取得するには、センサーの応答 (RGB) を CIE 三刺激値 (XYZ) にマッピングする必要があります。その後、色度座標 (x, y) を計算する必要があります。

色度計算プロセス概要
変換を行うための方程式:

変換方程式
- 座標 (x, y) を取得したら、以下の図を参考にして推奨される色を確認してください。

FAQs
Q1: コマンドの意味をどのように理解すればよいですか? 例えば、REG_GREEN_LOW = 0xD0
A1: 添付された画像から、コマンドの内容を確認できます。バイトプロトコルコマンドを使用する場合、必ず「0x80+ADDRESS」の形式である必要があります。例えば、REG_TIMING(01h) = 0x81。
バイトおよびブロック読み取りの場合、コマンドは「0xC0+ADDRESS」の形式である必要があります。例えば、REG_GREEN_LOW(10h) = 0xD0。

Grove-I2C カラーセンサー Eagle ファイル V1.2
Grove-I2C カラーセンサー Eagle ファイル V2.0
リソース
- [ライブラリ] Grove - I2C カラーセンサー V1.2 用ライブラリ
- [ライブラリ] Grove - I2C カラーセンサー V2.0 用ライブラリ
- [Eagle] Grove-I2C カラーセンサー Eagle ファイル V1.2
- [Eagle] Grove-I2C カラーセンサー Eagle ファイル V2.0
- [データシート] TCS3414-A データシート
- [データシート] TCS3472 データシート
技術サポート & 製品ディスカッション
産業用センサーへのアップグレード可能
SenseCAP S2110 コントローラー と S2100 データロガー を使用することで、Grove を簡単に LoRaWAN® センサーに変えることができます。Seeed はプロトタイピングをサポートするだけでなく、SenseCAP シリーズの堅牢な 産業用センサー を使用してプロジェクトを拡張する可能性も提供します。
IP66 ハウジング、Bluetooth 設定、グローバル LoRaWAN® ネットワークとの互換性、内蔵 19 Ah バッテリー、そして強力な APP サポートにより、SenseCAP S210x は産業用途に最適な選択肢となります。このシリーズには、土壌水分、空気温度と湿度、光強度、CO2、EC、そして 8-in-1 気象ステーション用センサーが含まれています。次の成功する産業プロジェクトには最新の SenseCAP S210x を試してみてください。