S11059-02DTを使う
見つからなかった
友人がS11059-02DTを使いたいというが
探しても解説しているサイトがない
I2Cはほぼコピペで使っていたので書くことがほぼなかったので
嫌だなぁと思いつつ調べます
リファレンス
リファレンス読んでも意味がわからない
どれを呼べば読めるのかわからない…
他のカラーセンサーやI2Cデバイスの解説を読んで
なんとなく真似ては見たがうまくいかない
結局リファレンスを読み直したらプログラム例の順に
そのまま書けばいいことが判明
恐らくこれでちゃんと出力されるはずなんだけどね…
プログラム
#include<Wire.h> //r:赤 g:緑 b:青 a:赤外 int r,g,b,a; void setup(){ Wire.begin(); Serial.begin(115200); //初期化 Wire.beginTransmission(0x2A); Wire.write(0x0); Wire.write(0x89); Wire.endTransmission(); Wire.beginTransmission(0x2A); Wire.write(0x0); Wire.write(0x09); Wire.endTransmission(); } void loop(){ delay(50); colorread(); } void colorread(){ int h,l; Wire.beginTransmission(0x2A); Wire.write(0x03); Wire.endTransmission(); Wire.requestFrom(0x2A,8); if(Wire.available()){ //赤 h = Wire.read(); l = Wire.read(); r = h << 8|l; Serial.print("r:"); Serial.print(r); //緑 h = Wire.read(); l = Wire.read(); g = h << 8|l; Serial.print(" g:"); Serial.print(g); //青 h = Wire.read(); b = Wire.read(); r = h << 8|l; Serial.print(" b:"); Serial.print(b); //赤外 h = Wire.read(); l = Wire.read(); a = h << 8|l; Serial.print(" a:"); Serial.print(a); Serial.println(""); } Wire.endTransmission(); }
結論
I2Cはわかれば簡単な気がする