#包括
#定义pixel_pin 6 / /??????
#定义sensor_pin 9 / /???????
#定义speaker_pin 13 / /????????
#定义pixel_count 32 / /?????
adafruit_neopixel条= adafruit_neopixel(pixel_count,pixel_pin,neo_grb + neo_khz800);
在随机数;
setup() { void
pinmode(speaker_pin,输出);
digitalwrite(speaker_pin,低);
begin()条;
show()条;
pinmode(sensor_pin,输入);
使用的随机种子数(analogread(0));
(9600)开始连载;
}
loop() { void
如果(//读出数字接口的值(sensor_pin)= =高){
digitalwrite(speaker_pin,高);
随机数=随机(300);
串行。println(随机数为67);
thunder_strike(随机数为67);
延迟(3000);
digitalwrite(speaker_pin,低);
其他{ }
如果(millis() % 100000 = = 0){
为(int i = 20;i < 100;i++){
colorwipe(带颜色(我i-20,0),0);
}
为(int i = 100;我20;我--){
colorwipe(带颜色(我i-20,0),0);
}
colorwipe(带颜色的(0,0,0),0);
延迟(3000);
}
}
}
无效thunder_strike(int类型){
如果(型<20){
colorwipe_short(0,pixel_count,带颜色(73,147,255),3);
colorwipe(带颜色(0,0,0),0);
延迟(500);
colorwipe_short(0,pixel_count,带颜色(73,147,255),3);
延迟(20);
colorwipe(带颜色(0,0,0),0);
延迟(500);
#p#分页标题#e#} else if(型<40){
colorwipe(带颜色(104,94,94),3);
colorwipe(带颜色的(0,0,0),0);
延迟(500);
colorwipe(带颜色(104,94,94),3);
延迟(20);
colorwipe(带颜色的(0,0,0),0);
延迟(500);
} else if(型<60){
colorwipe(带颜色(181,165,95),3);
延迟(1000);
colorwipe(带颜色的(0,0,0),0);
延迟(100);
colorwipe(带颜色(181,165,95),3);
延迟(500);
colorwipe(带颜色的(0,0,0),0);
延迟(500);
其他{ }
(5)rainbowcycle;
colorwipe(带颜色的(0,0,0),0);
}
}
无效colorwipe_short(uint16_t,uint16_t恩,uint32_t C,uint8_t等){
对于(uint16_t我=是;我<恩;i++){
带setpixelcolor(I,C);
show()条;
延迟(等待);
}
}
/ /补点后与另一颜色
无效colorwipe(uint32_t C,uint8_t等){
对于(uint16_t i = 0;i <条。numpixels();i++){
带setpixelcolor(I,C);
show()条;
延迟(等待);
}
}
无效的彩虹(uint8_t等){
uint16_t I,J;
为(J = 0;J<256;j++){
为(i = 0;i <条。numpixels();i++){
条。setpixelcolor(我轮((i+j)和255));
}
show()条;
延迟(等待);
}
}
/ /略有不同,这使得彩虹均匀地分布在整个
无效rainbowcycle(uint8_t等){
uint16_t I,J;
为(J = 0;J<256×5;j++){ // 5轮周期的所有颜色
为(i = 0;i <条。numpixels();i++){
条。setpixelcolor(我轮(((我* 256 /条。numpixels())+ J)和255));
}
show()条;
延迟(等待);
}
}
无效theaterchase(uint32_t C,uint8_t等){
为(j = 0;J<10;j++){ //做10个周期的追逐
为(int q = 0;Q<3;Q + +){
为(int i = 0;i <条。numpixels();我=我+ 3){
条。setpixelcolor(我+ Q,C);//把每第三像素
}
show()条;
延迟(等待);
为(int i = 0;i <条。numpixels();我=我+ 3){
条。setpixelcolor(我+ Q,0);//把每第三像素的了
}
}
}
}
/ /剧院式爬行灯彩虹效果
无效theaterchaserainbow(uint8_t等){
为(j = 0;J<256;j++){ //周期的所有256种颜色的车轮
为(int q = 0;Q<3;Q + +){
为(int i = 0;i <条。numpixels();我=我+ 3){
条。setpixelcolor(我+ Q,轮((i+j)% 255));//把每第三个像素
}
show()条;
延迟(等待);
为(int i = 0;i <条。numpixels();我=我+ 3){
条。setpixelcolor(我+ Q,0);//把每第三像素的了
}
}
}
}
//输入值0到255得到一个颜色值。
/ /色彩过渡R G B回到R.
uint32_t轮(字节wheelpos){
wheelpos = 255 - WheelPos;
如果(wheelpos<85){
返回带颜色(255 wheelpos * 3、0、wheelpos×3);
}
如果(wheelpos<170){
wheelpos = 85;
返回带颜色(0,wheelpos×3、255×3 wheelpos);
}
wheelpos = 170;
返回带颜色(wheelpos×3,255×3 wheelpos,0);
}