#include <Adafruit_NeoPixel.h>
#define PIN 5 //#定義6 PIN
Adafruit_NeoPixel strip = Adafruit_NeoPixel(85, PIN, NEO_GRB + NEO_KHZ800);
int redled2=11;
int redled=10;
int yellowled2=9;
int yellowled=8;
int greenled2=7;
int greenled=6;
int yellowpin=4;
int greenpin=3;
int redpin=2;
int red;
int yellow;
int green;
void setup()
{
strip.begin();
strip.show(); // Initialize all pixels to 'off' strip.show(); //初始化所有像素“關”
pinMode(redled2,OUTPUT);
pinMode(yellowled2,OUTPUT);
pinMode(greenled2,OUTPUT);
pinMode(redled,OUTPUT);
pinMode(yellowled,OUTPUT);
pinMode(greenled,OUTPUT);
pinMode(13,OUTPUT);
pinMode(14,OUTPUT);
pinMode(15,OUTPUT);
pinMode(redpin,INPUT);
pinMode(yellowpin,INPUT);
pinMode(greenpin,INPUT);
}
void loop()
{
red=digitalRead(redpin);
yellow=digitalRead(yellowpin);
green=digitalRead(greenpin);
if(red==LOW)RED_YES();
if(red==HIGH)RED_NO();
}
void RED_YES()//感应到人
/*{ digitalWrite( redled,HIGH);
digitalWrite( redled2,HIGH);
digitalWrite(13,HIGH);
delay(1000);
clear_led();
}*/
{ colorWipe(strip.Color(255, 0, 0), 1);
}
void RED_NO()//无感应到人
{ //空隙環(){
rainbowCycle2(5);//5速度,越细越快
}
void rainbowCycle2(uint8_t wait) //無效rainbowCycle(uint8_t有等待){
{
uint16_t i,j;
// uint16_t i,j;
for(j=0; j<256; j++)
{ // 5 cycles of all colors on wheel 對於(J = 0;Ĵ<256 * 5; J ++){// 5個週期輪上的所有顏色
for(i=0; i< strip.numPixels(); i++)
{ //對於(i = 0;我<strip.numPixels();我++){
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) - j) & 255)); // -i正转,+i 反转。+j前细后大,-j前大后细
}
strip.show();
delay(wait); // 延遲(等待);
}
}
uint32_t Wheel(byte WheelPos) { //uint32_t的車輪(字節WheelPos){
// WheelPos = 255 - WheelPos;
if(WheelPos < 30)//拖尾长度
{ // WheelPos = 100; //如果(WheelPos <85){
return strip.Color( 255 ,WheelPos , WheelPos ); //前跑馬灯颜色
}
else
{ // }其他{
// WheelPos -= 170;
return strip.Color( 0, 0, 0); //背景灯光颜色
// return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0); // 返回strip.Color(WheelPos * 3,255 - WheelPos * 3,0);
}
}
void colorWipe(uint32_t c, uint8_t wait) { //無效colorWipe(uint32_t的C,uint8_t有等待){
for(uint16_t i=0; i<strip.numPixels(); i++) { // 對於(uint16_t我= 0;我<strip.numPixels();我++){
strip.setPixelColor(i, c);
strip.show();
delay(wait); // 延遲(等待);
}
}
|