การใช้งานแอลอีดี

แอลอีดี

แอลอีดี (LED) หรือไดโอดเปล่งแสง (light emitting diode) เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ทำจากสารกึ่งตัวนำและทำหน้าที่เปลี่ยนพลังงานไฟฟ้าเป็นพลังงานแสง โดยเมื่อมีการฉีดอิเล็กตรอนหรือกระแสไฟฟ้าเข้าไปในตัวแอลอีดีแล้ว อิเล็กตรอนเหล่านั้นก็จะมีการลดพลังงานลง โดยการปลดปล่อยแสงหรืออนุภาคโฟตอนออกมา โดยปรากฏการณ์นี้ในทางวิทยาศาสตร์เรียกว่า อิเล็กโทรลูมิเนสเซนต์ (electroluminescence)

โดยทั่วไป เราแบ่งชนิดของแอลอีดีจากลักษณะสีของแสงที่เปล่งออกมาและจากลักษณะตัวถัง โดยสีของแอลอีดีจะกำหนดจากสารกึ่งตัวนำที่นำมาใช้สร้าง เช่น แอลอีดีสีแดง มักสร้างจาก อลูมิเนียมแกลเลียมอินเดียมฟอสไฟด์ (AlGaInP) และแอลอีดีสีเขียวสร้างจากอินเดียมแกลเลียมไนไตรด์ (InGaN) สำหรับลักษณะของแอลอีดีในปัจจุบันก็มีหลายรูปแบบ รูปที่ 1(ก) แสดงลักษณะแอลอีดีที่พบเห็นได้ทั่วไป (สีเดียวและสามสี ขนาด 5 และ 10 mm) และ รูปที่ 1(ข) แสดงแอลอีดีชนิดเอสเอ็มดี (SMD, surface mount device) ที่มีใช้งานอย่างมากในหลอดไฟในปัจจุบัน สำหรับข้อกำหนดเรื่องขาของแอลอีดีนั้น ผู้ใช้ต้องสังเกตจาก ลักษณะภายในตัวแอลอีดี คือ ขั้วภายในที่เล็กกว่าจะเป็นขั้วแอโนด (A) และ ขั้วที่ใหญ่กว่าจะเป็นขั้วแคโทด (K) หรือสังเกตจากลักษณะที่มีบากบนตัวถังดังแสดงในรูปที่ 2(ก) สัญลักษณ์ทางวงจรของแอลอีดีแสดงดังรูปที่ 2(ข)

 

image description

 

รูปที่ 1 (ก) ภาพแอลอีดีในลักษณะตัวถังต่าง ๆ และ (ข) ภาพแอลอีดีชนิดเอสเอ็มดี

 

 

image description

 

รูปที่ 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(ข) ตามลำดับ

 

image description

 

รูปที่ 3 วงจรขับแอลอีดีและสูตรที่เกี่ยวข้องในการคำนวณค่ากระแสและค่าความต้านทาน

 

 

image description

 

รูปที่ 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) นั่นเอง

 

image description

 

รูปที่ 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

 

image description

 

รูปที่ 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

 

image description

 

รูปที่ 7 ลักษณะการเปลี่ยนแปลงของค่าความสว่างของแอลอีดี ที่กำหนดในแบบฝึกหัด