วันพุธที่ 15 ตุลาคม พ.ศ. 2557

การทดลองที่ 5.3

การต่อวงจรสวิตช์ควบคุมด้วยแสง

วัตถุประสงค์ในการทดลอง

1.    ฝึกการต่อวงจรโดยใช้สวิตช์ควบคุมด้วยแสง Opto-Interrupter บนเบรดบอร์ดอย่างถูกต้อง
2.   รู้จักการทำงานทางกายภาพของสวิตช์ควบคุมด้วยแสง
3.   ประยุกต์ใช้งานวงจรวิตช์ควบคุมด้วยแสงร่วมกับบอร์ด Arduino ได้อย่างถูกต้องและเกิดประโยชน์

อุปกรณ์ที่ใช้ในการทดลอง  

                    1. แผงต่อวงจร (เบรดบอร์ด)                                                          1 อัน
            2. อุปกรณ์สวิตช์ควบคุมด้วยแสง H21A1 หรือ TCST2202         1 ตัว
            3. ไดโอดเปล่งแสงสีแดงหรือสีเขียว                                             1 ตัว
            4. ตัวต้านทาน 220Ω                                                                     1 ตัว
            5. ตัวต้านทาน 330Ω หรือ 470Ω                                                  1 ตัว
            6. ตัวต้านทาน 10kΩ                                                                      1 ตัว
            7. บัซเซอร์แบบเปียโซ (Piezo Buzzer)                                        1 ตัว
            8. สายไฟสําหรับต่อวงจร                                                               1 ชุด
            9. มัลติมิเตอร์                                                                                  1 เครื่อง

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

      1. ต่อวงจรบนเบรดบอร์ดตามรูปที่ 5.3.1 โดยใช้แรงดันไฟเลี้ยง +5V และ GND จากบอร์ด Arduino 




ภาพการต่อวงจรบนเบรดบอร์ดจำลอง


ภาพการต่อวงจรจริงบนเบรดบอร์ด



      2. เขียนโค้ด Arduino เพื่อรับค่าอินพุตแบบดิจิทัลที่ขา D3 (จากสัญญาณ Vout ของวงจรบนเบรด
บอร์ด) แล้วสร้างสัญญาณเอาต์พุตที่ขา D5 เพื่อแสดงค่าของอินพุตที่รับโดยใช้LED เป็นตัวแสดง
สถานะทางลอจิก (ถ้าไม่มีวัตถุมาปิดกั้นช่องรับแสง LED จะต้องไม่ติด) 




Code: Arduino
const byte TCST = 3;
const byte LED1_PIN = 5;

void setup() {
  pinMode (TCST, INPUT);
  pinMode (LED1_PIN, OUTPUT);
  Serial.begin (9600);
}

void loop() {
  digitalWrite (LED1_PIN,(digitalRead(TCST)));

}

      3. ใช้กระดาษสีดําปิดกั้น (หรือวัตถุอื่น เช่น ไม้บรรทัดเหล็ก) บริเวณช่องรับแสงของอุปกรณ์สวิตช์
ควบคุมด้วยแสง สังเกตความแตกต่างระหว่างกรณีที่มีวัตถุปิดกั้นและไม่มี (เช่น ใช้มัลติมิเตอร์วัด
แรงดัน Vout)


วัดแรงดัน Vout. ที่ขณะมีวัตถุกั้น

วัดแรงดัน Vout. ที่ขณะไม่มีวัตถุกั้น


      4. ทดลองต่อบัซเซอร์แบบเปียโซ (สร้างเสียงเตือน) แทนวงจร LED ในวงจรบนเบรดบอร์ด (โดยนําไปต่ออนุกรมกับตัวต้านทานขนาด 330Ω และใหส้ังเกตว่า บัซเซอร์แบบเปียโซมีขาบวกและขาลบ) 




      5. แก้ไขโค้ด Arduino เพื่อนับเวลาตั้งแต่เริ่มนํากระดาษไปปิดกั้นจนถึงเมื่อนํากระดาษออกในแต่ละครั้งโดยวัดช่วงเวลาเป็นหน่วยมิลลิวินาที (msec) และให้แสดงผลออกทางพอร์ตอนุกรมผ่านทาง Serial 
Monitor ของ Arduino IDE (ให้ศึกษาการใช้คําสั่ง millis() สําหรับการเขียนโค้ด Arduino) 



Code: Arduino

const byte TCST = 3;
const byte LED1_PIN = 5;
unsigned long time1;
unsigned long time2;
unsigned long DeltaTime;
void setup() {
  pinMode (TCST, INPUT);
  pinMode (LED1_PIN, OUTPUT);
  Serial.begin (9600);
}
void loop() {
  digitalWrite(LED1_PIN, (digitalRead(TCST) == HIGH) ? HIGH : LOW);
  if (digitalRead(TCST) == HIGH)
  {
    time1 = millis();
    while (true)
{
      time2 = millis();
      if (digitalRead(TCST) == LOW)
      {
        Serial.print("Time :");
        DeltaTime = (time2 - time1);
        Serial.println(DeltaTime);
        break;
      }
    }
  }
  delay(100);
}

บันทึกผลการทดลอง

จากการทดลองข้อที่ 2 :


จากการทดลองข้อที่ 3 :
จากการทดลองข้อที่ 4 :


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

              1. จากการทดลองพบว่า จะวัดแรงดัน Vout ได้เท่ากับ 0.103 โวลต์ เมื่อไม่มีวัตถุไปปิดกั้นช่องรับแสงของอุปกรณ์H21A1 และจะวัด Vout ได้เท่ากับ 4.954 โวลต์ มื่อมีวัตถุไปปิดกั้นช่องรับแสงของอุปกรณ์ดังกล่าว
     2. ถ้านํากระดาษสีขาวและกระดาษสีดํา ไปปิดกั้นช่องรับแสง ในแต่ละกรณีจะให้ผลการทำงานของวงจรที่แตกต่างกันหรือไม่จงอธิบาย  ไม่แตกต่างกัน เนื่องจากตัวอุปกรณ์สวัิตช์ควบคุมด้วยแสง H21A1 มีวิธีการตรวจจับแบบ Transmissive, Slotted





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

การทดลองที่ 5.1

การต่อวงจรไดโอดเปล่งแสงอินฟราเรด


และโฟโต้ทรานซิสเตอร์


วัตถุประสงค์ในการทดลอง

1.    ฝึกการต่อวงจรไอดเปล่งแสงอินฟาเรด และโฟโต้ทรานซิสเตอร์ บนเบรดบอร์ดอย่างถูกต้อง
2.   รู้จักการทำงานของไอโอดเปล่งแสงอินฟาเรด และโฟโต้ทรานซิสเตอร์
       ที่ใช้เป็นตัวส่ง และรับแสงในวงจร
3.   สามารถหาความสัมพัธ์ระหว่างปริมาณแสงที่สะท้อนกลับ และระดับแรงดันเอาต์พุตในวงจรได้

อุปกรณ์ที่ใช้ในการทดลอง  

          1.  แผงต่อวงจร (เบรดบอร์ด)                                   1 อัน
          2. ไดโอดเปล่งแสงอินฟราเรด                                 1 ตัว
          3. โฟโต้ทรานซิสเตอร์                                             1 ตัว
          4. ตัวต้านทาน 220Ω                                               1 ตัว
          5. ตัวต้านทาน 10kΩ                                                1 ตัว
          6. ตัวเก็บประจุแบบ Electrolytic 1uF (มีขั้ว)          1 ตัว
          7. สายไฟสําหรับต่อวงจร                                         1 ชุด
          8. มัลติมิเตอร์                                                           1 เครื่อง
          9. แหล่งจ่ายแรงดันควบคุม                                     1 เครื่อง
        10. ออสซิลโลสโคปแบบดิจิทัล                                1 เครื่อง

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

       1. ต่อวงจรบนเบรดบอร์ด ตามผังวงจรในรูปที่5.1.1 (ให้ไดโอดเปล่งแสงอินฟราเรดและโฟโต้
ทรานซิสเตอร์อยู่ห่างกันประมาณ 1 cm) แล้วป้อนแรงดันไฟเลี้ยง VCC=+5V และ Gnd 
จากแหล่งจ่ายแรงดันควบคุม ไปยังวงจรบนเบรดบอร์ด



 ภาพการต่อวงจรบนเบรดบอร์ดตามรูปที่ 5.1.1



ภาพการต่อวงจรจริงบนเบรดบอร์ด เข้ากับเครื่องกำเนิดสัญญาณกระแสตรง 5 โวล์ต

ภาพการตรวจเช็ค IR LED ว่าใช้งานได้หรือไม่ (สามารถตรวจสอบได้โดยมองผ่านกล้องดิจิทัล)

        2. วัดแรงดันตกคร่อมที่ขาทั้งสองของไดโอดเปล่งแสงอินฟราเรด และวัดปริมาณกระแสที่ไหล (mA) แล้วจดบันทึกค่าที่ได้

ภาพการวัดแรงดันตกคร่อม IR LED
ค่าที่ได้คือ 1.182 v.

ภาพการวัดกระแสที่ผ่าน IR LED
ค่าที่ได้คือ 16.59 mA.

      3. ใช้ออสซิลโลสโคปวัดแรงดัน Vout แล้วบันทึกภาพของรูปคลื่นสัญญาณที่ปรากฏ
      4. ทดลองต่อและไม่ต่อตัวเก็บประจุสังเกตความแตกต่างของรูปคลื่นสัญญาณ Vout ในแต่ละกรณี

ภาพการวัดคลื่นสัญญาณโดยไม่ต่อตัวเก็บประจุ Vout ด้วยออสซิโลสโคป 

      5. นําแผ่นกระดาษสีขาว มาอยู่เหนือ ไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์ทระยะ                   ห่าง 0.5 cm, 1 cm, 5 cm, และ 10 cm ตามลําดับ ใช้มัลตมิิเตอร์วัดแรงดัน Vout สําหรบระยะห่าง
            ดังกล่าว แล้วจดบันทึกค่าที่ได้ในแต่ละกรณี
  • ระยะห่าง 0.5 cm.
ค่าที่ได้คือ 3.238 v.

  • ระยะห่าง 1 cm.
ค่าที่ได้คือ 3.267 v.


  • ระยะห่าง 5 cm.
ค่าที่ได้คือ 3.878 v.

  • ระยะห่าง 10 cm.
ค่าที่ได้คือ 4.288 v.


      6. นําแผ่นกระดาษสีดํา มาอยู่เหนือ ไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์ที่ระยะห่าง 
          0.5 cm, 1 cm, 5 cm, และ 10 cm ตามลําดับ ใช้มัลตมิิเตอร์วัดแรงดัน Vout สําหรบระยะห่าง
         ดังกล่าว แล้วจดบันทึกค่าที่ได้ในแต่ละกรณี
  • ระยะห่าง 0.5 cm.
 ค่าที่ได้คือ 4.870 v.

  • ระยะห่าง 1 cm.
 ค่าที่ได้คือ 4.873 v.

  • ระยะห่าง 5 cm.

 ค่าที่ได้คือ 4.848 v.

  • ระยะห่าง 10 cm.
 ค่าที่ได้คือ 4.769 v.


7. ต่อวงจรตามผังวงจรในรูปที่5.1.2 แล้วเปรียบเทียบความแตกต่างกับวงจรในรูปที่ 5.1.1 
(เช่น ดูการเปลี่ยนแปลงของแรงดัน Vout) 



 ภาพการต่อวงจรบนเบรดบอร์ดตามรูปที่ 5.1.2

ภาพการต่อวงจรจริงบนเบรดบอร์ด เข้ากับเครื่องกำเนิดสัญญาณกระแสตรง 5 โวล์ต

7.1  นําแผ่นกระดาษสีขาว มาอยู่เหนือ ไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์ทระยะ                   ห่าง 0.5 cm, 1 cm, 5 cm, และ 10 cm ตามลําดับ ใช้มัลตมิิเตอร์วัดแรงดัน Vout สําหรบระยะห่าง
        ดังกล่าว แล้วจดบันทึกค่าที่ได้ในแต่ละกรณี
  • ระยะห่าง 0.5 cm. 
ค่าที่ได้คือ 1.248 v.

  • ระยะห่าง 1 cm.
ค่าที่ได้คือ 1.543 v.

  • ระยะห่าง 5 cm.
ค่าที่ได้คือ 1.004 v.

  • ระยะห่าง 10 cm.
ค่าที่ได้คือ 0.901 v.


 7.2 นําแผ่นกระดาษสีดํา มาอยู่เหนือ ไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์ที่ระยะห่าง 
        0.5 cm1 cm5 cm, และ 10 cm ตามลําดับ ใช้มัลตมิิเตอร์วัดแรงดัน Vout สําหรบระยะห่าง
        ดังกล่าว แล้วจดบันทึกค่าที่ได้ในแต่ละกรณี
  • ระยะห่าง 0.5 cm.

 ค่าที่ได้คือ 0.119 v.
  • ระยะห่าง 1 cm.
 ค่าที่ได้คือ 0.134 v.
  • ระยะห่าง 5 cm.
 ค่าที่ได้คือ 0.196 v.

  • ระยะห่าง 10 cm.
 ค่าที่ได้คือ 0.254 v.

บันทึกผลการทดลอง

จากการทดลองข้อที่ 2 :
จากการทดลองข้อที่ 3 :

คลื่นสัญญาณปกติที่ Vout.

จากการทดลองข้อที่ 4 :

คลื่นสัญญาณ Vout. จากวงจรที่ไม่ต่อตัวเก็บประจุ

คลื่นสัญญาณ Vout. จากวงจรที่ต่อตัวเก็บประจุ

จากการทดลองข้อที่ 5 :

กระดาษสีขาว
จากตารางสามารถสรุปได้ว่า
เมื่อระยะห่างของกระดาษ กับโฟโต้ทรายซิสเตอร์มากขึ้น ค่าแรงดันที่ได้จะมีค่ามากขึ้นตามไปด้วย เพราะฉะนั้น อาจสรุปได้ว่า "ในวงจรนี้ ระยะห่างของกระดาษสีขาวแปรผันตรงกับปริมาณของแรงดัน"


จากการทดลองข้อที่ 6 :

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

จากการทดลองข้อที่ 7.1 :

กระดาษสีขาว


จากตารางสามารถสรุปได้ว่า
เมื่อระยะห่างของกระดาษ กับโฟโต้ทรายซิสเตอร์มากขึ้น ค่าแรงดันที่ได้จะมีค่าน้อยลงตามไปด้วย เพราะฉะนั้น อาจสรุปได้ว่า "ในวงจรนี้ ระยะห่างของกระดาษสีขาวแปรผกผันกับปริมาณของแรงดัน"


จากการทดลองข้อที่ 7.2 :

กระดาษสีดำ


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



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

1. จากกการทดลองพบว่า จะมีกระแสไหลผ่านไดโอดเปล่งแสงอินฟราเรด 16.59 mA. และวัดแรงดันตกคร่อมได้เท่ากับ  1.182 v. โวลต์

2. เมื่อทดลองโดยใช้กระดาษสีขาว สําหรับวงจรแบบที่ 1 จะได้แรงดัน Vout อยู่ในช่วง 3.238 - 4.288 และจะได้แรงดัน Vout อยู่ในช่วง 0.901- 1.248 v. สําหรับวงจรแบบที่ 2 

3. เมื่อทดลองโดยใช้กระดาษสีดํา สําหรับวงจรแบบที่ 1 จะได้แรงดัน Vout อยู่ในช่วง 4.769-4.873  และจะได้แรงดัน Vout อยู่ในช่วง 0.119 - 0.254 v. สําหรับวงจรแบบที่ 2 

4. ที่ระยะห่างเท่ากัน การทดลองด้วยวัตถุสีขาวและวัตถุสีดํา จะให้ผลแตกต่างกันหรือไม่ เมื่อวัดแรงดันVout ของวงจร จงอธิบาย ผลที่ได้จะออกมาแตกต่างกันเนื่องจาก กระดาษสีขาวมีคุณสมบัติในการสะท้อนแสงมากกว่า ทำให้โฟโต้ทรานซิสเตอร์รับปริมาณแสงน้อยกว่าจากกระดาษสีดำ (เมื่อมีแสงในปริมาณมากพอทรานซิสเตอร์จะทำงานโดยยอมให้กระแสไหลผ่านจากขาหนึ่งไปยังอีกขาหนึ่ง)

5. การต่อตัวเก็บประจุคร่อมที่ Vout กับ Gnd มีผลต่อรูปคลื่นสัญญาณเอาต์พุตหรือไม่จงอธิบาย ทำให้คลื่นสัญญาณที่ได้มีค่าผกผันกับปริมาณแสงที่ได้รับ และมีค่าน้อยลง

6. ในการทดลอง แสงสว่างจากหลอดไฟในอาคาร มีผลต่อสัญญาณ  Vout  หรือไม่จงอธิบาย ไม่มีผลเนื่องจาก ในวงจรมีระยะตรวจจับการสะท้อนแสง(IR LED)



การทดลองที่ 4.6

การวัดแรงดันอินพุต - แอนะล็อก

และการแสดงค่าโดยใช้ 7 - Segment

วัตถุประสงค์ในการทดลอง

1.    ฝึกการต่อวงจรบนเบรดบอร์ด อย่างถูกต้อง
2.   ฝึกการเขียนโปรแกรมคำสั่ง Ardunio เพื่อวัดแรงดันอินพุตแอนะล็อก
3.   สามารถนำค่าอินพุตที่อ่านได้จากบอร์ด Ardunio มาแสดงผลบน 7-segment-Display  ได้


อุปกรณ์ที่ใช้ในการทดลอง  

           1. แผงต่อวงจร (เบรดบอร์ด)                                                                  1 อัน
           2. บอร์ด Arduino (ใช้แรงดัน +5V)                                                     1 บอร์ด
           3. ตัวต้านทานปรับค่าได้แบบสามขา 10kΩ หรือ 20kΩ                       1 ตัว
           4. 7-Segment Display แบบ 2 ตัวเลข (Common-Cathode)            1 ตัว
           5. ทรานซิสเตอร์ NPN (เช่น PN2222A)                                              2 ตัว
           6. ตัวต้านทาน 1kΩ                                                                                 2 ตัว
           7. ตัวต้านทาน 330Ω หรือ 470Ω                                                           8 ตัว
           8. สายไฟสําหรับต่อวงจร                                                                        1 ชุด
           9. มัลติมิเตอร์                                                                                           1 เครื่อง

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

       1. ออกแบบวงจร วาดผังวงจร และต่อวงจรบนเบรดบอร์ด ร่วมกับบอร์ด Arduino เพื่อวัดแรงดันที่ได้
จากวงจรแบ่งแรงดันที่ใช้ตัวต้านทานปรับค่าได้ (แรงดันอยู่ในช่วง 0V ถึง 5V) เช่น ป้อนเข้าที่ขา A0 ของบอร์ด Arduino แล้วนําคาไปแสดงผลโดยใช ่ ้ 7-Segment Display จํานวน 2 หลัก และให้มีทศนิยมเพยงหนึ่งตําแหน่ง เช่น ถ้าวัดแรงดันได้ 2.365V จะแสดงผลเป็น “2.4” ถ้าวัดได้ 2.539V ให้แสดงผลเป็น “2.5” เป็นต้น และใหใช้ ้แรงดันไฟเลี้ยง VCC=+5V และ Gnd จากบอร์ด Arduinoเท่านั้น


ผังวงจรที่ออกแบบ  4.6.1



 ภาพการต่อวงจรตามรูปที่ 4.6.1 


ภาพการต่อวงจรจริงบนเบรดบอร์ด


        2. เขียนโค้ดสําหรับ Arduino เพื่ออ่านค่าจากแรงดันอินพุต-แอนะล็อก แลวน้ ําไปแสดงผลโดยใช้ 
7-Segment Display ตามที่กล่าวไป (และให้แสดงค่าที่อ่านได้ออกทาง Serial Monitor ด้วย) 
และในการเขยนโค ี ้ด ห้ามใช้ตัวแปรหรือตัวเลขแบบ float 

Ardunio code :
const byte SEVEN_SEG1[7] = {8,7,6,5,4,9,10};

const byte VREF_PIN = A1;
const byte npn1 = 2;
const byte npn2 = 3;

byte num[10] = {
  B0111111, //0
  B0000110, //1
  B1011011, //2
  B1001111, //3
  B1100110, //4
  B1101101, //5
  B1111101, //6
  B0000111, //7
  B1111111, //8
  B1101111,//9
};

void setup() {
  for (int i = 0; i < 7; i++) {
    pinMode( SEVEN_SEG1[i], OUTPUT );
    digitalWrite( SEVEN_SEG1[i], HIGH );
  }
  pinMode( npn1, OUTPUT );
  digitalWrite( npn1, HIGH );
  pinMode( npn2, OUTPUT );
  digitalWrite( npn2, HIGH );
  analogReference( DEFAULT );
  Serial.begin( 9600 );
}

void loop() {
  //read analog values
  long int value = analogRead( VREF_PIN );
  long int v = value*50/1023;

  Serial.print( "Read"  );
  Serial.print( v/10);
  Serial.print( ".");
  Serial.println( v % 10);

  digitalWrite( npn1, HIGH );
  digitalWrite(npn2,LOW) ;
  long int number1 = v/10;
  byte t = num[number1];
  for (int i = 0; i<8; i++) {
    digitalWrite(SEVEN_SEG1[i], 1 & t);
    t>>= 1;
  }
  delay(10);
  digitalWrite( npn1, LOW );
  digitalWrite( npn2, HIGH );
  long int number2 = v % 10;
  byte q = num[number2];
  for (int j = 0; j<8; j++) {
    digitalWrite(SEVEN_SEG1[j], q & 1);
    q>>= 1;
  }
  delay(10);

}


บันทึกผลการทดลอง