วันเสาร์ที่ 24 มีนาคม พ.ศ. 2561

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

นางสาว กัญญารัตน์  สังขพันธ์ 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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น