ใบงานที่ 3 การแสดงค่าความเข้มของแสงด้วย 7 segment

ผู้จัดทำ

นางสาวจีรพร ศรีบุญ  006
นางสาวพิมพ์พิชชา  แสงแจ่ม  037


ทฤษฎีของ LDR



LDR ตัวต้านทานปรับค่าตามแสง


LDR (Light Dependent Resistor) คือตัวต้านทานปรับค่าตามแสง ตัวต้านทานชนิดนี้สามารถเปลี่ยนความนําไฟฟ้าได้เมื่อมีแสงมาตกกระทบ โฟโตรีซีสเตอร์ ( Photo  Resistor)   หรือ โฟโตคอนดัคเตอร์   (Photo Conductor)   เป็นตัวต้านทานที่ทำมาจากสารกึ่งตัวนำ (Semiconductor)   ประเภทแคดเมี่ยมซัลไฟด์ ( Cds : Cadmium Sulfide)   หรือแคดเมี่ยมซิลินายส์ ( CdSe : Cadmium Selenide)   ซึ่งทั้งสองตัวนี้ก็เป็นสารประเภทกึ่งตัวนำ เอามาฉาบลงบนแผ่นเซรามิกที่ใช้เป็นฐานรองแล้วต่อขาจากสารที่ฉาบ ไว้ออกมา โครงสร้างของ LDR
ldr1
การทํางานของ LDR เมื่อเวลามีแสงตกกระทบลงไปก็จะถ่ายทอดพลังงาน ให้กับสาร ที่ฉาบอยู่ ทำให้เกิดโฮลกับอิเล็กตรอนวิ่งกันพล่าน การที่มีโฮล กับอิเล็กตรอนอิสระนี้มากก็เท่ากับ ความต้านทานลดลงนั่นเอง ยิ่ง ความเข้มของแสงที่ตกกระทบมากเท่าไร ความต้านทานก็ยิ่งลดลงมากเท่านั้น ดังนั้นเมื่อ LDR ถูกแสงตกประทบจะทําให้ ตัว LDR มีความต้านทานลดลง และเมื่อไม่มีแสงตกประทบจะมีความต้านทานมากขึ้น
สัญลักษณ์ของ LDR คือ
ldr-photoresistor-symbol

อุปกรณ์ที่ใช้


1.การแสดงค่าความเข้มของแสงด้วย LED 4 ดวง


1.โฟโต้บอร์ด
2.หลอด LED 4 ดวง
3.ตัวต้านทาน
4.สายแพผู้-ผู้
5.สายอัปโหลด
6.บอร์ด arduino
7.LDR

2.การแสดงค่าความเข้มของแสงด้วย 7 segment


1.โฟโต้บอร์ด
2.7 segment
3.ตัวต้านทาน
4.สายแพผู้-ผู้
5.สายอัปโหลด
6.บอร์ด arduino
7.LDR

รูปวงจร


 การแสดงค่าความเข้มของแสงด้วย 7 segment

Download คลิก


การแสดงค่าความเข้มของแสงด้วย LED 4 ดวง

Download คลิก


คำอธิบาย
เป็นการต่อวงจรที่ใช้ LED 4 ดวง และ LDR เป็นวงจรแสดงความเข้มของแสง ถ้าดวงที่ 1 แสดง
Code


การแสดงค่าความเข้มของแสงด้วย LED 4 ดวง

const int sensorMin = 0;      
const int sensorMax = 600;    
int LED1 = 2;
int LED2 = 3;
int LED3 = 4;
int LED4 = 5;
void setup() {
  pinMode (LED1,OUTPUT);
   pinMode (LED2,OUTPUT);
   pinMode (LED3,OUTPUT);
   pinMode (LED4,OUTPUT);
  Serial.begin(9600);
}

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("medium");
      digitalWrite(LED1,LOW);
      digitalWrite(LED2,HIGH);
      digitalWrite(LED3,LOW);
      digitalWrite(LED4,LOW);
      break;
    case 2:    
      Serial.println("dim");
      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);        
}

การแสดงค่าความเข้มของแสงด้วย 7 segment

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);        

}

Download คลิก

วิดีโอ




ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ใบงานที่ 6 การควบคุม servo motor (SG90) ด้วย Arduino UNO R3

ใบงานที่ 4 การใช้งานเซนเซอร์วัดระยะทาง HC-SR04