【カラーセンサ】TCS34725のArduinoでの使い方解説(ライブラリ不使用)

Arduino

TCS34725をライブラリ無しで使用してみる

こんにちは、くろべこです。

今回はTCS34725(I2Cカラーセンサセンサ)をライブラリ無しで使用してみます。

TCS34725のレジスタ構成やI2Cコマンドについては以前、データシートの日本語化を行ったのでそちらの参照をお願いします。

【TCS34725】日本語訳データシート
I2CデジタルカラーセンサTCS34725の日本語訳データシートです。個人利用の翻訳なので誤記/誤植はあしからず。

ライブラリ不使用という事で使用するライブラリは標準のI2Cライブラリ<Wire.h>のみです。

では早速始めましょ~

プログラム構成(割り込みなし。通常測定)

TCS34725は各色(RGBC)16bitの測定値を格納するレジスタを持っています。

そして、AD変換器は積分時間やゲインの設定が可能になります。また、割り込み機能も有しており透明色(光の強度)の上下限閾値を持たせて割り込みAD変換を行うことが可能となっています。

まずは割り込みなしの基本的な測定を行うために、下記フローチャートでプログラムの構成を行いたいと思います。内容は、単純で【積分時間設定】⇒【ゲイン設定】⇒【AD変換有効】⇒【RGB読み取り】⇒【RGB上下レジスタ統合】です。

実際のプログラムです。

測定結果

思った以上に感度が良くRGBもはっきり分かれていてGOODです。少なくとも以前使用した浜松ホトニクス製のI2Cカラーセンサ【S11059-02DT】よりはずいぶんと使いやすそうですね。照明用のLEDが付いているのが結構ポイントかもしれません。

今回は通常の定周期での測定をやってみましたが、このセンサでは待機時間の調整も可能です。通常は0~614msですが、WLONGレジスタを有効にすることで7.4secまで待機時間を延長することが可能です。

また、割り込み機能についても紹介したかったのですが、ちょっと私が考えていたものとはちょっとちがう?のか思った動作をしてくれなかったです。私のイメージではIDLE時に光の強度の閾値を超えたら割り込みADCをしてくれるのかなと思ったのですが無反応でした(笑)。これは、次の課題として取っておこうと思います。

トータルでのレビューとしては結構コスパの良いセンサとだと思います。価格的にも1000円くらいで照明LEDもついてくるので、秋月で売っているようなセンサ単体の物よりもお勧めしたい一品でした。

では、今日はこんなところで失礼します!

コメント

タイトルとURLをコピーしました