LoginSignup
3
3

More than 5 years have passed since last update.

GroveのCircular LEDをNefryで使うメモ

Last updated at Posted at 2017-03-07

Circular LEDは、円盤状にLEDがずらりと並んだデバイスです。くるくる回して何かを知らせるような用途に使うこともできるし、全部全開で灯すとフラッシュ代わりになります。

Grove - Circular LED - Wiki : http://wiki.seeedstudio.com/wiki/Grove_-_Circular_LED

動作電圧5VなのでNefryでは無理かと思ったのですけど、@wamisnetさんに助けていただいて動くようになりました。結論としては、3.5Vでも動くようです。

接続

_20170307_173013.JPG

Wikiのサンプルではデジタルポート2つで動かしていたのですけど、それだとうまくいかなくて、I2Cポートの方を使う必要がありました。

※ なんで駄目なのかはよくわかってないので、誰か詳しい人の説明に期待です:grinning:

ライブラリの導入

http://wiki.seeedstudio.com/wiki/File:CircularLED.zip にあがっているZIPファイルを持ってきて、ZIPライブラリを追加します。

Include_Library_and_Sketch_and_Menubar.png

ライブラリを追加すると、SketchBook保存フォルダ(MacのデフォルトだとDocuments/Arduino/libraries)に展開されたファイルが配置されるので、見つけておいてください(あとで編集する必要が出てきます)

CircularLED.png

コードを書く

こんな感じで。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_tuint32_tに置き換えて保存します。

これで、ビルドが通るようになったはずです。いつものようにブラウザからNefryにUploadしましょう

楽しむ

くるくる回るランプをお楽しみください。

NefryのLEDも、くるくる回るのにあわせてだんだん明るくなるようになっています。

3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3