使用ESP8266-NodeMCU实现彩虹色的变换(依次显示红、橙、黄、绿、青、蓝、紫七种颜色)
时间: 2023-10-22 11:08:46 浏览: 71
阿里云通过esp8266控制下位机控制RGB不同颜色 RGB+stm32+阿里云
5星 · 资源好评率100%
可以使用NodeMCU的PWM功能来控制RGB LED的颜色变化,代码如下:
```c++
#include <Arduino.h>
// 定义RGB LED的引脚
#define RED_LED_PIN D1
#define GREEN_LED_PIN D2
#define BLUE_LED_PIN D3
void setup() {
// 初始化串口
Serial.begin(115200);
// 设置RGB LED的引脚为输出模式
pinMode(RED_LED_PIN, OUTPUT);
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(BLUE_LED_PIN, OUTPUT);
}
void loop() {
// 定义彩虹色的数组
int rainbowColors[][3] = {
{255, 0, 0}, // 红色
{255, 127, 0}, // 橙色
{255, 255, 0}, // 黄色
{0, 255, 0}, // 绿色
{0, 255, 255}, // 青色
{0, 0, 255}, // 蓝色
{127, 0, 255} // 紫色
};
// 循环显示彩虹色
for (int i = 0; i < 7; i++) {
// 获取当前颜色
int *color = rainbowColors[i];
// 设置RGB LED的亮度
analogWrite(RED_LED_PIN, color[0]);
analogWrite(GREEN_LED_PIN, color[1]);
analogWrite(BLUE_LED_PIN, color[2]);
// 输出当前颜色值
Serial.print("Color: ");
Serial.print(color[0]);
Serial.print(", ");
Serial.print(color[1]);
Serial.print(", ");
Serial.println(color[2]);
// 等待一段时间
delay(1000);
}
}
```
这段代码使用了一个二维数组来存储彩虹色的RGB值,然后使用循环依次显示每种颜色。在循环中,使用`analogWrite()`函数来控制RGB LED的亮度,从而实现颜色变化。同时,使用`delay()`函数来等待一段时间,以便观察颜色的变化效果。
阅读全文