นางสาว กัญญารัตน์ สังขพันธ์ 1สทค.2 6031280023
นาย จารุเดช สังข์ประไพ 1สทค.2 6031280027
ตัวต้านทานปรับค่าตามแสง LDR
LDR (Light Dependent Resistor) คือตัวต้านทานปรับค่าตามแสง ตัวต้านทานชนิดนี้สามารถเปลี่ยนความนําไฟฟ้าได้เมื่อมีแสงมาตกกระทบ โฟโตรีซีสเตอร์ ( Photo Resistor) หรือ โฟโตคอนดัคเตอร์ (Photo Conductor) เป็นตัวต้านทานที่ทำมาจากสารกึ่งตัวนำ (Semiconductor) ประเภทแคดเมี่ยมซัลไฟด์ ( Cds : Cadmium Sulfide) หรือแคดเมี่ยมซิลินายส์ ( CdSe : Cadmium Selenide) ซึ่งทั้งสองตัวนี้ก็เป็นสารประเภทกึ่งตัวนำ เอามาฉาบลงบนแผ่นเซรามิกที่ใช้เป็นฐานรองแล้วต่อขาจากสารที่ฉาบ ไว้ออกมา โครงสร้างของ LDR
การทํางานของ LDR เมื่อเวลามีแสงตกกระทบลงไปก็จะถ่ายทอดพลังงาน ให้กับสาร ที่ฉาบอยู่ ทำให้เกิดโฮลกับอิเล็กตรอนวิ่งกันพล่าน การที่มีโฮล กับอิเล็กตรอนอิสระนี้มากก็เท่ากับ ความต้านทานลดลงนั่นเอง ยิ่ง ความเข้มของแสงที่ตกกระทบมากเท่าไร ความต้านทานก็ยิ่งลดลงมากเท่านั้น ดังนั้นเมื่อ LDR ถูกแสงตกประทบจะทําให้ ตัว LDR มีความต้านทานลดลง และเมื่อไม่มีแสงตกประทบจะมีความต้านทานมากขึ้น
สัญลักษณ์ของ LDR
ขอขอบคุณข้อมูลจาก https://www.thitiblog.com/blog/6796
การแสดงค่าความเข้มของแสงด้วย 7-Segment
อุปกรณ์
1. บอร์ด Arduino 1 บอร์ด
2. โปรโตบอร์ด 1 บอร์ด
3. ตัวต้านทานปรับค่าตามแสง (LDR ) 1 ตัว
4. ตัวต้านทาน 220 Ω 4 ตัว (ใช้สำหรับต่อกับ LED)
5. ตัวต้านทาน 10 KΩ 1 ตัว (ใช้สำหรับต่อกับ 7-Segment ในวงจรที่ 2 )
6. LED 4 ตัว
7. 7-Segment 1 ตัว (ใช้ในวงจรที่ 2 )
8. สายไฟผู้ - ผู้
รูปวงจร
รูปวงจรที่ 1 วงจรการใช้ LED แสดงผลตามค่าความเข้มของแสง
Code Program Arduino สำหรับวงจร
const int sensorMin = 0;
const int sensorMax = 600;
int led1=2;
int led2=3;
int led3=4;
int led4=5;
void setup() {
Serial.begin(9600);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
}
void loop() {
int sensorReading = analogRead(A0);
int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
switch (range) {
case 0:
Serial.println("dark");
digitalWrite (led1,HIGH);
digitalWrite (led2,LOW);
digitalWrite (led3,LOW);
digitalWrite (led4,LOW);
break;
case 1:
Serial.println("dim");
digitalWrite (led1,LOW);
digitalWrite (led2,HIGH);
digitalWrite (led3,LOW);
digitalWrite (led4,LOW);
break;
case 2:
Serial.println("medium");
digitalWrite (led1,LOW);
digitalWrite (led2,LOW);
digitalWrite (led3,HIGH);
digitalWrite (led4,LOW);
break;
case 3:
Serial.println("bright");
digitalWrite (led1,LOW);
digitalWrite (led2,LOW);
digitalWrite (led3,LOW);
digitalWrite (led4,HIGH);
break;
}
delay(1);
}
Download Arduino Code ที่นี่
อธิบายวงจร
เมื่อทำการเอาฝาปากกาเคมีครอบตัว LDR จน Serial Monitor แสดงข้อความว่า "dark" LED ดวงที่ 4 จะติด จากนั้นค่อยๆเอาฝาปากกาเคมีขึ้น จน Serial Monitor แสดงข้อความว่า "dim" LED ดวงที่ 3 จะติด ทำเหมือนกันจน Serial Monitor แสดงข้อความว่า "meduim" LED ดวงที่ 2 จะติด สุดท้ายเมื่อนำฝาปากกาออก ข้อความบน Serial Monitor จะแสดงเป็น "bright" และ LED ดวงที่ 4 จะติด
รูปวงจร
รูปวงจรที่ 2 วงจรการแสดงความเข้มของแสงด้วย 7-Segment
const int sensorMin = 0;
const int sensorMax = 600;
int led1 =2;
int led2 =3;
int led3 =4;
int led4 =5;
int led5 =6;
int led6 =7;
int led7 =8;
int led8 =9;
void setup() {
// initialize serial communication:
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(led8,OUTPUT);
Serial.begin(9600);
for (int thisPin = 2; thisPin < 10; thisPin++) {
pinMode(thisPin, OUTPUT);
}
}
void loop() {
int sensorReading = analogRead(A0);
int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
switch (range) {
case 0:
Serial.println("dark");
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
case 1:
Serial.println("dim");
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
case 2:
Serial.println("meduim");
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
case 3:
Serial.println("bright");
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, HIGH);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
break;
}
delay(1);
}
Download Arduino Code ที่นี่
อธิบายวงจร
เมื่อทำการเอาฝาปากกาเคมีครอบตัว LDR จน Serial Monitor แสดงข้อความว่า "dark" ตัวเลขบน 7-Segment จะแสดงเป็นเลข 1 จากนั้นค่อยๆเอาฝาปากกาเคมีขึ้น จน Serial Monitor แสดงข้อความว่า "dim" ตัวเลขบน 7-Segment จะแสดงเป็นเลข 2 ทำเหมือนกันจน Serial Monitor แสดงข้อความว่า "meduim" ตัวเลขบน 7-Segment จะแสดงเป็นเลข 3 สุดท้ายเมื่อนำฝาปากกาออก ข้อความบน Serial Monitor จะแสดงเป็น "bright" และ 7-Segment จะแสดงตัวเลขเป็นเลข 4
วิดีโอประกอบ
วงจรที่ 1
วงจรที่ 2
** ในวิดีโอที่ 2 Program Arduino จะแสดงผลเหมือน วีดีโอที่ 1
ไม่มีความคิดเห็น:
แสดงความคิดเห็น