ESP8266点亮RGB LED
硬件准备
- RGB LED x1
- ESP8266开发板 x1
- 4pin杜邦线 x1
Arduino代码
#include <Ticker.h>
// 定义 RGB LED 灯的引脚
const int rPin = D2;
const int gPin = D1;
const int bPin = D0;
// 初始化 Ticker 对象
Ticker timer;
void setup() {
// 设置串口波特率
Serial.begin(115200);
// 定义 RGB LED 灯的引脚为输出模式
pinMode(rPin, OUTPUT);
pinMode(gPin, OUTPUT);
pinMode(bPin, OUTPUT);
// 初始化随机数种子
randomSeed(analogRead(A0));
// 启动定时器,每秒执行一次 lightRandomRGB 函数
timer.attach(1, lightRandomRGB);
}
void loop() {
// 主循环无需操作,所有任务由定时器处理
}
// 将 0-255 范围的颜色值转换为 0-1023 范围
int colorToPWM(int color) {
return map(color, 0, 255, 0, 1023);
}
// 随机点亮 RGB LED 灯的函数
void lightRandomRGB() {
int rColor = random(0, 256); // 生成 0-255 范围内的随机红色值
int gColor = random(0, 256); // 生成 0-255 范围内的随机绿色值
int bColor = random(0, 256); // 生成 0-255 范围内的随机蓝色值
Serial.print("Random Colors - R: ");
Serial.print(rColor);
Serial.print(", G: ");
Serial.print(gColor);
Serial.print(", B: ");
Serial.println(bColor);
analogWrite(rPin, colorToPWM(rColor));
analogWrite(gPin, colorToPWM(gColor));
analogWrite(bPin, colorToPWM(bColor));
}
未经允许,禁止转载。