Circular LEDは、円盤状にLEDがずらりと並んだデバイスです。くるくる回して何かを知らせるような用途に使うこともできるし、全部全開で灯すとフラッシュ代わりになります。
Grove - Circular LED - Wiki : http://wiki.seeedstudio.com/wiki/Grove_-_Circular_LED
動作電圧5VなのでNefryでは無理かと思ったのですけど、@wamisnetさんに助けていただいて動くようになりました。結論としては、3.5Vでも動くようです。
接続
Wikiのサンプルではデジタルポート2つで動かしていたのですけど、それだとうまくいかなくて、I2Cポートの方を使う必要がありました。
※ なんで駄目なのかはよくわかってないので、誰か詳しい人の説明に期待です
ライブラリの導入
http://wiki.seeedstudio.com/wiki/File:CircularLED.zip にあがっているZIPファイルを持ってきて、ZIPライブラリを追加します。
ライブラリを追加すると、SketchBook保存フォルダ(MacのデフォルトだとDocuments/Arduino/libraries)に展開されたファイルが配置されるので、見つけておいてください(あとで編集する必要が出てきます)
コードを書く
こんな感じで。ZIPファイルに入っている CircularLEDtest.ino から、ポートを変更して、Nefryの関数を使うように変更しました。
#include <Nefry.h>
#include <CircularLED.h>
CircularLED circularLED1(D1,D0);
unsigned int LED[24];
int k=0;
void setup()
{
Nefry.println("circularLED.");
Nefry.setLed(0,0,0);
Serial.begin(9600);
// circularLED1.init();
Nefry.println("init done.");
}
void loop()
{
for (int i =0;i<24;i++){
LED[i]=0;
}
LED[k]= 0xff;
k++;
if (k==24){ k=0; }
Nefry.setLed(k,k,k);
circularLED1.CircularLEDWrite(LED);
Nefry.ndelay(40);
}
ライブラリエラーへの対応
で、ビルドしようとすると、こんな感じでエラーになるかと思います。
~/develop/Arduino/libraries/CircularLED/CircularLED.cpp: In constructor 'CircularLED::CircularLED(int, int)':
~/develop/Arduino/libraries/CircularLED/CircularLED.cpp:37:12: error: cannot convert 'volatile uint32_t* {aka volatile unsigned int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in assignment
PORT_Data = portOutputRegister(digitalPinToPort(_data));
^
~/develop/Arduino/libraries/CircularLED/CircularLED.cpp:38:11: error: cannot convert 'volatile uint32_t* {aka volatile unsigned int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in assignment
PORT_Clk = portOutputRegister(digitalPinToPort(_clk));
^
exit status 1
Error compiling for board Nefry V2.
先程調べておいた場所にあるCircularLED.hをひらいて、uint8_tをuint32_tに置き換えて保存します。
これで、ビルドが通るようになったはずです。いつものようにブラウザからNefryにUploadしましょう
楽しむ
くるくる回るランプをお楽しみください。
NefryのLEDも、くるくる回るのにあわせてだんだん明るくなるようになっています。
@wamisnet うごいたー🙌ありがとうございます!pic.twitter.com/8toWayiTAc
— daisuke furukawa (@mogya) 2017年3月7日