นางสาวจริญญา แสงวงศ์ 1 สทค 2 รหัส 026
นางสาวจิรนันท์ จานศิลา 1 สทค 2 รหัส 028
การแสดงค่าความเข้มของแสงด้วย 7-Segment
LDR : Light Dependent
Resistor)
แอลดีอาร์
( LDR : Light Dependent Resistor) คือ
ความต้านทานชนิดที่ไวต่อแสง กล่าวคือ
ตัวความต้านทานนี้สามารถเปลี่ยนสภาพทางความนำไฟฟ้า ได้เมื่อมีแสงมาตกกระทบ
บางครั้งเรียกว่าโฟโตรีซีสเตอร์ ( Photo Resistor) หรือ โฟโตคอนดัคเตอร์ ( Photo Conductor) เป็นตัวต้านทานที่ทำมาจากสารกึ่งตัวนำ (Semiconductor)
ประเภทแคดเมี่ยมซัลไฟด์ ( Cds : Cadmium Sulfide)
หรือแคดเมี่ยมซิลินายส์ ( CdSe : Cadmium Selenide)
ซึ่งทั้งสองตัวนี้ก็เป็นสารประเภทกึ่งตัวนำ
เอามาฉาบลงบนแผ่นเซรามิกที่ใช้เป็นฐานรองแล้วต่อขาจากสารที่ฉาบ ไว้ออกมา
รูปที่ 1 โครงสร้าง LDR
รูปร่างของ
LDR ในรูปที่ 1 ส่วนที่ขดเป็นแนวเล็กๆสี
ดำทำหน้าที่เป็นตัวต้านทานไวแสง และ แนวสีดำ นั้นจะแบ่งพื้นที่ของตัวมันออกเป็น 2
ข้าง สีทองนั้น เป็นตัวนำไฟฟ้าที่ทำหน้าที่สัมผัส กับตัวต้านทานไวแสง
เป็นที่สำหรับต่อขาออกมาภายนอก หรือ เรียกว่าอิเล็กโทรด
ที่เหลือก็จะเป็นฐานเซรามิก และ อุปกรณ์ สำหรับห่อหุ้มมัน ซึ่งมีได้หลายแบบ
สมบัติทางแสง
การทำงานของ LDR เพราะว่าเป็นสารกึ่งตัวนำ
เวลามีแสงตกกระทบลงไปก็จะถ่ายทอดพลังงาน ให้กับสาร ที่ฉาบอยู่
ทำให้เกิดโฮลกับอิเล็กตรอนวิ่งกันพล่าน. การที่มีโฮล
กับอิเล็กตรอนอิสระนี้มากก็เท่ากับ ความต้านทานลดลงนั่นเอง ยิ่ง
ความเข้มของแสงที่ตกกระทบมากเท่าไร ความต้านทานก็ยิ่งลดลงมากเท่านั้น
รูปที่ 2 ตัวอย่างกราฟแสดงความไวต่อแสงความถี่ต่าง ๆ ของ LDR
ทั้ง 2 แบบ
เมื่อเทียบกับความไวของตาคน
ในส่วนที่ว่าแสงตกกระทบนั้น มิใช่ว่าจะเป็นแสงอะไรก็ได้
เฉพาะแสงในช่วงความยาวคลื่นประมาณ 4,000 อังสตรอม ( 1 อังสตรอม เท่ากับ 10 - 10 เมตร ) ถึงแระมาณ 10,000 อังสตรอมเท่านั้นที่จะใช้ได้
( สายตาคนจะเห็นได้ ในช่วงประมาณ 4,000 อังสตรอม ถึง 7,000
อังสตรอม ) ซึ่งคิดแล้วก็เป็นช่วงคลื่นเพียงแคบ ๆ เมื่อเทียบกับการทำงาน
ของอุปกรณ์ไวแสง ประเภทอื่น ๆ แต่ถึงอย่างไรแสงในช่วงคลื่นนี้
ก็มีอยู่ในแสงอาทิตย์ แสงจากหลอดไฟแบบไส้ และ แสงจากหลอดฟลูออเรสเซนต์ ด้วย หรือ
ถ้าจะคิดถึงความยาวคลื่น ที่ LDR จะตอบสนองไวที่สุดแล้ว
ก็มีอยู่หลาย ความยาวคลื่น โดยทั่วไป LDR ที่ทำจากแคดเมียมซัลไฟด์
จะไวต่อแสงที่มีความยาวคลื่นในช่วง 5,000 กว่า อังสตรอม.
ซึ่งเราจะเห็นเป็นสีเขียว ไปจนถึงสีเหลือง สำหรับ บางตัวแล้ว ความ
ยาวคลื่นที่ไวที่สุดของมันใกล้เคียงกับความยาวคลื่นที่ไวที่สุดของตาคนมาก (
ตาคนไวต่อความ ยาวคลื่น ประมาณ 5,550 อังสตรอม ) จึงมักจะใช้ทำเป็นเครื่องวัดแสง
ในกล้องถ่ายรูป ถ้า LDR ทำจาก แคดเมียมซีลิไนด์ก็จะไวต่อ
ความ ยาวคลื่นในช่วง 7,000 กว่า อังสตรอม ซึ่งไปอยู่ใน
ช่วงอินฟราเรดแล้ว
ผลตอบสนองทางไฟฟ้า
อัตราส่วนระหว่างความต้านทานของ LDR ในขณะที่ไม่มีแสง กับขณะที่มีแสง อาจจะเป็นได้ตั้งแต่ 100 เท่า 1,000 เท่า หรือ 10,000 เท่า
แล้วแต่รุ่น แต่โดยทั่วไปแล้วค่าความต้านทานในขณะที่ไม่มีแสงจะอยู่ในช่วง ประมาณ 0.5
MW ขึ้นไป ในที่มืดสนิทอาจขึ้นไปได้มากกว่า 2 MW และ ในขณะที่มีแสงจะเป็นประมาณ 10 - 20kW ลง ไป
อาจจะเหลือเพียงไม่กี่โอห์ม หรือ ไม่ถึงโอห์มก็ได้. ทนแรงดันสูงสุดได้ไม่ต่ำกว่า 100
V และ กำลังสูญเสีย อย่างต่ำประมาณ 50 mW
รูปที่ 3 ผลของการเปลี่ยนความเข้มแสงในทันทีทันใดกับ LDR
นอกเหนือจากลักษณะสมบัติต่างๆ เหล่านี้แล้วยังมีอีกอย่างหนึ่งที่สำคัญ
คือ ปรากฏการณ์ที่เกิดขึ้นจากความ เข้มแสดง เปลี่ยนแปลงอย่างฉับพลัน
ซึ่งจะดูตัวอย่างได้ในรูปที่ 3 ถ้า LDR ได้รับแสงที่มีความเข้มสูงดังเส้น ( ก )
ความต้านทานจะมีค่า ต่ำ และ ในทันทีที่ความเข้มของแสงถูกลดลงหลือเพียงระดับอ้างอิง
ความต้านทานก็จะค่อยๆ เพิ่มขึ้นไปจนถึงค่าความต้านทาน
ที่มันควรจะเป็นในระดับอ้างอิง. แต่แทนที่มันจะไปหยุดอยู่ระดับอ้างอิง มันกลับ
เพิ่มเลยขึ้นไปอีกแล้วจึงจะลดลงมาอยู่ในระดับ อ้างอิง เหมือนกับว่า
เบรกมันไม่ค่อยดี และ ในทำนองเดียวกันถ้า เก็บมันไว้ในที่ความเข้มแสงน้อยๆ
แล้วเปลี่ยนความเข้มเป็นระดับ อ้างอิงทันที ดังในรูป (ข ) ความต้านทานก็จะลด
เลยต่ำลงมาจากระดับอ้างอิงแล้วจึงขึ้นไปใหม่ ยิ่งความเข้มของแสงเท่ากัน LDR
แบบแคดเมียมซีนิไนด์ จะใช้เวลา
ในการเข้าสู่สภาวะที่มันควรจะเป็นน้อยกว่า แบบ แคดเมียมซัลไฟต์
แต่ก็จะวิ่งเลยไปไกลกว่าด้วย และ อีกอย่างหนึ่ง ความเร็วในการเปลี่ยนระดับความต้านทานจากค่าหนึ่งไปอีกค่าหนึ่งช้ามาก.
ซึ่งจะอยู่ในช่วงของมิลลิวินาทีหรือ บาง ทีก็เป็นวินาที เลย จึงทำให้ LDR ใช้ได้ กับงานความถี่ต่ำๆ เท่านั้น ทำเป็นเครื่องวัดแสง ในรูปที่ 4 เป็นวงจรเครื่องวัดแสงแบบง่ายจริงๆ LDR
ที่ใช้ก็ควรจะมีอัตราส่วนของค่าความต้านทาน ระหว่างไม่มีแสง
กับมีแสงมากๆ หน่อย เวลาใช้ต้องระวังอย่าให้เข็มมิเตอร์ตีเกินสเกล
ของแพงมาเสียง่ายๆ อย่าง นี้มันน่าเจ็บใจตัวเอง
รูปที่ 4 เครื่องวัดแสงแบบง่ายที่สุด
อีกวงจรหนึ่งในรูปที่ 5 เป็นวงจรที่ดัดแปลงให้ดีขึ้นแล้วโดยเอาออปแอมป์เบอร์ 741 เข้ามาช่วยทำให้ไวขึ้น มาก จะเอา ดิจิตอลมัลติมิเตอร์มาต่อแทนแบบเข็มก็ได้
แต่ต้องระวังแสงจาก LED จะไปกวนการทำงานของ LDR
รูปที่ 5 วงจรเครื่องวัดแสงที่ปรับปรุงขึ้นแล้ว
สวิตซ์ทำงานด้วยแสง
การใช้ LDR ทำงานในวงจรปิดเปิดสวิตซ์
เราก็ จะใช้เพียง 2 อย่างเท่านั้น คือ มีแสง หรือ ไม่มีแสง.
โดย ทั่วไปเราจะ ใช้วิธีเอามาอนุกรมกับตัวต้านทานตัวหนึ่ง
แล้วต่อเป็นวงจรแบ่งแรงดันออกมาตามรูปที่ 6 อย่างในรูป ( ก )
จะทำงานดังนี้ คือ ถ้ามีแสงสว่าง LDR จะมีความต้านทานต่ำ
ทำให้แรงดันส่วนใหญ่มาตกคร่อม R 1 เสียหมด แรงดันเอาต์พุต
จึงสูงเกือบเท่า แรงดันไฟเลี้ยง และ ถ้าไม่มี แสง LDR จะมีความต้านทานสูง
แรงดันส่วนใหญ่จะ ไปตกที่ LDR แรงดันเอาต์พุต จึงเกือบเป็น 0
โวลต์
รูปที่ 6 หลักการใช้ LDR ในวงจรปิดเปิดสวิตซ์
ในรูปที่ 6 ( ข ) วงจรจะทำงาน
ในทางตรงข้าม เพียงแต่สลับที่ระหว่าง LDR กับ R 1 เวลามีแสงสว่าง เอาต์พุตก็จะเกือบ เป็น 0 โวลต์
เวลาไม่มีแสงสว่างเอาต์พุตก็เกือบเท่าแรงดันไฟเลี้ยงจะเห็นได้ว่ากลับกับกรณีแรก
รูปที่ 7 ตัวอย่างวงจรควบคุมสวิตซ์โดยรีเลย์จะทำงานเมื่อไม่มีแสงสว่าง
ทั้ง 2 กรณี
จะมีวงจรที่ต่อออกไปสำหรับจับสัญญาณว่ามีแสงสว่างหรือไม่. แล้วนำไปควบคุมสวิตช์
อีกทีให้ ทำงานใน กรณีที่ต้องการ. ในรูปที่ 7 เป็นตัวอย่างวงจรซึ่งรีเลย์จะทำงานเมื่อไม่มีแสงสว่าง
ซึ่งถ้าเราไม่ต้องการแบบนี้ และ อยากให้รีเลย์ ทำงาน
เมื่อมีแสงสว่างก็เพียงแต่สลับที่ระหว่าง LDR กับความต้านทานปรับค่าได้
100 kW เท่านั้น
รูปที่ 8 วงจรเตือนภัยเป็นเสียงเมื่อมีแสงสว่างกระทบ LDR
ในรูปที่ 8 ก็เป็น
ตัวอย่างวงจรอีกอันหนึ่งทำงานเมื่อมีแสงสว่าง ตัวอย่างอื่นๆ ก็ได้แก่
วงจรจับควันไฟ , วงจรกะพริบ
เพื่อความปลอดภัยเมื่อมีรถยนต์แล่นผ่านมา. ซึ่งโดยหลักการแล้วไม่ยาก
คงจะนำไปดัดแปลงใช้กันได้ ใช้ LDR ตลอดช่วง
รูปที่ 9 ตัวอย่างวงจรเปลี่ยนสัญญาณแสงเป็นสัญญาณเสียง
นอกจากวงจรเครื่องวัดแสง ซึ่งเป็นที่รู้จักกันดีในการประยุกต์ LDR ให้ใช้งานแบบทุกช่วงการเปลี่ยนแปลงแล้ว ยังมีคน
ดัดแปลงไปใช้ในวงจรอื่นๆ อีก เช่น วงจรแปลงสัญญาณอะนาลอก เป็นสัญญาณดิจิตอล
เพื่อเชื่อมต่อส่วนที่เป็น วงจรอะนาล็อก ให้ส่งสัญญาณผ่านเข้าไปทำงานในวงจรดิจิตอลได้
ดังเช่น รูปที่ 9 เป็นวงจรแปลงระดับความเข้มแสง
ซึ่งเป็นสัญญาณ อะนาล็อกให้ออกมาเป็นจำนวนลูกคลื่นสี่เหลี่ยม
ยิ่งความเข้มแสงมากเท่าไหร่ จำนวนลูกคลื่น สี่เหลี่ยมก็จะยิ่งออกมามากเท่านั้น
วงจรนี้ ใช้ไอซี 555 ความถี่ของคลื่นที่ออกมาจะได้ประมาณ 22kHz
ถ้าเอาไป รับแสงใกล้ๆ หลอดไฟขนาด 60 วัตต์
แต่จะ เหลือเพียงประมาณ 1Hz ในที่มืด
ถ้าเอาลำโพงอนุกรมกับตัวต้านทาน 220W ไปต่อเข้ากับขา 3
และ ไฟบวกก็จะได้ยินเสียง สูงๆ ต่ำๆ ตามความเข้มของแสง
ลองดูก็ได้คงจะสนุกไม่เลว และ ตัวอย่างอีกอันหนึ่งจะเห็นได้ในรูปที่ 10 เป็นวงจรเปิด - หรี่ - ปิดไฟ
ซึ่งจะควบคุมให้หลอดไฟสว่างขึ้นในขณะ
ที่แสงสว่างของสภาพแวดล้อมลดลงเป็นตัวอย่างที่ดีเหมือนกัน
รูปที่ 10 วงจรเปิด-หรี่-ปิดไฟ
อ้างอิงข้อมูลจาก : http://www.mwit.ac.th/~ponchai/CAI_electronics/image/LDR.HTM
อุปกรณ์ที่ใช้
1.บอร์ด Arduino 1 ตัว
2.สาย USB 1 เส้น
3.โฟโต้บอร์ด 1 อัน
4.ไฟ LED 4 ดวง
5.ตัวต้านทาน 220 Ω 5 ตัว
6.ตัวต้านทาน 10 K Ω 1 ตัว
7. 7 Segment 1 ตัว
8. LDR 1 ตัว
9.สายไฟผู้-ผู้ 12 เส้น
10.โปรแกรม Arduino
11.PC / NoteBook
รูปวงจร (Fritzing)
การแสดงค่าความเข้มของแสงด้วย LED (รูปที่3.1)
การแสดงค่าความเข้มของแสงด้วย 7 Segment (รูปที่3.2)
Code : โปรแกรม Arduino
หลักการทำงาน มีดังนี้
- เมื่อเปิด Serial monitor ขึ้นมา
ทำให้ LDR มึดสนิท ใน Serial monitor จะขึ้นคำว่า dark และ LED1 จะติด LED2 ,3 และ 4 จะดับ
ทำให้ LDR สลัว ใน Serial monitor จะขึ้นคำว่า dim และ LED2 จะติด LED1 ,3 และ 4 จะดับ
ทำให้ LDR แสงปกติ ใน Serial monitor จะขึ้นคำว่า medium และ LED3 จะติด LED1 ,2 และ 4 จะดับ
ทำให้ LDR แสงสว่างมาก ใน Serial monitor จะขึ้นคำว่า bright และ LED4 จะติด LED1 ,2 และ 3 จะดับ
Code การแสดงค่าความเข้มของแสงด้วย LED
/*
Switch statement
Demonstrates the use
of a switch statement. The switch statement allows you
to choose from among
a set of discrete values of a variable. It's like a
series of if
statements.
To see this sketch
in action, put the board and sensor in a well-lit room,
open the Serial
Monitor, and move your hand gradually down over the sensor.
The circuit:
- photoresistor from
analog in 0 to +5V
- 10K resistor from
analog in 0 to ground
created 1 Jul 2009
modified 9 Apr 2012
by Tom Igoe
This example code is
in the public domain.
http://www.arduino.cc/en/Tutorial/SwitchCase
*/
// these constants won't change. They are the lowest and
highest readings you
// get from your sensor:
const int sensorMin = 0;
// sensor minimum, discovered
through experiment
const int sensorMax = 600;
// sensor maximum, discovered through experiment
int LED1 = 2;
int LED2 = 3;
int LED3 = 4;
int LED4 = 5;
void setup() {
// initialize serial
communication:
Serial.begin(9600);
pinMode
(LED1,OUTPUT);
pinMode
(LED2,OUTPUT);
pinMode
(LED3,OUTPUT);
pinMode
(LED4,OUTPUT);
}
void loop() {
// read the sensor:
int sensorReading =
analogRead(A0);
// map the sensor
range to a range of four options:
int range = map(sensorReading,
sensorMin, sensorMax, 0, 3);
// do something
different depending on the range value:
switch (range) {
case 0: // your hand is on the sensor
Serial.println("dark");
digitalWrite(LED1, HIGH);
digitalWrite(LED2,
LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
break;
case 1: // your hand is close to the sensor
Serial.println("dim");
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED3,
LOW);
digitalWrite(LED4, LOW);
break;
case 2: // your hand is a few inches from the
sensor
Serial.println("medium");
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, LOW);
break;
case 3: // your hand is nowhere near the sensor
Serial.println("bright");
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, HIGH);
break;
}
delay(1); // delay in between reads for stability
}
Code การแสดงค่าความเข้มของแสงด้วย 7 Segment
หลักการทำงาน มีดังนี้
- เมื่อเปิด Serial monitor ขึ้นมา
ทำให้ LDR มึดสนิท ใน Serial monitor จะขึ้นคำว่า dark และเลข 1 จะขึ้นที่ 7 Segment
ทำให้ LDR สลัว ใน Serial monitor จะขึ้นคำว่า dim และเลข 2 จะขึ้นที่ 7 Segment
ทำให้ LDR แสงปกติ ใน Serial monitor จะขึ้นคำว่า medium และเลข 3 จะขึ้นที่ 7 Segment
ทำให้ LDR แสงสว่างมาก ใน Serial monitor จะขึ้นคำว่า bright และเลข 4 จะขึ้นที่ 7 Segment
/*
Switch statement
Demonstrates the use
of a switch statement. The switch statement allows you
to choose from among
a set of discrete values of a variable. It's like a
series of if
statements.
To see this sketch
in action, put the board and sensor in a well-lit room,
open the Serial
Monitor, and move your hand gradually down over the sensor.
The circuit:
- photoresistor from
analog in 0 to +5V
- 10K resistor from
analog in 0 to ground
created 1 Jul 2009
modified 9 Apr 2012
by Tom Igoe
This example code is
in the public domain.
http://www.arduino.cc/en/Tutorial/SwitchCase
*/
// these constants won't change. They are the lowest and
highest readings you
// get from your sensor:
const int sensorMin = 0;
// sensor minimum, discovered through experiment
const int sensorMax = 600;
// sensor maximum, discovered through experiment
int LED1 = 2;
int LED2 = 3;
int LED3 = 4;
int LED4 = 5;
int LED5 = 6;
int LED6 = 7;
int LED7 = 8;
int LED8 = 9;
int LED9 = 10;
void setup() {
// initialize serial
communication:
Serial.begin(9600);
pinMode
(LED1,OUTPUT);
pinMode
(LED2,OUTPUT);
pinMode
(LED3,OUTPUT);
pinMode
(LED4,OUTPUT);
pinMode
(LED5,OUTPUT);
pinMode (LED6,OUTPUT);
pinMode
(LED7,OUTPUT);
pinMode
(LED8,OUTPUT);
pinMode
(LED9,OUTPUT);
}
void loop() {
// read the sensor:
int sensorReading =
analogRead(A0);
// map the sensor
range to a range of four options:
int range =
map(sensorReading, sensorMin, sensorMax, 0, 3);
// do something
different depending on the range value:
switch (range) {
case 1: // your hand is on the sensor
Serial.println("dark");
digitalWrite(2, HIGH);
digitalWrite(7, HIGH);
digitalWrite(6,
LOW);
digitalWrite(9, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(10,HIGH);
break;
case 2: // your hand is close to the sensor
Serial.println("dim");
digitalWrite(2,
LOW);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(9, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(10,LOW);
break;
case 3: // your hand is a few inches from the
sensor
Serial.println("medium");
digitalWrite(2, HIGH);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(9, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(10,LOW);
break;
case 4: // your hand is nowhere near the sensor
Serial.println("bright");
digitalWrite(2, HIGH);
digitalWrite(7, HIGH);
digitalWrite(6, LOW);
digitalWrite(9, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(10,LOW);
break;
}
delay(1); // delay in between reads for stability
}
VDO :
การแสดงค่าความเข้มของแสงด้วย LED
VIDEO
การแสดงค่าความเข้มของแสงด้วย 7 Segment
VIDEO