arduino流水灯程序代码
时间: 2023-11-30 11:04:08 浏览: 182
以下是Arduino控制5050 RGB全彩LED流水灯模块的程序代码:
```arduino
int led = 9; // LED连接到数字引脚9
int flag = 0; // 标志LED是否亮起
void setup() {
pinMode(led, OUTPUT); // 将LED引脚设置为输出模式
}
void loop() {
while(!digitalRead(key)) { // 按键按下,!digitalRead(key)值为1,一直在while循环里,就不会因为loop循环特性而执行其他命令造成多次触发
// do nothing
}
if(flag == 0) { // 判断小灯是否亮起
flag = 1; // 标志小灯亮起
digitalWrite(led, LOW); // 对应的LED小灯亮起
} else {
flag = 0; // 标志小灯亮熄灭
digitalWrite(led, HIGH); // 对应的LED小灯熄灭
}
}
```
相关问题
arduino流水灯随机点亮
Arduino流水灯随机点亮是一种常见的电子制作项目,通常利用Arduino控制板和LED灯条实现。其基本原理是通过编程让每个LED灯按照随机顺序或间隔亮灭。以下是简单的步骤:
1. **硬件准备**:
- 如果需要,可能还需要电阻分压,因为LED直接接Arduino可能会烧坏。
2. **软件编写**:
- 使用Arduino IDE编写程序,引入必要的库,如`FastLED`或`Adafruit_NeoPixel`来处理LED灯操作。
- 定义一个数组或动态数组表示LED灯的位置和状态。
- 创建一个随机数生成器函数,用于设定下一次灯点亮的序号或等待时间。
- 主循环里,改变指定位置的LED状态,并可能随机延时一段时间再切换到下一个LED。
示例代码片段(假设使用`FastLED`库):
```cpp
#include <FastLED.h>
#define LED_PIN strip.begin() // LED灯条的开始pin
CRGB leds[N_LEDS]; // N_LEDS是你灯的数量
void setup() {
FastLED::setup(LED_PIN);
}
void loop() {
static int current = 0;
leds[current] = CRGB::Red; // 设置当前LED颜色
FastLED.show(); // 更新LED状态
current = rand() % N_LEDS; // 随机选择下一个LED
delay(random(500, 1000)); // 随机等待时间,防止频率过高
}
```
帮我写一个arduino 流水灯
下面是一个简单的arduino流水灯代码:
```
int delayTime = 100; // 设置延迟时间,单位为毫秒
void setup() {
// 初始化引脚
for(int i = 2; i <= 7; i++) {
pinMode(i, OUTPUT);
}
}
void loop() {
// 从左往右亮灯
for(int i = 2; i <= 7; i++) {
digitalWrite(i, HIGH);
delay(delayTime);
digitalWrite(i, LOW);
}
// 从右往左亮灯
for(int i = 7; i >= 2; i--) {
digitalWrite(i, HIGH);
delay(delayTime);
digitalWrite(i, LOW);
}
}
```
这个程序使用6个LED灯连接到arduino的2~7引脚上,然后从左到右和从右到左依次点亮和关闭LED灯。程序中的delayTime变量可以调整流水灯的速度。
阅读全文