การเปิด/ปิด LED ด้วยสัญญาณดิจิตอล
ในบทความนี้ เราจะมาทำความเข้าใจวิธีการควบคุมไฟ LED ให้เปิดและปิดโดยใช้สัญญาณดิจิตอลผ่านบอร์ดไมโครคอนโทรลเลอร์ ESP32-C3 บน MicroLearner ซึ่งเป็นหนึ่งในโปรเจคพื้นฐานที่เหมาะสำหรับผู้เริ่มต้นเรียนรู้การเขียนโปรแกรมและการใช้งานฮาร์ดแวร์อิเล็กทรอนิกส์
โค้ดที่ใช้
โค้ดที่เราจะทำความเข้าใจในบทความนี้มีดังนี้:
int LED = 8;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
การทำงานของโค้ด
มาดูกันว่าโค้ดแต่ละส่วนทำงานอย่างไร:
1.กำหนดตัวแปร
int LED = 8;
บรรทัดนี้กำหนดตัวแปร LED และกำหนดให้เชื่อมโยงกับ
Built-in LED
คือพินดิจิตอลหมายเลข GPIO8 บนบอร์ด ESP32-C3 Super Mini ซึ่งเป็นพินที่เราจะใช้ควบคุม LED2.ฟังก์ชัน loop()
void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
- ฟังก์ชัน loop() จะทำงานซ้ำไปเรื่อย ๆ หลังจาก setup() เสร็จสิ้น
- digitalWrite(LED, HIGH): ส่งสัญญาณดิจิตอลระดับสูง (5V) ไปที่พิน 8 ทำให้ LED ติดสว่าง
- delay(1000): หน่วงเวลา 1000 มิลลิวินาที (1 วินาที) เพื่อให้ LED ติดค้างไว้
- digitalWrite(LED, LOW): ส่งสัญญาณดิจิตอลระดับต่ำ (0V) ไปที่พิน 8 ทำให้ LED ดับ
- delay(1000): หน่วงเวลาอีก 1 วินาที ก่อนที่ลูปจะเริ่มใหม่
ผลลัพธ์
เมื่ออัปโหลดโค้ดนี้ลงใน Arduino และต่อวงจรเรียบร้อยแล้ว LED จะกระพริบ โดย:
-
- ติดสว่าง เป็นเวลา 1 วินาที
-
- ดับลง เป็นเวลา 1 วินาที
- ทำซ้ำแบบนี้ไปเรื่อย ๆ
การประยุกต์ใช้งาน
โค้ดนี้เป็นจุดเริ่มต้นที่ดีสำหรับการเรียนรู้การควบคุมอุปกรณ์ด้วยสัญญาณดิจิตอล คุณสามารถปรับแต่งเพิ่มเติมได้ เช่น:
-
- เปลี่ยนระยะเวลาการหน่วง (delay) เพื่อให้ LED กระพริบเร็วหรือช้าลง
-
- เพิ่ม LED อีกดวงและควบคุมพร้อมกันโดยใช้พินอื่น ๆ
-
- ผสมกับเซ็นเซอร์เพื่อให้ LED ตอบสนองต่อสิ่งแวดล้อม เช่น เปิดเมื่อแสงน้อย
สรุป
การเปิด/ปิด LED ด้วยสัญญาณดิจิตอลเป็นตัวอย่างพื้นฐานที่ช่วยให้เราเข้าใจการทำงานของไมโครคอลโทรลเลอร์ และการเขียนโค้ดควบคุมฮาร์ดแวร์ โค้ดนี้เรียบง่ายแต่สามารถต่อยอดไปสู่โปรเจคที่ซับซ้อนกว่านี้ได้ ลองนำไปทดลองและปรับแต่งตามไอเดียได้เลย