Arduino 六个LED交通灯代码
时间: 2024-08-10 18:00:33 浏览: 103
使用Arduino Uno的交通灯-电路方案
当涉及到使用Arduino控制六个LED交通灯模拟交通信号时,这是一个基础的电子项目,通常用于教学和实验目的。以下是一个简单的Arduino Uno或类似板子上实现的六灯交通信号灯代码示例:
```cpp
#include <Adafruit_NeoPixel.h> // 引入NeoPixel库
// LED灯的数量(这里假设是6个)
#define NUM_LEDS 6
// NeoPixel的引脚,默认为10
#define LED_PIN 10
// LED灯的颜色数组,红绿黄三种颜色
const uint8_t ledColors[] = {0xFF0000, 0x00FF00, 0xFFFF00}; // 红、绿、黄
// 初始化NeoPixel对象
Adafruit_NeoPixel strip(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin(); // 初始化LED灯串
pinMode(LED_PIN, OUTPUT); // 设置LED引脚为输出
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, ledColors[i]); // 设置初始颜色为红色
}
strip.show(); // 显示颜色
}
void loop() {
static int state = 0; // 状态变量,0表示红灯,1绿灯,2黄灯
switch (state) {
case 0: // 红灯
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, ledColors);
}
strip.show();
delay(1000); // 红灯持续1秒
break;
case 1: // 绿灯
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, ledColors);
}
strip.show();
delay(1000); // 绿灯持续1秒
break;
case 2: // 黄灯
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, ledColors);
}
strip.show();
delay(500); // 黄灯持续半秒,然后切换到下一个状态
state = (state + 1) % 3; // 循环状态
break;
}
}
```
阅读全文