2015年10月17日 星期六

ROSA 系統開發 9 - LED 顯示

https://4rdp.blogspot.com/2015/10/rosa-9-led.html?m=0

mBot 電路示意圖
在 mBot 本體上有三顆 LED 可被 ROSA 控制,這三顆 LED 皆由 D13 腳輸出控制,L 為一般 LED,D13 HIGH 時燈亮,LOW 時燈滅,而 RGB LED1 及 RGB LED2,則是 WS2812 4 pin RGB LED,可以串聯多顆同型 LED,只要串聯傳送控制訊號即可。









// (C) 2015, Bridan Wang, CC BY-NC-SA 3.0 TW
// http://4rdp.blogspot.tw/search/label/ROSA%20(Arduino)

// pin 13   LED
#include "adafruit_neopixel.h"
#define LEDPIN     13
Adafruit_NeoPixel strip = Adafruit_NeoPixel(2, LEDPIN, NEO_GRB + NEO_KHZ800);
void setup() {
  // pin 13
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'

}


void PROCESS_100ms(void){
  static byte  led = 0;
  led = 1 - led;
  digitalWrite(13, led);    // LED L
}


void PROCESS_1sec(){
  static byte red = 0;
  static char dir = 100;
  red += dir;
  if (red >= 200) dir = -100;
  else if (red == 0) dir = +100;
  strip.setPixelColor(0, strip.Color(red, 0, 0));   // LED1
  strip.show();

  static byte i = 0;
  i = 1 - i;
  if (i == 0)
    strip.setPixelColor(1, strip.Color(0, 20, 0));  // LED2
  else
    strip.setPixelColor(1, strip.Color(0, 0, 20));
  strip.show();

}



首先需含入 adafruit_neopixel.h,它不是 mBot 標準函式庫,需要另外下載安裝,啟動前宣告使用 Arduino D13。

一般 LED L,每 100ms 亮或滅。LED1 每秒調紅光亮度一次,由滅而亮,然後再漸減。LED2 則是藍綠各亮一秒。

沒有留言:

張貼留言