#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
#define PIN 6 // On Trinket or Gemma, suggest changing this to 1
#define NUMPIXELS 16 // Popular NeoPixel ring size
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 200 // Time (in milliseconds) to pause between pixels
const int buttonPin_O = 8; // 按鈕連接的pin
const int buttonPin_B = 9; // 按鈕連接的pin
const int ledPin_O = 4; // LED pin
const int ledPin_B = 5; // LED pin
int buttonState_O = 0;
int buttonState_B = 0;
void setup()
{
pixels.begin();
pixels.clear();
pixels.show();
pinMode(ledPin_O, OUTPUT);
pinMode(ledPin_B, OUTPUT);
pinMode(buttonPin_O, INPUT);
pinMode(buttonPin_B, INPUT);
}
void loop()
{
buttonState_O = digitalRead(buttonPin_O);
buttonState_B = digitalRead(buttonPin_B);
if (buttonState_O == HIGH)
{
digitalWrite(ledPin_O, HIGH);
pixels.clear();
for(int i=0; i<NUMPIXELS; i++)
{
pixels.setPixelColor(i, pixels.Color(255, 0, 255));
pixels.show();
delay(DELAYVAL);
}
pixels.clear();
pixels.show();
}
else
{
digitalWrite(ledPin_O, LOW);
}
if (buttonState_B == HIGH)
{
digitalWrite(ledPin_B, HIGH);
pixels.clear();
for(int i=15; i>=0; i--)
{
pixels.setPixelColor(i, pixels.Color(0, 255, 255));
pixels.show();
delay(DELAYVAL);
}
pixels.clear();
pixels.show();
}
else {
digitalWrite(ledPin_B, LOW);
}
}