#include <Arduino.h>
#define RGB_RED_PIN 25
#define RGB_GREEN_PIN 26
#define RGB_BLUE_PIN 27
//// กำหนดค่า
#define LEDC_CHANNEL_0 0
#define LEDC_CHANNEL_1 1
#define LEDC_CHANNEL_2 2
#define LEDC_BASE_FREQ 5000
#define LED_TIMER_BIT 8
void setup() {
//ledcSetup(name chanel, name freq, name resolution_bits)
ledcSetup(LEDC_CHANNEL_0, LEDC_BASE_FREQ, LED_TIMER_BIT);
ledcSetup(LEDC_CHANNEL_1, LEDC_BASE_FREQ, LED_TIMER_BIT);
ledcSetup(LEDC_CHANNEL_2, LEDC_BASE_FREQ, LED_TIMER_BIT);
//ledcAttachpin(pin, channel) ฟังก์ชันผูก timer เข้ากับ GPIO
ledcAttachPin(RGB_RED_PIN, LEDC_CHANNEL_0);
ledcAttachPin(RGB_GREEN_PIN, LEDC_CHANNEL_1);
ledcAttachPin(RGB_BLUE_PIN, LEDC_CHANNEL_2);
//ledcWrite(name channel, name duty) กำหนดค่าดิวตี้ไซเคิล
ledcWrite(LEDC_CHANNEL_0, 255);
ledcWrite(LEDC_CHANNEL_1, 255);
ledcWrite(LEDC_CHANNEL_2, 255);
}
void ctrLEDRGB(int R, int G, int B){
ledcWrite(LEDC_CHANNEL_0, map(R, 255, 0, 0, 255)); //map(value, fromLow, fromHigh, toLow, toHigh)
ledcWrite(LEDC_CHANNEL_1, map(G, 255, 0, 0, 255));
ledcWrite(LEDC_CHANNEL_2, map(B, 255, 0, 0, 255));
}
void loop(){
ctrLEDRGB(255,161,0); // สีส้มอ่อน
delay(1000);
ctrLEDRGB(0,30,255); // สีฟ้าเข้ม
delay(1000);
ctrLEDRGB(255,0,28); // สีแดงอ่อน
delay(1000);
}