利用视觉暂留基于arduino的平面旋转led灯代码
时间: 2024-11-25 19:32:04 浏览: 6
基于Arduino的嵌入式技术-LED灯实验代码-20230914.zip
视觉暂留是一种人类视觉特性,当我们快速切换视觉焦点时,大脑会保留上一次看到的影像一段时间。利用这个原理,我们可以制作一些有趣的效果,比如LED灯轮转。在Arduino平台上,可以编写这样的简单代码:
```cpp
#include <Adafruit_NeoPixel.h>
#define LED_PIN 6 // LED连接到数字6引脚
#define NUM_LEDS 8 // 灯的数量
#define INTERVAL 50 // 每次闪烁间隔毫秒
Adafruit_NeoPixel strip(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800); // 创建NeoPixel对象
void setup() {
strip.begin(); // 初始化 NeoPixel
strip.show(); // 显示灯的状态
}
void loop() {
for(int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, strip.Color(255, 0, 0)); // 设置红色
strip.show();
delay(INTERVAL);
strip.setPixelColor(i, 0, 0, 0); // 关闭灯
}
strip.show(); // 显现最后一个关闭状态
delay(INTERVAL * 2); // 等待足够长的时间,让视觉暂留效果显现
}
```
这个代码通过逐个点亮和熄灭LED灯,使得灯光看起来像是在平面上连续旋转。每次循环都会从第一个LED开始,依次点亮然后熄灭,给人一种移动的感觉。
阅读全文