For loop 我可以同时(而不是顺序)发送Arduino输出吗?
我有八个LED灯,我用Arduino灯淡入淡出。我用下面的代码分别控制每一个For loop 我可以同时(而不是顺序)发送Arduino输出吗?,for-loop,arduino,output,For Loop,Arduino,Output,我有八个LED灯,我用Arduino灯淡入淡出。我用下面的代码分别控制每一个 for(int fade1=0;fade1<=255;fade1+=1){ analogWrite(8,fade1); delay(10); } for(int fade1=255;fade1>=0;fade1-=1){ analogWrite(8,fade1); delay(10); } for(int-fade1=0;fade1=0;fade1-=1){
for(int fade1=0;fade1<=255;fade1+=1){
analogWrite(8,fade1);
delay(10);
}
for(int fade1=255;fade1>=0;fade1-=1){
analogWrite(8,fade1);
delay(10);
}
for(int-fade1=0;fade1=0;fade1-=1){
模拟写入(8,fade1);
延迟(10);
}
我希望能够为八个单独的管脚分配一个单独的淡入淡出时间和延迟,这样所有八个灯光都会同时淡入淡出,并无限循环。然而,我只能让他们按顺序开始我的程序
我一直在使用for循环、循环中的循环等的不同位置,但似乎无法让它实现我想要的。有人可以向我推荐任何想法或示例吗?将16个循环减少为两个:
for(int fade1=0;fade1<=255;fade1+=1){
analogWrite(8,fade1);
analogWrite(9,fade1);
// etc.
delay(10);
}
for(int fade1=255;fade1>=0;fade1-=1){
analogWrite(8,fade1);
analogWrite(9,fade1);
// etc.
delay(10);
}
for(int-fade1=0;fade1=0;fade1-=1){
模拟写入(8,fade1);
模拟写入(9,fade1);
//等等。
延迟(10);
}
您将无法观察从写入端口8到写入端口9的时间差。此代码将导致LED同时淡入和淡出,但您可能希望它们单独淡出
在这种情况下,您需要分别设置每个LED的淡入度值,因此定义淡入度值向量,初始值为:
int fade[8] = {2, 0, 4,200,20,47,45,150};
int dir[8] = {1,-1, 1, -1, 1,-1, 1, -1};
loop() {
for (i = 0; i < 8, i++)
{
if ((fade[i] <= 0) || (fade[i] >= 255))
{
dir[i] *= -1;
} else
fade[i] += dir[i];
}
// + 8 for leds at ports 8 thru 15
analogWrite(i+8, fade[i]);
}
delay(10);
}
int-fade[8]={2,04200,20,47,45150};
int dir[8]={1,-1,1,-1,1,-1,1,-1};
循环(){
对于(i=0;i<8,i++)
{
如果((衰减[i]=255))
{
dir[i]*=-1;
}否则
淡入淡出[i]+=dir[i];
}
//+8用于端口8至15处的LED
模拟写入(i+8,衰减[i]);
}
延迟(10);
}
注意,我还没有尝试过这段代码,但这是一个很好的开始,LED看起来彼此独立运行。如果您需要大量示例,请查看我的博客。特别是在本节中,我有很多关于如何以高更新频率独立衰减20个LED的示例。太棒了!这看起来是我开始实验的一个很好的开始,同时也给了我一些随机化一些值的想法。。。