วันพฤหัสบดีที่ 2 ตุลาคม พ.ศ. 2557

การทดลองที่ 5.2 การตรวจจับวัตถุในระยะใกล้ด้วยแสงอินฟราเรด

วัตถุประสงค์

  • ฝึกต่อวงจรโดยใช้ไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์
  • เขียนcode สำหรับควบคุมการทำงานบอร์ด Arduino เพื่อใช้ตรวจจับวัตถุในระยะใกล้

รายการอุปกรณ์

  • แผงต่อวงจร (เบรดบอร์ด)                                                 1 อัน
  • ไดโอดเปล่งแสงอินฟราเรด                                               1 ตัว
  • ไดโอดเปล่งแสงสีแดงหรือสีเขียว                                     1 ตัว
  • โฟโต้ทรานซิสเตอร์                                                           1 ตัว
  • ตัวต้านทาน 220Ω                                                             1 ตัว
  • ตัวต้านทาน 330Ω หรือ 470Ω                                            1 ตัว
  • ตัวต้านทาน 10kΩ                                                              1 ตัว
  • ตัวเก็บประจุแบบ Electrolytic 1uF หรือ 10uF (มีขั้ว)          1 ตัว
  • สายไฟสำหรับต่อวงจร                                                       1 ชุด
  • มัลติมิเตอร์                                                                         1 เครื่อง


ขั้นตอนการทดลอง

1. ออกแบบวงจร (วาดผังวงจร) โดยใช้ไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์ 1 ชุด พร้อมตัวต้านทานตามที่กำหนดให้ แล้วนำสัญญาณเอาต์พุตของวงจรส่วนนี้ ไปต่อเข้าที่ขาอินพุต A1 ของบอร์ด Arduino และให้มีวงจร ไดโอดเปล่งแสง (LED) พร้อมตัวต้านทานจำกัดกระแส 330Ω หรือ 470Ω ที่ต่อกับขาเอาต์พุต D5 ของบอร์ด Arduino เพื่อใช้เป็นเอาต์พุตในการแสดงผล


2. ต่อวงจรตามผังวงจรที่ได้วาดไว้บนเบรดบอร์ด ให้ใช้แรงดันไฟเลี้ยง VCC=+5V และ Gnd จากบอร์ด Arduino เท่านั้น ห้องปฏิบัติการระบบสมองกลฝังตัว (ESL) / มจพ. ดร.เรวัต ศิริโภคาภิรมย์
ผังวงจรของการทดลอง


3. เขียนโค้ดสำหรับ Arduino ให้แสดงพฤติกรรมดังนี้ เมื่อมีวัตถุเข้าใกล้ (อยู่เหนือ) ตัวส่งและตัวรับแสง อินฟราเรดของวงจร (เช่น ที่ระยะห่างประมาณ 10 cm หรือน้อยกว่า) จะทำให้ LED เริ่มกระพริบด้วยความถี่ต่ำ (อย่างช้าๆ) แต่ถ้าวัตถุเข้าใกล้มากขึ้น LED จะกระพริบด้วยความถี่สูงขึ้น แต่ถ้าไม่มีวัตถุอยู่ในระยะใกล้ LED จะต้องไม่ติด (ไม่กระพริบ) ให้ทดลองกับวัตถุต่างสีกัน เช่น สีขาวและสีดำ
CODE
const byte input = A1;    //กำหนดให้ input เป็น ขาA1 ของ Arduino
const byte Led = 5;        //กำหนกให้ Led เป็นขา digital ขา5
void setup() {
  pinMode(Led, OUTPUT);     //กำหนดให้Led เป็น output(แสดงที่หลอดLED)
  digitalWrite(Led, LOW);       //กำหนดให้เริ่มแรก หลอดLEDดับ
  analogReference(DEFAULT);
  Serial.begin(9600);

}

void loop() {
  int value = analogRead(input);    //กำหนดให้ value มีค่าเป็นA1 คือค่าที่รับมาจาก output ของ โฟโต้ทรานซิสเตอร์   
  Serial.println(value);
  if (value < 900) {                       //ค่า900มาจากการวัดค่า value เมื่อไม่มีวัตถุใดๆอยู่เหนือวงจร ค่าที่วัดได้มีค่า มากกว่า900
    int x = (2 * value / 10);           //เป็นตัวกำหนดค่าว่าจะให้LED กระพริบเร็วมากน้อยแค่ไหน
    digitalWrite(Led, HIGH);      //กำหนดให้LEDติด
    delay(x);                                //ค่า delay จะเป็นการหน่วงเวลาในการวน void loop
    digitalWrite(Led, LOW);      //กำหนดให้LEDดับ
    delay(x);
  }
  else {
    digitalWrite(Led,LOW);
  }

}



4. เขียนรายงานการทดลอง ซึ่งประกอบด้วยคำอธิบายการทดลองตามขั้นตอน ผังวงจรที่ถูกต้องครบถ้วนตามหลักไฟฟ้า (ให้วาดด้วยโปรแกรม Cadsoft Eagle) รูปถ่ายของการต่อวงจรบนเบรดบอร์ด และตอบคำถามท้ายการทดลอง


คำถามท้ายการทดลอง

           1. ในการทดลอง ถ้าใช้วัตถุต่างสีกัน จะมีผลต่อการทำงานของวงจรที่แตกต่างกันหรือไม่ จงอธิบาย

ตอบ มีผลเนื่องจาก กระดาษสีขาวมีการสะท้อนของแสงได้ดีกว่า

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

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