【Arduino】斑马线指示灯Zabra_crossing_WS2812
生活随笔
收集整理的這篇文章主要介紹了
【Arduino】斑马线指示灯Zabra_crossing_WS2812
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define MAX_LED 40
#define ADD true
#define SUB false#define ButtonPin 2 // 按鍵接線引腳
#define BeepPin 3 // 蜂鳴器接線引腳
#define LightPin A0 // 光線傳感器引腳int val = 0;
boolean stat = ADD;int LightVal = 0;
int ButtonVal = 1;int Number = 0; // 執(zhí)行次數(shù)定義一個(gè)空變量
// Parameter 1 = ws2811級聯(lián)數(shù)量
// Parameter 2 = arduino PIN
// Parameter 3 = pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel( MAX_LED, PIN, NEO_RGB + NEO_KHZ800 );void setup()
{strip.begin(); //初始化Adafruit_NeoPixel;strip.show(); //顯示所有LED為關(guān)狀態(tài);pinMode(LightPin, INPUT);pinMode(ButtonPin, INPUT);pinMode(BeepPin, OUTPUT);Serial.begin(9600);
}void loop()
{digitalWrite(BeepPin, HIGH);LightVal = analogRead(LightPin); // 讀取亮度值ButtonVal = digitalRead(ButtonPin); // 讀取按鈕狀態(tài)//Serial.println(LightVal);if (LightVal < 300 & ButtonVal == 1) // 天黑且按鍵被按下{Number = 10;while(Number > 0){BeepDD();uint8_t i,a=0; uint32_t color = strip.Color(0, 255, 125); //選擇所顯示的顏色while(a < 40){for(i=0;i<40;i++){if(i==a) {strip.setPixelColor(i, color); //第幾個(gè)LED點(diǎn)亮;}else {strip.setPixelColor(i, 0); //使其他LED全滅;}}strip.show(); //是LED顯示所選的顏色;delay(20); //延時(shí)20ms;a++; }Number --;}}
}void BeepDD()
{digitalWrite(BeepPin, LOW);delay(50);digitalWrite(BeepPin, HIGH);delay(100);digitalWrite(BeepPin, LOW);delay(50);digitalWrite(BeepPin, HIGH);delay(100);
}
總結(jié)
以上是生活随笔為你收集整理的【Arduino】斑马线指示灯Zabra_crossing_WS2812的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Arduino】HX711驱动程序
- 下一篇: 【Arduino】利用FDC2214加L