Arudino代碼:
//燈帶變量
#include <Adafruit_NeoPixel.h>
#define PIN 8 //輸出引腳
#define PIN1 9 //輸出引腳
#define PIN2 10 //輸出引腳
#define PIN3 11 //輸出引腳
#define MAX_LED 100 //最大燈珠
#define ADD true
#define SUB false
int val = 0;
boolean stat = ADD;
boolean ifdown = SUB;
uint32_t white,red,black;
Adafruit_NeoPixel strip = Adafruit_NeoPixel( MAX_LED, PIN, NEO_RGB + NEO_KHZ800 );
Adafruit_NeoPixel strip1 = Adafruit_NeoPixel( MAX_LED, PIN1, NEO_RGB + NEO_KHZ800 );
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel( MAX_LED, PIN2, NEO_RGB + NEO_KHZ800 );
Adafruit_NeoPixel strip3 = Adafruit_NeoPixel( MAX_LED, PIN3, NEO_RGB + NEO_KHZ800 );
//狀態變量
int buttonState1 = 0;
//計時變量
unsigned long t1 = 0;
unsigned long t2 = 5;
unsigned long times = 0;
void setup() {
Serial.begin(9600);
white = strip.Color(255, 255, 255); //選擇所顯示的顏色
red = strip.Color(0, 255, 0);
black=strip.Color(0, 0, 0);
strip.begin(); //初始化Adafruit_NeoPixel;
//for(int i =0;i<MAX_LED;i++)
//{
// strip.setPixelColor(i,black);
//}
strip.show();
}
void loop() {
delay(1000);
//讀取Unity傳進來的值
while(Serial.available())
{
char c = Serial.read();
if(c=='H')
{
for(int i =0;i<MAX_LED;i++)
{
strip.setPixelColor(i,white);
}
strip.show();
}
if(c=='T')
{
for(int i =0;i<MAX_LED;i++)
{
strip.setPixelColor(i,red);
}
strip.show();
}
}
}