Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 一次淡入和淡出LED条的部分_Arduino_Led - Fatal编程技术网

Arduino 一次淡入和淡出LED条的部分

Arduino 一次淡入和淡出LED条的部分,arduino,led,Arduino,Led,我的代码有一些问题。我希望它做什么: 淡入式LED 0-12 延迟0.5秒 淡入式LED 13-26 延迟(x金额) 淡出发光二极管0-12 延迟0.5秒(同上) 淡出发光二极管13-26 它的作用是: 淡入式LED 0-12 延迟(x金额) 淡出发光二极管0-12 淡入式LED 13-26 延迟(x金额) -淡出发光二极管13-26 这是我的密码: #include <Adafruit_NeoPixel.h> #define SENSORPIN 4 #define LEDP

我的代码有一些问题。我希望它做什么:

  • 淡入式LED 0-12
  • 延迟0.5秒
  • 淡入式LED 13-26
  • 延迟(x金额)
  • 淡出发光二极管0-12
  • 延迟0.5秒(同上)
  • 淡出发光二极管13-26
它的作用是:

  • 淡入式LED 0-12
  • 延迟(x金额)
  • 淡出发光二极管0-12
  • 淡入式LED 13-26
  • 延迟(x金额) -淡出发光二极管13-26
这是我的密码:

#include <Adafruit_NeoPixel.h>
#define SENSORPIN 4
#define LEDPIN 13

// variables will change:
int sensorState = 0, lastState=0;         // variable for reading the       pushbutton status

int PIN = 6;
int totalLEDs = 26;
int ledFadeTime = 10;
int lightuptime = 7000;

Adafruit_NeoPixel strip = Adafruit_NeoPixel(totalLEDs, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'

  pinMode(SENSORPIN, INPUT);     
  digitalWrite(SENSORPIN, HIGH); // turn on the pullup

  Serial.begin(9600);
}

void loop() {
  // read the state of the sensor value:
  sensorState = digitalRead(SENSORPIN);

  // check if the sensor beam is broken
  // if it is, the sensorState is LOW:
  if (sensorState == LOW) {     
    rgbFadeInAndOut(255, 255, 255, ledFadeTime,0,13);   
    delay(50);
    rgbFadeInAndOut(255, 255, 255, ledFadeTime,13,26);
  }
  else {

  }

  lastState = sensorState;

}

void rgbFadeInAndOut(uint8_t red, uint8_t green, uint8_t blue, uint8_t wait, uint8_t ledStart, uint8_t ledEnd) {
 for(uint8_t b = 0; b <255; b++) {
     for(uint8_t i=ledStart; i < ledEnd; i++) {
        strip.setPixelColor(i, red * b/255, green * b/255, blue * b/255);
     }
     delay(25);
     strip.show();
    //delay(wait);
  };

  delay(lightuptime);

 for(uint8_t b=255; b > 0; b--) {
     for(uint8_t i = ledStart; i < ledEnd; i++) {
        strip.setPixelColor(i, red * b/255, green * b/255, blue * b/255);
        if(b==1){
           strip.setPixelColor(i, 0, 0, 0);
        }
      }
      strip.show();
      delay(wait);
  };
};
#包括
#定义传感器针脚4
#定义LED引脚13
//变量将发生变化:
int sensorState=0,lastState=0;//用于读取按钮状态的变量
int引脚=6;
整数=26;
int-ledFadeTime=10;
int-lightuptime=7000;
Adafruit_NeoPixel条=Adafruit_NeoPixel(总计、销、NEO_GRB+NEO_KHZ800);
无效设置(){
strip.begin();
strip.show();//将所有像素初始化为“关闭”
引脚模式(传感器引脚,输入);
digitalWrite(传感器引脚,高);//打开上拉
Serial.begin(9600);
}
void循环(){
//读取传感器值的状态:
sensorState=数字读取(SENSORPIN);
//检查传感器光束是否损坏
//如果是,则传感器状态为低:
如果(传感器状态==低){
rgbFadeInadount(255,255,255,ledFadeTime,0,13);
延迟(50);
RGbFadeFinandout(255、255、255、ledFadeTime、13、26);
}
否则{
}
lastState=传感器状态;
}
无效RGBFADEINADUNT(uint8_t红色、uint8_t绿色、uint8_t蓝色、uint8_t等待、uint8_t LED开始、uint8_t LED结束){
对于(uint8_t b=0;b0;b--){
对于(uint8_t i=ledStart;i

我缺少什么?

在将控制权返回调用函数之前,您的函数
rgbFadeInAndOut
将淡入然后淡出指定的LED

如果您想要您想要的行为,只需将淡入淡出分割为两个单独的函数:
rgbFadeIn(…)
rgbFadeOut(…)

然后你会:

rgbFadeIn(0..12);
delay(500);   // note that 0.5 seconds is 500ms not 50
rgbFadeIn(13..26);
delay(x amount)
rgbFadeOut(0..12);
delay(500);   
rgbFadeOut(13..26);

这就成功了。谢谢你的帮助:)