光センサー×Neopixel

光センサーとNeopixelをなんとか組み合わせて使うことはできないかと思い取り組んだ。

しかし、単純に組み合わせるだけでできるはずもなく、電子回路などの知識不足を感じた。なにかアウトプットを意識していたが、知識が圧倒的に足りない。

Neopixelを光らせることはできたが、センサーと連動させることが出来ていない。光センサーも一応読み取った数値をシリアルパネルに表示させるが、明るさによって変わるわけではなく、正直何の数値を読み取っているのかわからない。

7/27更新 成功できたので更新します

成功できなかった理由として、unitをuintとタイプミス・通信などで使われるデジタルピン0と1を使用していたことが挙げられます。

うまくいかなかったときの対処法として、うまく作動していた部分まで戻り、何が原因か一つ一つ潰していく必要がある。

こちらがコードになります

  1. #include <Adafruit_NeoPixel.h>
  2. Adafruit_NeoPixel strip = Adafruit_NeoPixel(8,3,NEO_GRB + NEO_KHZ800);
  3. int photoResistor =5;
  4. int bright;
  5. void setup(){
  6.   pinMode(photoResistor,INPUT);
  7.   Serial.begin(9600);
  8.   strip.begin();
  9.   }
  10. void loop(){
  11.   bright = analogRead(photoResistor);
  12.   Serial.println(bright);
  13.   if(bright > 1000){
  14.     colorWipe(strip.Color(50,0,0),5000);
  15.     colorWipe(strip.Color(0,50,0),5000);
  16.     colorWipe(strip.Color(0,0,50),5000);
  17.   }
  18.   else{
  19.     colorWipe(strip.Color(0,0,0),5000);
  20.     colorWipe(strip.Color(0,0,0),5000);
  21.     colorWipe(strip.Color(0,0,0),5000);
  22.     }
  23. }
  24. void colorWipe(uint32_t c, uint8_t wait) {
  25.   for(uint16_t i=0; i<strip.numPixels(); i++) {
  26.       strip.setPixelColor(i, c);
  27.       strip.show();
  28.       delay(wait);
  29.   }
  30. }

コードは写真でGit上に表示するのではなく、HTMLとして表示するようにしました。本当はファイルごと?アップしたかったのですが、イマイチやり方がわからなかったです。

srctohtmlというサイトを使えばHTML以外のコードもHTMLに変換してくれます。皆さんも使ってみてください。