วันศุกร์, 18 เมษายน 2568

บอร์ด ESP32 ปรับความสว่าง led แบบง่ายๆ

เขียนโปรแกรมสั่งงานบอร์ด ESP32 ปรับความสว่างไฟ โมดูล LED แบบ PWM

กว่าจะเขียนโปรแกรมสั่งปรับความสว่าง led ได้ นั่งงมเข็มตั้งนาน ดู google ก็แล้ว จะถามพี่ๆก็ไม่กล้า จบที่ คำสั่ง for นี่เอง for วนๆไปเรื่อยๆ for 2 ลูป เขียนโปรแกรมก็ก็อกๆแก็กๆดูแปลกๆ😅 ปรับความสว่างขึ้นลงได้ซะงั้น

ปรับความสว่างแสง led แบบนี้ถาม google ดู เค้าบอกว่าเป็นหลักกการปรับความสว่างแบบ PWM แล้วคืออะไร? เอาน่า!! ไม่รู้เหมือนกัน ก็อปตัดแปะจบงานได้ สำหรับมือใหม่อย่างเราก็ ok แล้วละครับบบ 😘

#define led1 4

#define led2 12

#define led3 13

#define led4 25

#define PWM0_Ch 0

#define PWM1_Ch 1

#define PWM2_Ch 2

#define PWM3_Ch 3

#define PWM1_Res 8

#define PWM1_Freq 1000

void setup() {

ledcAttachPin(led1, PWM0_Ch);

ledcAttachPin(led2, PWM1_Ch);

ledcAttachPin(led3, PWM2_Ch);

ledcAttachPin(led4, PWM3_Ch);

ledcSetup(PWM0_Ch, PWM1_Freq, PWM1_Res);

ledcSetup(PWM1_Ch, PWM1_Freq, PWM1_Res);

ledcSetup(PWM2_Ch, PWM1_Freq, PWM1_Res);

ledcSetup(PWM3_Ch, PWM1_Freq, PWM1_Res);

}

void loop() {

for (int x =0; x <= 255 ;x++)

{

ledcWrite(PWM0_Ch,x);

ledcWrite(PWM1_Ch,x);

ledcWrite(PWM2_Ch,x);

ledcWrite(PWM3_Ch,x);

delay(10);

}

delay(500);

for (int x = 255; x >= 0 ;x–)

{

ledcWrite(PWM0_Ch,x);

ledcWrite(PWM1_Ch,x);

ledcWrite(PWM2_Ch,x);

ledcWrite(PWM3_Ch,x);

delay(10);

}

delay(500);

}