- //(1)シリアルLEDライブラリ(配布先 https://github.com/adafruit/Adafruit_NeoPixel)
- #include <Adafruit_NeoPixel.h>
- //(2)Arduino HID Project 2.4.4(配布先 https://github.com/NicoHood/HID#arduino-hid-project-244)
- #include <HID-Project.h>
- #include <HID-Settings.h>
- //LED制御用 I/O定義
- #define NUMPIXELS 1 // シリアルLED個数
- #define NUM_LOCK_LED 21 // NumLock/動作モード状態LEDポート番号
- //シリアルLED定義
- // D2812 = NEO_RGB
- // WS2812B = NEO_GRB
- Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, NUM_LOCK_LED, NEO_GRB + NEO_KHZ800); //NumLock LED制御Pin初期化
- //NumLock・LED制御
- int R[3]; // LED色 Red (0-255)
- int G[3]; // LED色 Green(0-255)
- int B[3]; // LED色 Blue (0-255)
- void setup()
- {
- // put your setup code here, to run once:
- //LED表示初期化(各動作モード別にRGBで色指定する)
- //色1=緑
- R[0]=0;
- G[0]=10;
- B[0]=0;
- //色2=青
- R[1]=0;
- G[1]=0;
- B[1]=10;
- //色3=赤
- R[2]=10;
- G[2]=0;
- B[2]=0;
- //シリアルLEDライブラリ初期化
- pixels.begin();
- //HIDデバイス初期化(ホストLED状態取得用)
- BootKeyboard.begin();
- }
- void loop()
- {
- // put your main code here, to run repeatedly:
- static int mode = 0;//色変更用
- //ホスト側のLED状態を取得
- int cur_led_sts = BootKeyboard.getLeds();
-
- //ホスト側NumLock状態はONか
- if( cur_led_sts & LED_NUM_LOCK )
- {
- //LED点灯(key_modeに従いRGB指定する)
- pixels.setPixelColor(0, pixels.Color(R[mode],G[mode],B[mode]));
- }
- else
- {
- //LED消灯(黒)
- pixels.setPixelColor(0, pixels.Color(0,0,0));
- }
- //LED出力
- pixels.show();
- //色変更
- mode++;
- if(mode>=3)
- {
- mode = 0;
- }
- //500ms遅延
- delay(500);
- }