วันอาทิตย์ที่ 19 ตุลาคม พ.ศ. 2557

การทดลองที่ 5.4 การเชื่อมต่อวงจรอิเล็กทรอนิกส์ด้วยแสง

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

     1. ฝึกต่อวงจรโดยใช้อุปกรณ์เชื่อมต่อทางแสง เช่น เบอร์ PC817
     2. ประยุกต์ใช้งานอุปกรณ์ชนิดนี้ร่วมกับบอร์ด Arduino และใช้ควบคุมการจ่ายกระแสให้โหลด

อุปกรณ์ที่ใช้ในการทดลอง
     1. แผงต่อวงจร (เบรดบอร์ด)                            1 อัน
     2. อุปกรณ์เชื่อมต่อทางแสง PC817                 1 ตัว
     3. ไดโอดเปล่งแสงสีแดงหรือสีเขียว               1 ตัว
     4. ตัวต้านทาน 220Ω หรือ 330Ω                      1 ตัว
     6. ทรานซิสเตอร์ NPN เบอร์ PN2222A           1 ตัว
     7. ตัวต้านทาน 1kΩ                                          1 ตัว
     8. ตัวต้านทาน 4.7kΩ                                       1 ตัว
     9. ตัวต้านทาน 10kΩ                                        1 ตัว
     10. ตัวต้านทานปรับค่าได้ 10kΩ หรือ 20kΩ     1 ตัว
     11. ไดโอด 1N400x                                          1 ตัว
     12. มอเตอร์ไฟฟ้ากระแสตรงขนาดเล็ก            1 ตัว
     13. สายไฟสำหรับต่อวงจร                               1 ชุด
     14. มัลติมิเตอร์                                                 1 เครื่อง
     15. แหล่งจ่ายแรงดันควบคุม                            1 เครื่อง
     16. ออสซิลโลสโคปแบบดิจิทัล                       1 เครื่อง

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

     1. ต่อวงจรบนเบรดบอร์ดตามรูปที่ 5.4.1 ให้สังเกตว่า ในผังวงจรมี GND1 และ GND2 แยกกันซึ่ง
จะต้องไม่นำมาต่อเข้าด้วยกันโดยเด็ดขาด


*ขั้นตอนนี้ใช้ตัวต้านทาน 10k ต่อขนานกันแทนตัวต้านทาน 4.7k

     2. ให้ใช้แรงดันไฟเลี้ยง +5V และ GND1 ให้ใช้จากบอร์ด Arduino แต่สำหรับ +9V และ GND2
ให้ใช้จากแหล่งจ่ายแรงดันควบคุม
     3. เขียนโค้ด Arduino โดยสร้างสัญญาณแบบ PWM โดยใช้คำสั่ง analogWrite() เพื่อสร้างสัญญาณเอาต์พุตที่ขา D5 โดยปรับค่า Duty Cycle ของสัญญาณเอาต์พุตตามค่าที่อ่านได้จากตัวต้านทานปรับค่าได้ ซึ่งต่อเป็นอินพุตที่ขา A1

รูปวงจรที่ใช้ในการทดลอง
Code
const byte input =A1;
const byte led =5;
void setup(){
   pinMode(led,OUTPUT);
   analogReference(DEFAULT);
   Serial.begin(9600);
}
void loop(){
   int value =analogRead(input)/4;
   Serial.println(value);
   analogWrite(led,value);
   delay(500);
}


     4. ใช้ออสซิลโลสโคปวัดสัญญาณที่ขา E ของ PC817 เทียบกับ GND2 แล้วทดลองหมุนปรับที่
ตัวต้านทานปรับค่าได้ เพื่อปรับค่า Duty Cycle เป็น 0% 25% 50% และ 100% ตามลำดับ
บันทึกรูปคลื่นสัญญาณที่ได้ในแต่ละกรณี

Duty Cycle เป็น 0% 

Duty Cycle เป็น 25% 

Duty Cycle เป็น 50% 

Duty Cycle เป็น 100% 

     5. ทดลองเปลี่ยนจาก LED และตัวต้านทาน เป็นมอเตอร์ไฟฟ้ากระแสตรงขนาดเล็ก (ปรับแรงดันไฟเลี้ยงจาก +9V ให้เป็นแรงดันไฟเลี้ยงที่เหมาะสมกับมอเตอร์ไฟฟ้า +VM) โดยต่อวงจรตามรูปที่ 5.4.2 และ ทดลองปรับค่า Duty Cycle





*เมื่อปรับให้ค่าDuty Cycle ให้มากขึ้น มอเตอร์ไฟฟ้าก็จะยิ่งหมุนเร็วขึ้น






วันพฤหัสบดีที่ 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. ในการทดลอง ถ้าใช้วัตถุต่างสีกัน จะมีผลต่อการทำงานของวงจรที่แตกต่างกันหรือไม่ จงอธิบาย

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