การใช้งานแอลอีดี
แอลอีดี
แอลอีดี (LED) หรือไดโอดเปล่งแสง (light
emitting diode) เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ทำจากสารกึ่งตัวนำและทำหน้าที่เปลี่ยนพลังงานไฟฟ้าเป็นพลังงานแสง
โดยเมื่อมีการฉีดอิเล็กตรอนหรือกระแสไฟฟ้าเข้าไปในตัวแอลอีดีแล้ว อิเล็กตรอนเหล่านั้นก็จะมีการลดพลังงานลง
โดยการปลดปล่อยแสงหรืออนุภาคโฟตอนออกมา โดยปรากฏการณ์นี้ในทางวิทยาศาสตร์เรียกว่า
อิเล็กโทรลูมิเนสเซนต์ (electroluminescence)
โดยทั่วไป เราแบ่งชนิดของแอลอีดีจากลักษณะสีของแสงที่เปล่งออกมาและจากลักษณะตัวถัง
โดยสีของแอลอีดีจะกำหนดจากสารกึ่งตัวนำที่นำมาใช้สร้าง เช่น แอลอีดีสีแดง
มักสร้างจาก อลูมิเนียมแกลเลียมอินเดียมฟอสไฟด์ (AlGaInP)
และแอลอีดีสีเขียวสร้างจากอินเดียมแกลเลียมไนไตรด์ (InGaN)
สำหรับลักษณะของแอลอีดีในปัจจุบันก็มีหลายรูปแบบ รูปที่ 1(ก)
แสดงลักษณะแอลอีดีที่พบเห็นได้ทั่วไป (สีเดียวและสามสี ขนาด 5 และ 10 mm) และ รูปที่ 1(ข) แสดงแอลอีดีชนิดเอสเอ็มดี (SMD, surface mount
device) ที่มีใช้งานอย่างมากในหลอดไฟในปัจจุบัน สำหรับข้อกำหนดเรื่องขาของแอลอีดีนั้น
ผู้ใช้ต้องสังเกตจาก ลักษณะภายในตัวแอลอีดี คือ ขั้วภายในที่เล็กกว่าจะเป็นขั้วแอโนด
(A) และ ขั้วที่ใหญ่กว่าจะเป็นขั้วแคโทด (K) หรือสังเกตจากลักษณะที่มีบากบนตัวถังดังแสดงในรูปที่ 2(ก) สัญลักษณ์ทางวงจรของแอลอีดีแสดงดังรูปที่
2(ข)
รูปที่
1
(ก) ภาพแอลอีดีในลักษณะตัวถังต่าง ๆ และ (ข) ภาพแอลอีดีชนิดเอสเอ็มดี
รูปที่
2
(ก) ภาพลักษณะแอลอีดีและจุดสังเกตขา และ (ข) สัญลักษณ์ทางวงจรของแอลอีดี
โดยทั่วไปในการใช้งานแอลอีดีนั้น
เราจะต้องคำนึงถึงขั้วต่อและระดับกระแสที่ฉีด นั่นคือ
แอลอีดีจะไม่เปล่งแสงหากเราต่อกลับขั้ว
เนื่องจากแอลอีดีเป็นไดโอดประเภทหนึ่งซึ่งจัดอยู่ในอุปกรณ์ประเภทมีขั้ว สำหรับกระแสที่ไหลผ่านแอลอีดีนั้นมักจะถูกจำกัดด้วยตัวต้านทานที่นำมาต่ออนุกรมกับแอลอีดี
รูปที่ 3 แสดงลักษณะการต่อแอลอีดีอย่างง่าย โดยเมื่อเราให้แรงดัน V แก่วงจรนี้
ก็จะเกิดกระแส I ไหลและมีแรงดัน
VLED ตกคร่อมแอลอีดี
(ประมาณ 1.6 2.5 V ขึ้นกับสีของแอลอีดี) โดยค่ากระแส I
ที่ไหลผ่านแอลอีดีจะเป็นตัวกำหนดความสว่างของหลอดแอลอีดี ซึ่งโดยทั่วไป
ค่ากระแสนี้จะมีค่าไม่เกิน 10-20 mA ดังนั้น
เราจะต้องเลือกค่าความต้านทานที่เหมาะสมในการใช้งานแอลอีดี
แอลอีดีที่มีการใช้งานกันในปัจจุบัน
นอกจากประเภทสีเดียวแล้ว ยังมีแบบประเภทสองสี (2-color LED) และสามสีหรืออาร์จีบีแอลอีดี
(RGB LED) ด้วย
โดยเราสามารถผสมสีของแสงได้ด้วยแอลอีดีแบบหลายสีนี้
ซึ่งแอลอีดีหลายสีนี้มักจะมีขาร่วมกัน ที่เรียกว่า ขาร่วมหรือขาคอมมอน (Common) โดยมีทั้งแบบแคโทดร่วม (common cathode) และแอโนดร่วม
(common anode) ตัวอย่างภาพถ่ายโมดูลแอลอีดีสองสีชนิดแคโทดร่วมและลักษณะวงจรภายในโมดูลแสดงในรูปที่
4(ก) และ 4(ข) ตามลำดับ
รูปที่
3
วงจรขับแอลอีดีและสูตรที่เกี่ยวข้องในการคำนวณค่ากระแสและค่าความต้านทาน
รูปที่
4 (ก)
ภาพถ่ายโมดูลแอลอีดีสองสี (สีแดงและเหลือง) ชนิดแคโทดร่วม
และ (ข) ลักษณะวงจรภายในโมดูล
สำหรับการใช้งานแอลอีดีร่วมกับบอร์ด NodeMCU ซึ่งใช้ชิป ESP8266 นั้น
เนื่องจากชิปนี้สามารถให้กระแสเพื่อสัญญาณได้สูงสุดเพียง 12 mA ดังนั้นในการต่อบอร์ดนี้ร่วมกับแอลอีดีทั่วไป
เราจึงไม่จำเป็นต้องต่อตัวต้านทานเพื่อจำกัดค่ากระแสที่ไหลผ่านแอลอีดี
และทำให้ใช้งานแอลอีดีร่วมกับบอร์ดนี้ทำได้อย่างง่ายดาย
นั่นคือเราสามารถต่อตรงระหว่างแอลอีดีกับขาสัญญาณได้เลย
ทั้งนี้ผู้ใช้ควรพึงระลึกไว้ว่าการต่อแอลอีดีตรงกับขาสัญญาณแรงดันนี้
อาจทำให้แอลอีดีเสียหายได้หากขาสัญญาณนั้นสามารถจ่ายกระแสได้มากเพียงพอ
การเขียนโปรแกรมควบคุมแอลอีดี
การสั่งการแอลอีดีนั้นทำได้ในสองโหมดคือ
โหมดดิจิทัลและโหมดแอนะล็อก โดยมีรายละเอียดดังนี้
1) โหมดดิจิทัล คือ
การควบคุมให้แอลอีดีติดหรือดับ ซึ่งสั่งการได้ด้วยด้วยคำสั่ง digitalWrite(pin, value) โดย value มีค่าเป็นได้เพียงลอจิกต่ำ LOW หรือลอจิกสูง HIGH เท่านั้น และรายละเอียดของคำสั่ง
มีลักษณะเช่นเดียวกันกับคำสั่งในการควบคุมรีเลย์ดังแสดงในหัวข้อที่ 4.2
2) โหมดแอนะล็อก คือ
การควบคุมให้แอลอีดีมีความสว่างระดับต่าง ๆ ซึ่ง NodeMCU จะสร้างสัญญาณดิจิทัลชนิด
PWM หรือสัญญาณที่มีการมอดูเลตความกว้างพัลส์
(Pulse
Width Modulation)
ในการควบคุมให้แอลอีดีติดและดับในอัตราเร็วที่เร็วกว่าการตอบสนองของดวงตามนุษย์
คือที่ความถี่ 1 kHz
โดยดวงตามนุษย์จะตอบสนองต่อการกระพริบที่ความถี่เพียงประมาณ 10 Hz จึงส่งผลให้เราเห็นความสว่างของแอลอีดีที่ระดับต่างๆ รูปที่ 5
แสดงลักษณะสัญญาณ PWM ที่เปอร์เซ็นต์รอบการทำงาน (duty
cycle) 10, 20 และ 50%
ตามลำดับ สำหรับสัญญาณ PWM ที่ 0% และ
100% ก็คือสัญญาณดิจิทัลลอจิก LOW (0 V) และลอจิก HIGH (3.3 V) นั่นเอง
รูปที่
5
ลักษณะสัญญาณ PWM
ที่สร้างจาก NodeMCU ด้วยคำสั่ง analogWrite
คำสั่งที่ใช้ในการสร้างสัญญาณ PWM จากบอร์ดไมโครคอนโทรลเลอร์ด้วยภาษา Arduino คือ
คำสั่ง analogWrite(pin, value) โดยค่า value นี้
จะเป็นค่าเลขฐานสิบ ระหว่าง 0 ถึง 1023 (= 210-1)
ซึ่งค่าสูงสุด 1023 นี้จะเฉพาะเจาะจงกับบอร์ด NodeMCU เนื่องจาก
ESP8266 เป็นชิปประมวลผลแบบ 10 บิต (สำหรับบอร์ด
Arduino แบบดั้งเดิม value นี้จะมีค่าอยู่ระหว่าง
0 ถึง 255 (= 28-1) เท่านั้น)
การทดลองควบคุมแอลอีดี
วัตถุประสงค์
1.
สามารถตอบอร์ด NodeMCU v.3 กับบอร์ดแอลอีดีได
2.
สามารถเขียนโปรแกรมให้ NodeMCU รับค่าจากคีบอร์ดผ่านพอร์ตอนุกรมเพื่อควบคุมการทํางานของแอลอีดีได
3.
เขียนโปรแกรมควบคุมแอลอีดีให้ปรับความสว่างได้ตามต้องการ
อุปกรณ์ที่ใช้ในการทดลอง
1. เครี่องคอมพิวเตอร์ที่มีระบบปฏิบัติการ
Windows
(ตั้งแต่ Windows 7 ขึ้นไป)
พร้อมติดตั้งโปรแกรม Arduino IDE 1.8.8 IoT 1
เครื่อง
2. NodeMCU v.3 1
บอร์ด
3. NodeMCU Base
Ver 1.0 1
บอร์ด
4. บอร์ดแอลอีดีชนิด 2
สีแบบแคโทดร่วม 1 บอร์ด
5. สาย USB 1
เส้น
6. สายต่อวงจร (สายจัมพ์
เมีย-เมีย) 12 เส้น
วิธีการทดลอง
ตอนที่
1 การควบคุมแอลอีดีด้วยคีบอร์ดผ่านพอร์ตอนุกรม
1.
ตอวงจรตามรูปที่ 6
รูปที่
6 การเชื่อมต่อ
NodeMCU
v.3 กับบอร์ดโมดูลแอลอีดีสองสีชนิดแคโทดร่วม
2.
เขียนโค้ดข้างล่างนี้แล้วอัปโหลดลง NodeMCU v.3 เพื่อควบคุมการทำงานของแอลอีดีทั้งสองสีด้วยการกดปุ่มบนแป้นคีบอร์ด
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
// Control LED via Serial Port int RLED = D1; int YLED = D2; char inchar; // Keep the reading value
in inchar void setup() { // Set serial speed to
9600 bps Serial.begin(9600); pinMode(RLED, OUTPUT); pinMode(YLED, OUTPUT); } void loop()
{ // Read Serial and keep it
in inchar inchar
= Serial.read(); if(inchar == '1') { digitalWrite(RLED,
HIGH); } if(inchar == '2') { digitalWrite(RLED,
LOW); } if(inchar == '3') { digitalWrite(YLED,
HIGH); } if(inchar == '4') { digitalWrite(YLED,
LOW); } } |
3. เปิด Serial Monitor ในเมนู Tools (หรือกด Ctrl+Shift+M บนคีบอร์ด)
แล้วทดลองป้อนตัวเลข 1, 2, 3 หรือ 4 แล้วกด Enter (หรือคลิ๊กที่ปุ่ม Send) แล้วสังเกตสีของแอลอีดี โดยเมื่อกดปุ่ม 1 แล้ว 3
ให้แอลอีดีทั้งสองสีสว่างพร้อมกัน แล้วสังเกตสีของแอลอีดี
(เนื่องจากแอลอีดีสีแดงมีความสว่างมากกว่าทำให้สีของแสงที่ได้เป็นสีแดง-ส้ม)
4.
ทำการแก้ไขโค้ดบรรทัดที่ 20 และเพิ่มบรรทัดที่ 21 คือ
20 21 22 23 |
// digitalWrite(RLED, HIGH); analogWrite(RLED, 100); } |
จากนั้นจึงทำการอัปโหลดโปรแกรมแล้วทดลองตามข้อ
3. ใหม่อีกครั้ง สังเกตสีของแอลอีดีที่เกิดจากการผสมแสงสีแดงและสีเหลือง
ตอนที่
2 การควบคุมแอลอีดีให้แสดงแสงความเข้มต่าง ๆ อย่างต่อเนื่อง
1.
ต่อวงจรตามรูปที่ 6 (วงจรเดิม)
2.
เขียนโค้ดข้างล่างนี้แล้วอัปโหลดและสังเกตการทำงานของแอลอีดี
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// Flickering of LED int RLED = D1; void setup() { pinMode(RLED, OUTPUT); } void loop() { for (int i=0; i<1024;
i++) { analogWrite(RLED,
i); delay(1); } delay(100); } |
3.
ทำการเปลี่ยนค่าการหน่วงเวลาในคำสั่ง delay จาก
1 เป็น 2 แล้วสังเกตความถี่ในการกระพริบ
แบบฝึกหัดท้ายการทดลอง
จากตัวอย่างโค้ดในการทดลองตอนที่ 2 จงเขียนโค้ดที่ควบคุมให้แอลอีดีค่อย
ๆ สว่างขึ้น (จากมืดไปสว่างที่สุด) แล้วค่อย ๆ มืดลง (จากสว่างที่สุดไปมืด)
โดยมีลักษณะการเปลี่ยนแปลงของค่าความสว่างของแอลอีดีดังแสดงในรูปที่ 7
รูปที่
7
ลักษณะการเปลี่ยนแปลงของค่าความสว่างของแอลอีดี ที่กำหนดในแบบฝึกหัด