1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > ws2812b灯带容易坏_WS2812灯带问题

ws2812b灯带容易坏_WS2812灯带问题

时间:2022-05-07 06:43:12

相关推荐

ws2812b灯带容易坏_WS2812灯带问题

大神,能帮忙看一下吗?非常感谢!

[mw_shl_code=arduino,true]#include

#include

//strip

#define PIN 2

#define MAX_LED 40

#define ADD true

#define SUB false

int val = 0;

boolean stat = ADD;

Adafruit_NeoPixel strip = Adafruit_NeoPixel( MAX_LED, PIN, NEO_RGB + NEO_KHZ800 );

int MinBrightness = 2; //value 0-255

int MaxBrightness = 220; //value 0-255

int fadeInWait = 7; //lighting up speed, steps.

int fadeOutWait = 7; //dimming speed, steps.

int VCC = 13;//as power vcc

int D3 = 12;

int D2 = 11;

int D1 = 10;

int D0 = 9;

unsigned char mode; //状态

unsigned char temp1;//模式

//int InputState = 1; //variable for reading the input status

// the setup routine runs once when you press reset:

void setup() {

// initialize the digital pin

strip.begin();

strip.show();

pinMode(VCC, OUTPUT);

pinMode(D3, INPUT);

pinMode(D2, INPUT);

pinMode(D1, INPUT);

pinMode(D0, INPUT);

digitalWrite(VCC, HIGH);//AS VCC 作为电源引脚

Serial.begin(9600);

delay(500);//Waiting for rf receiver module startup

}

void rgbBreathe(uint32_t c, uint8_t y) {

for (uint8_t b = MinBrightness; b < MaxBrightness; b++) {

strip.setBrightness(b * 255 / 255);

for (uint16_t i = 0; i < strip.numPixels(); i++) {

strip.setPixelColor(i, c);

}

strip.show();

delay(fadeInWait);

}

strip.setBrightness(MaxBrightness * 255 / 255);

for (uint16_t i = 0; i < strip.numPixels(); i++) {

strip.setPixelColor(i, c);

strip.show();

delay(y);

}

for (uint8_t b = MaxBrightness; b > MinBrightness; b--) {

strip.setBrightness(b * 255 / 255);

for (uint16_t i = 0; i < strip.numPixels(); i++) {

strip.setPixelColor(i, c);

}

strip.show();

delay(fadeOutWait);

}

}

void changeColor(uint32_t c) {

for (uint16_t i = 0; i < MAX_LED; i++) {

strip.setPixelColor(i, c);

}

strip.show();

delay(20);

}

void rgbChasing(uint32_t c) {

for (uint16_t i = 0 ; i < MAX_LED; i++) {

strip.setPixelColor(i, c);

strip.setBrightness(255);

strip.show();

delay(70);

}

changeColor(strip.Color(0, 0, 0));

}

void button_scan()

{

//A

temp1 = digitalRead(D3);

if (temp1 == HIGH)

{

delay(10);

temp1 = digitalRead(D3);

if (temp1 == HIGH)

{

mode = 1;

}

//抬手检测

while (temp1 == HIGH) {

temp1 = digitalRead(D3);

}

}

//B

temp1 = digitalRead(D2);

if (temp1 == HIGH)

{

delay(10);

temp1 = digitalRead(D2);

if (temp1 == HIGH)

{

mode = 2;

}

//抬手检测

while (temp1 == HIGH) {

temp1 = digitalRead(D2);

}

}

//C

temp1 = digitalRead(D1);

if (temp1 == HIGH)

{

delay(10);

temp1 = digitalRead(D1);

if (temp1 == HIGH)

{

mode = 3;

}

//抬手检测

while (temp1 == HIGH) {

temp1 = digitalRead(D1);

}

}

//D

temp1 = digitalRead(D0);

if (temp1 == HIGH)

{

delay(10);

temp1 = digitalRead(D0);

if (temp1 == HIGH)

{

mode = 4;

}

//抬手检测

while (temp1 == HIGH) {

temp1 = digitalRead(D0);

}

}

}

// the loop routine runs over and over again forever:

void loop() {

button_scan();

switch (mode) {

case 1:

rgbBreathe(strip.Color(255, 0, 0), 5);

break;

case 2:

changeColor(strip.Color(0, 0, 0));

rgbChasing(strip.Color(255, 0, 0));

break;

case 3:

rgbBreathe(strip.Color(100, 255, 0), 5);

break;

case 4:

changeColor(strip.Color(0, 0, 0));

break;

}

}[/mw_shl_code]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。