วันอาทิตย์ที่ 25 มีนาคม พ.ศ. 2561

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

นางสาวจริญญา แสงวงศ์ 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.โฟโต้บอร์ด                          อัน
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)





คลิก Download3.1 ,  Download3.2 เพื่อดาวน์โหลดรูปไปแก้เพิ่มเติม แต่ทั้งนี้ต้องมีโปรแกรม Fritzing อยู่ในเครื่องคอม ฯ ของเราก่อนนะคะ หากไม่มีสามารถโหลดได้ที่ DownloadProgramFritzing 


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
}


คลิก DownloadCode3.1 DownloadCode3.2 เพื่อนำไปแก้ไขเพิ่มเติม แต่ทั้งนี้ต้องมีโปรแกรม Arduino อยู่ในเครื่องคอม ฯ ของเราก่อนนะคะ หากไม่มีสามารถโหลดได้ที่ DownloadArduino 


VDO :


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





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



ใบงานที่ 8 Ultrasonic Object Radar System

นางสาวจริญญา แสงวงศ์ 1 สทค 2 รหัส 6031280026 นางสาวจิรนันท์ จานศิลา 1 สทค 2 รหัส 6031280028    Ultrasonic Object Radar System ...