質問: お世話になっております。頻繁にすみません。1日1つ問題が解決され、新しく発生しています。。 ただいまTCS34725(参考ページ,Datasheet,参考ページ)を使い色の測定をしています。単なる測定です。 通常、赤(255,0,0)、緑(0,255,0)、青(0,0,255) →(R値,G値,B値)という値に近づきます。しかし、テスト時に気づいたのですが、センサーでの取得値が全くおかしい値になっています。以下が取得された値の表です。。 | 測定した色 | R値 | G値 | B値 | | --- | --- | --- | --- | | 赤1回目 | 141 | 79 | 86 | | 赤2回目 | 167 | 93 | 94 | | 青1回目 | 84 | 360 | 540 | | 青2回目 | 85 | 382 | 569 | | 緑1回目 | 206 | 373 | 227 | | 緑2回目 | 85 | 382 | 569 | と、255を超える数値が取得されます。 こういう場合の原因はなんだと考えられるでしょうか?プログラミングでしょうか? ちなみに、赤の測定はまともに見えますが、実際R値はもっと高いはずです、、 何卒お力添えをお願いいたします。。 実験で使ったのは写真の紙です。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/fdb290f859277931e304c12909ccb67d.jpeg)
回答: 回路や電気制御のことは分かりませんので、もしそっち関係で質問があったら詳しい方に相談しなおしてくださいね。以下、私に分かる範囲の回答をします。 **要旨)** * 16bit-->8bitにする(**測定値/256**をする)ことでいわゆるRGBの値が得られる * とりあえず`for`や`while`で**続けて**データを取ると傾向が見えてくるかも (2.4ms頻度で値を返し、反応しきるまで150msはかかるようですので、はじめの数回の値で評価したらダメっぽいです) 以下詳細 ***最大値がいくつか?** こちらにデータシートがありますので見てみますと、 > > RGBW 各色 16 ビットの分解能で明るさを検出することができます。 > > > つまり、 | | 一般的な画像 | TCS34725 | | --- | --- | --- | | ビット数 | 8 | 16 | | 計算 | 2^8 | 2^16 | | 最小値 | 0 | 0 | | 最大値 | 255 | **65535** | これで概要がつかめましたね。 ***他に気にすることはあるか?** 詳細については、英語の取説の中で、 p.16 > > Max RGBC Count = (256 − ATIME) × 1024 up to a maximum of 65535. > > (Table.6 略) > > > p.8 > > The RGBC integration time (ATIME) impacts both the resolution and the sensitivity > > of the RGBC reading. > > > とあります。つまり、TCS34725は、 * ATIME(積分時間:測定値が一定時間に変化できる変化の最大値)が決まっている@Table6 2.6ms:1024 24ms:10240 101ms:43008 154ms:65535 * ATIME(積分時間)は、測定値と解像度(精度)の両方にかなり影響する * TCS34725が色を検出してから**150ms(0.15秒)くらいの値はあんまり当てにならない** * 最短2.6msで値を返す(一秒で416回は値を返しうる)