實驗說明:
- 本文將使用ESP32自製DIY七彩超酷LED燈。
- RGB LED有四支腳,本實驗使用的是共陰極,其中最長的腳要接地,其他三支腳分別控制R、G、B色彩。
- 使用ESP32腳位GPIO15、16、17能輸出PWM,所以可調整三原色的個別強度,形成更多的色彩。
材料:
- ESP32-E DevKit
- USB 傳輸線
- RGB LED
- 麵包板
- 麵包板跳線
▼ 購買IoT物聯網學習教材:
▼注意:假如使用下列程式碼發生編譯錯誤,則表示您目前安裝的ESP32函式庫較為新版,請務必將「#include <analogWrite.h>」這一行移除並重新編譯,則可編譯成功並正常運行。
程式:
#include <analogWrite.h>
int redPin = 15; // R 紅色LED控制腳 連接到ESP32的 GPIO15
int greenPin = 17; // G 綠色LED控制腳 連接到ESP32的 GPIO17
int bluePin = 16; // B 藍色LED控制腳 連接到ESP32的 GPIO16
void setup()
{
pinMode(redPin, OUTPUT); //設置redPin對應的管腳GPIO15為輸出
pinMode(greenPin, OUTPUT); //設置greenPin對應的管腳GPIO17為輸出
pinMode(bluePin, OUTPUT); //設置bluePin對應的管腳GPIO16為輸出
}
void loop()
{
// Basic colors:
color(255, 0, 0); // 红色亮
delay(1000); //延時一秒
color(0,255, 0); //綠色亮
delay(1000); //延時一秒
color(0, 0, 255); //藍色亮
delay(1000); //延時一秒
// Example blended colors:
color(255,255,0); // 黄色亮
delay(1000); //延時一秒
color(128,0,255); // 紫色亮
delay(1000); //延時一秒
color(255,255,255); // 白色亮
delay(1000); //延時一秒
color(0,0,0); // 關閉led
delay(1000); //延時一秒
}
//顏色控制函數
void color (unsigned char red, unsigned char green, unsigned char blue)
{
analogWrite(redPin, red);
analogWrite(greenPin,green);
analogWrite(bluePin, blue);
}