Arduino渐变细节
Arduino fading details
我下面发布的代码不应该允许我在无限循环中将RGB LED从0渐变到255,然后再回到0,以此类推吗?
目前,它只是逐渐变大,但随后并没有消失,它确实闪烁了一段时间,但随后它再次在255时充满电。
void setup()
{
Serial.begin(9600);
pinMode(greenPin, OUTPUT);
pinMode(redPin, OUTPUT);
pinMode(bluePin, OUTPUT);
fade = 0;
}
void loop()
{
while(fade < 256)
{
analogWrite(redPin, fade);
delay(30);
analogWrite(greenPin, fade );
delay(30);
analogWrite(bluePin, fade);
delay(30);
fade++;
}
while(fade > 0)
{
analogWrite(redPin, fade);
delay(30);
analogWrite(greenPin, fade );
delay(30);
analogWrite(bluePin, fade);
delay(30);
fade--;
}
}
如果淡入是一个字节:
渐变为256->00!所以第二个循环会"非常短":-)
我建议在第一个循环中只使用:
while(fade < 255)
则它在255处停止,例如0xff
第二个while应该正确运行。
永远使用一个循环如何:
fade = 0;
step = 1;
while(1)
{
step = fade == 0 ? 1 : (fade == 255 ? -1 : step);
fade += step;
analogWrite(redPin, fade);
delay(30);
analogWrite(greenPin, fade );
delay(30);
analogWrite(bluePin, fade);
delay(30);
}
相关文章:
- 'using namespace'实现细节的便捷方法(仅标头库)?
- 使用整数减法来制作线性线渐变
- Clang 错误 – 编译器错误或缺少一些细节?
- 开罗渐变图案不使用设置颜色
- 用于隐藏结构细节的迭代器适配器
- 将C++项目迁移到 Java,保护实现细节
- Deque实施细节
- 关于为什么Windows的.dll不适用于Linux的细节
- 是否有一种更干净的方法来揭示实施细节进行测试
- 用渐变画圆有问题
- 如何在C++共享库中隐藏业务对象的实现细节并提供接口
- 接口,在C++中隐藏具体的实现细节
- 我可以抽象出模板类的具体细节吗
- 仅从链接的库中渐变NativeExecutable
- TeamCity c++渐变构建删除工件依赖项
- 无锁单写多读列表的实现细节
- 与朋友在课堂上进行内部功能,以隐藏公共细节
- 无法找出赛格故障,提供了很多细节
- 为初学者澄清C++中类定义和实现的一些细节
- Arduino渐变细节