ผู้จัดทำ
นาย คมสันต์ รั่วลี 1 สทค 1 6031280004
นาย ชัยวัฒน์ มาลาเอี่ยม 1 สทค 1 6031280010
อุปกรณ์ที่ใช้
1. 7 segment
2. ตัวต้านทาน 220R 1 ตัว , 10k
3. สายไฟ 12 เส้น
4. บอร์ด Arduino
5. สาย USB
6. โฟโต้บอร์ด
7. LDR

รูปร่างของ LDR ในรูปที่ 1 ส่วนที่ขดเป็นแนวเล็กๆสี ดำทำหน้าที่เป็นตัวต้านทานไวแสง และ แนวสีดำ นั้นจะแบ่งพื้นที่ของตัวมันออกเป็น 2 ข้าง สีทองนั้น เป็นตัวนำไฟฟ้าที่ทำหน้าที่สัมผัส กับตัวต้านทานไวแสง เป็นที่สำหรับต่อขาออกมาภายนอก หรือ เรียกว่าอิเล็กโทรด ที่เหลือก็จะเป็นฐานเซรามิก และ อุปกรณ์ สำหรับห่อหุ้มมัน ซึ่งมีได้หลายแบบ
ในส่วนที่ว่าแสงตกกระทบนั้น มิใช่ว่าจะเป็นแสงอะไรก็ได้ เฉพาะแสงในช่วงความยาวคลื่นประมาณ 4,000 อังสตรอม ( 1 อังสตรอม เท่ากับ 10 - 10 เมตร ) ถึงแระมาณ 10,000 อังสตรอมเท่านั้นที่จะใช้ได้ ( สายตาคนจะเห็นได้ ในช่วงประมาณ 4,000 อังสตรอม ถึง 7,000 อังสตรอม ) ซึ่งคิดแล้วก็เป็นช่วงคลื่นเพียงแคบ ๆ
อัตราส่วนระหว่างความต้านทานของ LDR ในขณะที่ไม่มีแสง กับขณะที่มีแสง อาจจะเป็นได้ตั้งแต่ 100 เท่า 1,000 เท่า หรือ 10,000 เท่า แล้วแต่รุ่น แต่โดยทั่วไปแล้วค่าความต้านทานในขณะที่ไม่มีแสงจะอยู่ในช่วง ประมาณ 0.5 MW ขึ้นไป ในที่มืดสนิทอาจขึ้นไปได้มากกว่า 2 MW และ ในขณะที่มีแสงจะเป็นประมาณ 10 - 20kW ลง ไป อาจจะเหลือเพียงไม่กี่โอห์ม หรือ ไม่ถึงโอห์มก็ได้. ทนแรงดันสูงสุดได้ไม่ต่ำกว่า 100 V และ กำลังสูญเสีย อย่างต่ำประมาณ 50 mW
นอกเหนือจากลักษณะสมบัติต่างๆ เหล่านี้แล้วยังมีอีกอย่างหนึ่งที่สำคัญ คือ ปรากฏการณ์ที่เกิดขึ้นจากความ เข้มแสดง เปลี่ยนแปลงอย่างฉับพลัน ซึ่งจะดูตัวอย่างได้ในรูปที่ 3 ถ้า LDR ได้รับแสงที่มีความเข้มสูงดังเส้น ( ก ) ความต้านทานจะมีค่า ต่ำ และ ในทันทีที่ความเข้มของแสงถูกลดลงหลือเพียงระดับอ้างอิง ความต้านทานก็จะค่อยๆ เพิ่มขึ้นไปจนถึงค่าความต้านทาน ที่มันควรจะเป็นในระดับอ้างอิง. แต่แทนที่มันจะไปหยุดอยู่ระดับอ้างอิง มันกลับ เพิ่มเลยขึ้นไปอีกแล้วจึงจะลดลงมาอยู่ในระดับ อ้างอิง เหมือนกับว่า เบรกมันไม่ค่อยดี และ ในทำนองเดียวกันถ้า เก็บมันไว้ในที่ความเข้มแสงน้อยๆ แล้วเปลี่ยนความเข้มเป็นระดับ อ้างอิงทันที ดังในรูป (ข ) ความต้านทานก็จะลด เลยต่ำลงมาจากระดับอ้างอิงแล้วจึงขึ้นไปใหม่ ยิ่งความเข้มของแสงเท่ากัน LDR แบบแคดเมียมซีนิไนด์ จะใช้เวลา ในการเข้าสู่สภาวะที่มันควรจะเป็นน้อยกว่า แบบ แคดเมียมซัลไฟต์ แต่ก็จะวิ่งเลยไปไกลกว่าด้วย และ อีกอย่างหนึ่ง ความเร็วในการเปลี่ยนระดับความต้านทานจากค่าหนึ่งไปอีกค่า
อีกวงจรหนึ่งในรูปที่ 5 เป็นวงจรที่ดัดแปลงให้ดีขึ้นแล้วโดยเอาออปแอมป์เบอร์ 741 เข้ามาช่วยทำให้ไวขึ้น มาก จะเอา ดิจิตอลมัลติมิเตอร์มาต่อแทนแบบเข็มก็ได้ แต่ต้องระวังแสงจาก LED จะไปกวนการทำงานของ LDR
ในรูปที่ 6 ( ข ) วงจรจะทำงาน ในทางตรงข้าม เพียงแต่สลับที่ระหว่าง LDR กับ R 1 เวลามีแสงสว่าง เอาต์พุตก็จะเกือบ เป็น 0 โวลต์ เวลาไม่มีแสงสว่างเอาต์พุตก็เกือบเท่าแรงดันไฟเลี้ยงจะเห็นได้ว่ากลับกับกรณีแรก
ทั้ง 2 กรณี จะมีวงจรที่ต่อออกไปสำหรับจับสัญญาณว่ามีแสงสว่างหรือไม่. แล้วนำไปควบคุมสวิตช์ อีกทีให้ ทำงานใน กรณีที่ต้องการ. ในรูปที่ 7 เป็นตัวอย่างวงจรซึ่งรีเลย์จะทำงานเมื่อไม่มีแสงสว่าง ซึ่งถ้าเราไม่ต้องการแบบนี้ และ อยากให้รีเลย์ ทำงาน เมื่อมีแสงสว่างก็เพียงแต่สลับที่ระหว่าง LDR กับความต้านทานปรับค่าได้ 100 kW เท่านั้น
ในรูปที่ 8 ก็เป็น ตัวอย่างวงจรอีกอันหนึ่งทำงานเมื่อมีแสงสว่าง ตัวอย่างอื่นๆ ก็ได้แก่ วงจรจับควันไฟ , วงจรกะพริบ เพื่อความปลอดภัยเมื่อมีรถยนต์แล่นผ่านมา. ซึ่งโดยหลักการแล้วไม่ยาก คงจะนำไปดัดแปลงใช้กันได้
ใช้ LDR ตลอดช่วง
นอกจากวงจรเครื่องวัดแสง ซึ่งเป็นที่รู้จักกันดีในการประยุกต์ LDR ให้ใช้งานแบบทุกช่วงการเปลี่ยนแปลงแล้ว ยังมีคน ดัดแปลงไปใช้ในวงจรอื่นๆ อีก เช่น วงจรแปลงสัญญาณอะนาลอก เป็นสัญญาณดิจิตอล เพื่อเชื่อมต่อส่วนที่เป็น วงจรอะนาล็อก ให้ส่งสัญญาณผ่านเข้าไปทำงานในวงจรดิจิตอลได้ ดังเช่น รูปที่ 9 เป็นวงจรแปลงระดับความเข้มแสง ซึ่งเป็นสัญญาณ อะนาล็อกให้ออกมาเป็นจำนวนลูกคลื่นสี่เหลี่ยม ยิ่งความเข้มแสงมากเท่าไหร่ จำนวนลูกคลื่น สี่เหลี่ยมก็จะยิ่งออกมามากเท่านั้น วงจรนี้ ใช้ไอซี 555 ความถี่ของคลื่นที่ออกมาจะได้ประมาณ 22kHz ถ้าเอาไป รับแสงใกล้ๆ หลอดไฟขนาด 60 วัตต์ แต่จะ เหลือเพียงประมาณ 1Hz ในที่มืด ถ้าเอาลำโพงอนุกรมกับตัวต้านทาน 220W ไปต่อเข้ากับขา 3 และ ไฟบวกก็จะได้ยินเสียง สูงๆ
รูปวงจร 1
วีดีโอ
รูปวงจร 2
-------------------------------------------------------------------------------------
Code 2
7. LDR
LDR คือ
LDR : Light Dependent Resistor)
แอลดีอาร์ (LDR : Light Dependent Resistor) คือ ความต้านทานชนิดที่ไวต่อแสง กล่าวคือ ตัวความต้านทานนี้สามารถเปลี่ยนสภาพทางความนำไฟฟ้า ได้เมื่อมีแสงมาตกกระทบ บางครั้งเรียกว่าโฟโตรีซีสเตอร์ ( Photo Resistor) หรือ โฟโตคอนดัคเตอร์ (Photo Conductor) เป็นตัวต้านทานที่ทำมาจากสารกึ่งตัวนำ
(Semiconductor) ประเภทแคดเมี่ยมซัลไฟด์ ( Cds : Cadmium Sulfide) หรือแคดเมี่ยมซิลินายส์ ( CdSe : Cadmium Selenide) ซึ่งทั้งสองตัวนี้ก็เป็นสารประเภทกึ่งตัวนำ เอามาฉาบลงบนแผ่นเซรามิกที่ใช้เป็นฐานรองแล้วต่อขาจากสารที่ฉาบ ไว้ออกมา



รูปที่ 1 โครงสร้าง LDR

สมบัติทางแสง
การทำงานของ LDR เพราะว่าเป็นสารกึ่งตัวนำ เวลามีแสงตกกระทบลงไปก็จะถ่ายทอดพลังงาน ให้กับสาร ที่ฉาบอยู่ ทำให้เกิดโฮลกับอิเล็กตรอนวิ่งกันพล่าน. การที่มีโฮล กับอิเล็กตรอนอิสระนี้มากก็เท่ากับ ความต้านทานลดลงนั่นเอง ยิ่ง ความเข้มของแสงที่ตกกระทบมากเท่าไร ความต้านทานก็ยิ่งลดลงมากเท่านั้น


รูปที่ 2 ตัวอย่างกราฟแสดงความไวต่อแสงความถี่ต่าง ๆ ของ LDR ทั้ง 2 แบบ เมื่อเทียบกับความไวของตาคน

เมื่อเทียบกับการทำงาน ของอุปกรณ์ไวแสง ประเภทอื่น ๆ แต่ถึงอย่างไรแสงในช่วงคลื่นนี้ ก็มีอยู่ในแสงอาทิตย์ แสงจากหลอดไฟแบบไส้ และ แสงจากหลอดฟลูออเรสเซนต์ ด้วย หรือ ถ้าจะคิดถึงความยาวคลื่น ที่ LDR จะตอบสนองไวที่สุดแล้ว ก็มีอยู่หลาย ความยาวคลื่น โดยทั่วไป LDR ที่ทำจากแคดเมียมซัลไฟด์ จะไวต่อแสงที่มีความยาวคลื่นในช่วง 5,000 กว่า อังสตรอม. ซึ่งเราจะเห็นเป็นสีเขียว ไปจนถึงสีเหลือง สำหรับ บางตัวแล้ว ความ ยาวคลื่นที่ไวที่สุดของมันใกล้เคียงกับความยาวคลื่นที่ไวที่สุดของตาคนมาก ( ตาคนไวต่อความ ยาวคลื่น ประมาณ 5,550 อังสตรอม ) จึงมักจะใช้ทำเป็นเครื่องวัดแสง ในกล้องถ่ายรูป ถ้า LDR ทำจาก แคดเมียมซีลิไนด์ก็จะไวต่อ ความ ยาวคลื่นในช่วง 7,000 กว่า อังสตรอม ซึ่งไปอยู่ใน ช่วงอินฟราเรดแล้ว
ผลตอบสนองทางไฟฟ้า


รูปที่ 3 ผลของการเปลี่ยนความเข้มแสงในทันทีทันใดกับ LDR

หนึ่งช้ามาก. ซึ่งจะอยู่ในช่วงของมิลลิวินาทีหรือ บาง ทีก็เป็นวินาที เลย จึงทำให้ LDR ใช้ได้ กับงานความถี่ต่ำๆ เท่านั้น
ทำเป็นเครื่องวัดแสง ในรูปที่ 4 เป็นวงจรเครื่องวัดแสงแบบง่ายจริงๆ LDR ที่ใช้ก็ควรจะมีอัตราส่วนของค่าความต้านทาน ระหว่างไม่มีแสง กับมีแสงมากๆ หน่อย เวลาใช้ต้องระวังอย่าให้เข็มมิเตอร์ตีเกินสเกล ของแพงมาเสียง่ายๆ อย่าง นี้มันน่าเจ็บใจตัวเอง
ทำเป็นเครื่องวัดแสง ในรูปที่ 4 เป็นวงจรเครื่องวัดแสงแบบง่ายจริงๆ LDR ที่ใช้ก็ควรจะมีอัตราส่วนของค่าความต้านทาน ระหว่างไม่มีแสง กับมีแสงมากๆ หน่อย เวลาใช้ต้องระวังอย่าให้เข็มมิเตอร์ตีเกินสเกล ของแพงมาเสียง่ายๆ อย่าง นี้มันน่าเจ็บใจตัวเอง

รูปที่ 4 เครื่องวัดแสงแบบง่ายที่สุด


รูปที่ 5 วงจรเครื่องวัดแสงที่ปรับปรุงขึ้นแล้ว
สวิตซ์ทำงานด้วยแสง
การใช้ LDR ทำงานในวงจรปิดเปิดสวิตซ์ เราก็ จะใช้เพียง 2 อย่างเท่านั้น คือ มีแสง หรือ ไม่มีแสง. โดย ทั่วไปเราจะ ใช้วิธีเอามาอนุกรมกับตัวต้านทานตัวหนึ่ง แล้วต่อเป็นวงจรแบ่งแรงดันออกมาตามรูปที่ 6 อย่างในรูป ( ก ) จะทำงานดังนี้ คือ ถ้ามีแสงสว่าง LDR จะมีความต้านทานต่ำ ทำให้แรงดันส่วนใหญ่มาตกคร่อม R 1

เสียหมด แรงดันเอาต์พุต จึงสูงเกือบเท่า แรงดันไฟเลี้ยง และ ถ้าไม่มี แสง LDR จะมีความต้านทานสูง แรงดันส่วนใหญ่จะ ไปตกที่ LDR แรงดันเอาต์พุต จึงเกือบเป็น 0 โวลต์

รูปที่ 6 หลักการใช้ LDR ในวงจรปิดเปิดสวิตซ์


รูปที่ 7 ตัวอย่างวงจรควบคุมสวิตซ์โดยรีเลย์จะทำงานเมื่อไม่มีแสงสว่าง


รูปที่ 8 วงจรเตือนภัยเป็นเสียงเมื่อมีแสงสว่างกระทบ LDR

ใช้ LDR ตลอดช่วง

รูปที่ 9 ตัวอย่างวงจรเปลี่ยนสัญญาณแสงเป็นสัญญาณเสียง

ต่ำๆ ตามความเข้มของแสง ลองดูก็ได้คงจะสนุกไม่เลว และ ตัวอย่างอีกอันหนึ่งจะเห็นได้ในรูปที่ 10 เป็นวงจรเปิด - หรี่ - ปิดไฟ ซึ่งจะควบคุมให้หลอดไฟสว่างขึ้นในขณะ ที่แสงสว่างของสภาพแวดล้อมลดลงเป็นตัวอย่างที่ดีเหมือนกัน

รูปที่ 10 วงจรเปิด-หรี่-ปิดไฟ
รูปวงจร 1
Code 1
/*
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 =3;
int LED2 =4;
int LED3 =5;
int LED4 =6;
void setup() {
// initialize serial communication:
Serial.begin(9600);
for (int thisPin = 2; thisPin < 9; thisPin++) {
pinMode(thisPin, 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);
if (Serial.available() > 0) {
int inByte = Serial.read();
// do something different depending on the range value:
switch (range) {
case 0: // your hand is on the sensor
Serial.println("dark");
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(2, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
break;
case 1: // your hand is a few inches from the sensor
Serial.println("medium");
digitalWrite (LED1,LOW);
digitalWrite (LED2,HIGH);
digitalWrite (LED3,LOW);
digitalWrite (LED4,LOW);
break;
case 2: // your hand is nowhere near the sensor
Serial.println("Dim");
digitalWrite (LED1,LOW);
digitalWrite (LED2,LOW);
digitalWrite (LED3,HIGH);
digitalWrite (LED4,LOW);
break;
case 4: // your hand is nowhere near the sensor
Serial.println("bright");
digitalWrite (LED1,LOW);
digitalWrite (LED2,LOW);
digitalWrite (LED3,LOW);
digitalWrite (LED4,HIGH);
break;
default:
for (int thisPin = 2; thisPin < 9; thisPin++) {
digitalWrite(thisPin, LOW);
}
}
delay(1); // delay in between reads for stability
}
}
วีดีโอ
รูปวงจร 2
ดาวโหลด : คลิก!
-------------------------------------------------------------------------------------
Code 2
int LED1=2;
int LED2=3;
int LED3=4;
int LED4=5;
int LED5=6;
int LED6=7;
int LED7=8;
const int sensorMin = 0; // sensor minimum, discovered through experiment
const int sensorMax = 600; // sensor maximum, discovered through experiment
void setup() {
pinMode (LED1,OUTPUT);
pinMode (LED2,OUTPUT);
pinMode (LED3,OUTPUT);
pinMode (LED4,OUTPUT);
pinMode (LED5,OUTPUT);
pinMode (LED6,OUTPUT);
pinMode (LED7,OUTPUT);
// initialize serial communication:
Serial.begin(9600);
}
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"); //1
digitalWrite(8, HIGH);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
break;
case 1: // your hand is close to the sensor
Serial.println("dim"); //2
digitalWrite(8, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
break;
case 2:
Serial.println("medium");//3
digitalWrite(8, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
break;
case 3:
Serial.println("bright");//4
digitalWrite(8, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
break;
}
delay(1);
-------------------------------------------------------------------------------------
วีดีโอ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น