วันพฤหัสบดีที่ 28 สิงหาคม พ.ศ. 2557

การทดลองที่ 2.3 การตรวจวัดคลื่นสัญญาณที่ขาอินพุต - เอาต์พุตของลอจิกเกต

การทดลองที่ 2.3 การตรวจวัดคลื่นสัญญาณที่ขาอินพุต - เอาต์พุตของลอจิกเกต

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

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

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



  • แผงต่อวงร (เบรดบอร์ด)                                                    1 อัน
  • ไอซี 74HCT00                                                               1 ตัว
  • ไอซี 74HCT14                                                               1 ตัว
  • สายไฟสำหรับต่อวงจร                                                       1 ชุด
  • ออสซิลโลสโคป (สายวัด 2 ช่อง)                                         1 เครื่อง
  • เครื่องกำเนิดสัญญาณ                                                       1 เครื่อง
  • แหล่งจ่ายควบคุมแรงดัน                                                    1 ชุด


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

  1.  ต่อวงจรบนเบรดบอร์ด โดยใช้ไอซี 74HCT00 เพื่อสร้างลอจิกเกต NOT จํานวน 1 ตัว จากลอจิกเกต NAND2 ตัวใดก็ได้ ที่มีอยู่ภายในไอซีดังกล่าว  
  2. สร้างคลื่นสัญญาณสี่เหลี่ยมที่มีแอมพลิจูดอยู่ในช่วง 0V ถึง 5V (Vpp=5V, Voffset=2.5V) ความถี่ f=10kHz และมีค่า Duty Cycle = 50% โดยใช้เครื่องกําเนิดสัญญาณ แล้วป้อนที่ขาอินพุตของลอจิก เกต NOT และต่อ Gnd จากเครื่องกําเนิดสัญญาณไปยัง Gnd ของวงจร (กราวนด์ร่วม) 
  3. ใช้ออสซิลโลสโคปวัดสัญญาณ โดยใช้ช่อง A วัดสัญญาณทขี่าอินพุต ใช้ช่อง B วัดสัญญาณที่ขา เอาต์พุตของลอจิกเกต NOT และให้ต่อ Gnd ของออสซิลโลสโคป ไปยัง Gnd ของวงจร
  4. สังเกตความสัมพันธ์ระหว่างคลื่นสญัญาณอินพุตและเอาต์พุต (ปรับ Time/Div ไปที่ระดับ 10us และ 50ns ตามลําดับเพื่อดูรูปคลื่นสัญญาณในแต่ละกรณี) และวัดระดับแรงดันสูงสุดของสัญญาณเอาต์พุต ที่ได้ (ให้บันทึกภาพที่ปรากฏบนจอแสดงผลของออสซิลโลสโคปด้วย) 
  5. ต่อวงจรไดโอดเปล่งแสงพร้อมตัวต้านทาน 330Ω หรือ 470Ω ที่ขาเอาต์พุตของลอจิกเกต NOT 
  6. ใช้ออสซิลโลสโคปวัดสัญญาณ โดยใช้ช่อง A วัดสัญญาณทขี่าอินพุต ใช้ช่อง B วัดสัญญาณที่ขา เอาต์พุตของลอจิกเกต NOT  
  7. สังเกตความแตกต่างเมื่อเปรียบเทียบกับกรณีที่ไม่ได้ตอ่วงจรไดโอดเปล่งแสงพร้อมตัวต้านทานที่ขา เอาต์พุต และวัดระดับแรงดันสูงสุดของสัญญาณเอาต์พุตที่ได้ (ให้บันทึกภาพที่ปรากฏบนจอแสดงผล ของออสซิลโลสโคปด้วย) 
  8. ยกเลิกการต่อวงจรไดโอดเปล่งแสงพร้อมตัวต้านทานที่ขาเอาต์พุตของลอจิกเกต NOT 
  9. เปลี่ยนรูปคลื่นสญัญาณอินพุต โดยสร้างคลื่นสัญญาณรูปสามเหลี่ยม Vpp=5V, Voffset=2.5V, f=1kHz จากเครื่องกําเนิดสัญญาณ เพื่อป้อนให้ขาอินพุตของลอจิกเกต NOT 
  10. ใช้ออสซิลโลสโคปวัดสัญญาณ โดยใช้ช่อง A วัดสัญญาณทขี่าอินพุต ใช้ช่อง B วัดสัญญาณที่ขา เอาต์พุตของลอจิกเกต NOT แล้วสังเกตผลที่ได้ (ให้บันทึกภาพที่ปรากฏบนจอแสดงผลของ ออสซิลโลสโคปด้วย)  
  11. วัดระดับแรงดันอินพุตที่ทําให้เกิดจุดตัดของคลื่นสัญญาณจากช่อง A และ B 
  12. ยกเลิกการต่อวงจรโดยใช้ไอซี 74HCT00 และให้ต่อวงจรบนเบรดบอร์ด โดยใช้ไอซีเบอร์ 74HCT14 เพื่อสร้างลอจิกเกต NOT จํานวน 1 ตัว (เลือกลอจิกเกต NOT ตัวใดก็ได้ที่มีอยู่ภายในไอซีดังกล่าว)  
  13. สร้างคลื่นสญัญาณรูปสามเหลี่ยม Vpp=5V, Voffset=2.5V, f=1kHz จากเครื่องกําเนิดสัญญาณ  เพื่อป้อนให้ขาอินพุตของลอจิกเกต NOT 
  14. ใช้ออสซิลโลสโคปวัดสัญญาณ โดยใช้ช่อง A วัดสัญญาณทขี่าอินพุต ใช้ช่อง B วัดสัญญาณที่ขา เอาต์พุตของลอจิกเกต NOT แล้วสังเกตผลที่ได้ (ให้บันทึกภาพที่ปรากฏบนจอแสดงผลของ ออสซิลโลสโคปด้วย)  
  15. วัดระดับแรงดันอินพุตที่ทําให้เกิดจุดตัดของคลื่นสัญญาณจากช่อง A และ B  

วิธีการทดลอง







ผลการทดลอง

     ใช้เครื่องกำเนิดสัญญาณรูปสี่เหลี่ยม



ใช้ 74HCT00 สร้างลอจิเกต NOT 1 ตัว จาก NAND Time/Div 50 ns



ใช้ 74HCT00 สร้างลอจิเกต NOT 1 ตัว จาก NAND Time/Div 10 ns




ใช้ 74HCT00 สร้างลอจิเกต NOT 1 ตัว จาก NAND



ใช้ 74HCT00 สร้างลอจิเกต NOT 1 ตัว จาก NAND ต่อกับวงจรไดโอดเปล่งแสง
ร้อมตัวต้านทาน 330 โอห์ม



ใช้ 74HCT00 สร้างลอจิเกต NOT 1 ตัว จาก NAND ต่อกับวงจรไดโอดเปล่งแสง
ร้อมตัวต้านทาน 470 โอห์ม

             การการทดลองข้างบนจะเห็นว่า เมื่อต่อวงจรไดโอสเปล่งแสงพร้อมตัวต้านทานที่ขาเอาต์พุต เข้าไป ทำให้ แรงดันที่ได้ ลดลง (จาการทดลองลดลอง ประมาณ 0.04 V)


      ใช้เครื่องกำเนิดสัญญาณรูปสามเหลี่ยม


ใช้ 74HCT00 สร้างลอจิเกต NOT 1 ตัว จาก NAND



ใช้ 74HCT00 สร้างลอจิเกต NOT 1 ตัว จาก NAND
จะเห็นว่า จุดตัวของแรงดันคลื่นสัญญาณจากช่อง A และ B คือ 1.3 V , 1.6V 




ใช้ IC 74HCT14  สร้างลอจิกเกต NOT  1 ตัว


ใช้ IC 74HCT14  สร้างลอจิกเกต NOT  1 ตัวจะเห็นว่า จุดตัวของแรงดันคลื่นสัญญาณจากช่อง A และ B คือ 1.7 V , 1V 

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

           1. ในกรณีทสี่ร้างลอจิกเกต NOT จากเกต NAND ของไอซี 74HCT00 และป้อนสัญญาณอินพุตเป็น รูปคลื่นสี่เหลี่ยมตามที่ได้ทดลองไป จงระบุระยะเวลาในการเปลี่ยนแปลงของคลื่นสัญญาณที่ขา เอาต์พุตของลอจิกเกต NOT จาก HIGH เป็น LOW (ขอบขาลง) และจาก LOW เป็น HIGH (ขอบขา ขึ้น) ตามลําดับ เมื่อวดัด้วยออสซิลโลสโคป 
             ตอบ  HIGH เป็น LOW 0.5 ms 
                       LOW เป็น HIGH  0.5 ms






                2. ในกรณีทสี่ร้างลอจิกเกต NOT จากเกต NAND ของไอซี 74HCT00 และป้อนสัญญาณอินพุตเป็น รูปคลื่นสามเหลี่ยมตามที่ได้ทดลองไป จงอธิบายว่า จะได้คลื่นสัญญาณที่ขาเอาตพ์ุตของลอจิกเกต NOT เป็นรูปคลื่นแบบใด และให้ระบุระดับแรงดันอินพุตที่ทําให้เกิดจุดตัดของคลื่นสัญญาณจากช่อง A และ B (มีอยู่สองจดุตัด ในช่วงขาขึ้นและขาลงของสัญญาณอินพุต) 

                 ตอบ - จะได้เป็นรูปคลื่น สี่เหลี่ยม
                        - จะเกิดจุดตัด ขาขึ้นที่ 1.5 V , ขาลงที่ 1.4 V


                3. ในกรณีทื่ใช้ลอจิกเกต NOT ภายในไอซี 74HCT14 และป้อนสัญญาณอินพุตเปน็รูปคลื่นสามเหลยี่ม จงอธิบายว่า จะได้คลื่นสัญญาณที่ขาเอาต์พุตของลอจิกเกต NOT เป็นรูปคลื่นแบบใด และให้ระบุ ระดับแรงดันอินพุตที่ทําให้เกดิจุดตัดของคลื่นสัญญาณจากช่อง A และ B (มีอยู่สองจุดตัด ในช่วงขา ขึ้นและขาลงของสัญญาณอินพุต)
                ตอบ - สัญญาณเอาต์พุตจะเป็นรูปคลื่นสัญญาณ สี่เหลี่ยม
                       - จะเกิดจุดตัวขา ขึ้นที่ 1 V, ขาลงที่ 1.7 V

                4. อธิบายความหมายของคําว่า V+ และ V- ของ Schmitt-Trigger Inverter และถ้าอ้างอิงตามดาต้าชีท ของไอซี 74HCT14 (ดาวน์โหลดได้จากอินเทอร์เน็ต) จงระบุค่า V+ และ V- ตามลําดับสําหรับ VCC=+4.5V

               ตอบ   V+  คือแรดันที่ทำให้รู้ว่าถ้าสูงกว่าค่านี้จะเป็น HIGH
                         V-  คือแรงดันที่ทำให้รู้ว่าถ้าต่ำกว่าค่านี้จะเป็น LOW
                                    VCC +4.5 V จะได้ V+ = 1.9-20 ,  V- = 0.1-2.0

                                                  อ้างอิงจาก http://cnctar.hunbay.com/ZOTYK%D3/74HC14.pdf

                5. จงระบุค่าโดยประมาณสําหรบั V+ และ V- สําหรับไอซี 74HCT14 ที่สามารถดูได้จากผลการทดลอง (ใช้สําหรับ VCC=+5V)

               ตอบ  V+ = 1.7 , V- = 1

วันอาทิตย์ที่ 24 สิงหาคม พ.ศ. 2557

การทดลองที่ 1.3 การตรวจวัดสัญญาณดิจิทัล-เอาต์พุตจากบอร์ด Arduino

การทดลองที่ 1.3การตรวจวัดสัญญาณดิจิทัล-เอาต์พุตจากบอร์ด Arduino


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


รายการอุปกรณ์
  • บอร์ด Arduino                                                 1 อัน
  • สายไฟสำหรับต่อวงร                                          1 ชุด
  • ออสซิลโลสโคปแบบดิจิทัล                                  1 เครื่อง
  • เครื่องกำเนิดสัญญาณ                                         1 เครื่อง
ขั้นตอนการทดลอง
    1. คอมไพล์โค้ดตัวอย่างที่ 1.3.1 แล้วอัพโหลดไปยังบอร์ด Arduino จากนั้นใชออสซิลโลสโคปวัด               สัญญาณเอาต์พุตที่ได้ (รูปคลื่นแบบสี่เหลี่ยม) แล้วบันทึกภาพ (ให้ระบุ ความถี่ และค่า Duty Cycle ของสัญญาณตามที่วัดได้จริง

                    Duty Cycle (%) = 100% x (ความกว้างของคลื่นในช่วงที่เป็น High / คาบของสัญญาณ)

    2.ทำขั้นตอนที่ 1 ซ้ำ สำหรับโค้ดตัวอย่างที่ 1.3.2 - 1.3.4 ตามลำดับ
    3. ใช้เครื่องกำเนิดสัญญาณ สร้างคลื่นแบบ PWM (รูปคลื่นแบบ Pulse) ที่มีความถี่ 50Hz มีค่า Duty Cycle = 7.5% และมีระดับแรงดันต่ำและสูงในช่วง 0V และ 5V และให้ใช้ออสซิลโลสโคปตรจดูรูปคลื่นสัญญาณที่ได้และบันทึกภาพที่ปรากฏ (เปรียบเทียบผลกับการสร้างสัญญาณเอาต์พุตด้วยบอร์ด Arduino)





ต่อบอร์ด arduino เข้ากับ ออสซิสโลสโคป


ต่อ เครื่องกำเนิดสัญญาณ เข้ากับ ออสซิสโลสโคป



ผลการทดลอง


   โค้ดที่ 1.3.1: โค้ด Arduino เพื่อสร้างสัญญาณเอาต์พุตที่ขา D5 (แบบที่ 1)


const byte LED_PIN = 5; //ใช้ขาหมายเลข D5 เพื่อสร้างสัญญาณดิจิทัล

void setup(){

        pinMode(LED_PIN,OUTPUT); // ใช้ขา D5 เป็นเอาต์พุต
}

void loop(){
        digitalWrite(LED_PIN,HIGH); // ให้เอาต์พุตที่ขา D5 เป็น High

        delay(10); // รอบเวลาประมาณ 10 มิลลิวินาที
        digitalWrite(LED_PIN,LOW); // ให้เอาต์พุตที่ขา D5 เป็น Low
        delay(10); // รอบเวลาประมาณ 10 มิลลิวินาที
}


OutPut (ออสซิลโลสโคป)




  




โค้ดที่ 1.3.2: โค้ด Arduino เพื่อสร้างสัญญาณเอาต์พุตที่ขา D5 (แบบที่ 2)


const byte LED_PIN = 5; //ใช้ขาหมายเลข D5 เพื่อสร้างสัญญาณดิจิทัล

void setup(){

        pinMode(LED_PIN,OUTPUT); // ใช้ขา D5 เป็นเอาต์พุต
}

void loop(){
        digitalWrite(LED_PIN,HIGH); // ให้เอาต์พุตที่ขา D5 เป็น High

        digitalWrite(LED_PIN,LOW); // ให้เอาต์พุตที่ขา D5 เป็น Low
}


OutPut (ออสซิลโลสโคป)











โค้ดที่ 1.3.3: โค้ด Arduino เพื่อสร้างสัญญาณเอาต์พุตที่ขา D5 (แบบที่ 3)

ศึกษาคำสั่ง analogWrite() ได้จาก: http://arduino.cc/en/Reference/analogWrite


const byte LED_PIN = 5; // Digital Pin 5 (D5)


void setup(){

        pinMode(LED_PIN,OUTPUT); // ใช้ขา D5 เป็นเอาต์พุต
        analogWrite(LED_PIN,191); // สร้างสัญญาณ PWM ที่ขา D5
}

void loop(){
        // empty ( ไม่มีคำสั่งใดๆ ในฟังก์ชัน loop)

}


OutPut (ออสซิลโลสโคป)







โค้ดที่ 1.3.4: โค้ด Arduino เพื่อสร้างสัญญาณเอาต์พุตที่ขา D5 (แบบที่ 4)

ศึกษาคำสั่งเกี่ยวกับ Servo Library ได้จาก: http://arduino.cc/en/Reference/servo

#include <Servo.h>

Servo servo;
int minPulse = 600; // minimum servo position, in us
int maxPulse = 2400; // maximum servo position, in us

void setup(){

      servo.attach(5,minPulse,maxPulse); // use D5 for PWM output(servo)
      servo.write(90); // set rotation angle (value between 0 to 180 degree)
}

void loop(){
        // empty ( ไม่มีคำสั่งใดๆ ในฟังก์ชัน loop)

}


OutPut (ออสซิลโลสโคป)











การทดลองข้อ 3
                      ครื่องกำเนิดสัญญาณ สร้างคลื่นแบบ PWM (รูปคลื่นแบบ Pulse) ที่มีความถี่ 50Hz มีค่า Duty Cycle = 7.5% และมีระดับแรงดันต่ำและสูงในช่วง 0V และ 5V 




คำถามท้ายการทดลอง
      1. จงอธิบายความแตกต่างของสัญญาณเอาต์พุต (ขา D5) ของบอร์ด Arduino ที่ได้จากโค้ดตัวอย่างในแต่ละกรณี ( ให้เปรียบเทียบค่า Duty Cycle และความถี่ของสัญญาณเอาต์พุตที่ได้ในแต่ละกรณี

            ans


      2. มีขาใดบ้างของบอร์ด Arduino ในการทดลอง นอกจากขา D5 ที่สามารถใช้สร้างสัญญาณ PWM ด้วยคำสั่ง analogWrite()

ans ขา D(3,5,6,9,10,11) 
       อ้างอิงจาก http://arduino.cc/en/Reference/analogWrite


      3. ถ้าต้องการจะสร้างสัญญาณแบบ PWM ที่มีค่า Duty Cycle 20% และ 80% ที่ขา D5 และขา D10 ตามลำดับ โดยใช้คำสั่ง analogWrite() จะเขียนโค้ด Arduino อย่างไร (เขียนโค้ดสำหรับ Arduino Sketch ให้ครบถ้วน สาธิตและตรวจสอบความถูกต้องโดยใช้ออสซิลโลสโคปหรือเครื่องวิเคราะห์สัญญาณดิจิทัล)

            ans  Code

const byte LED_PIN_1 = 5;
const byte LED_PIN _2= 10;

void setup(){
     pinMode(LED_PIN_1,OUTPUT); // ใช้ขา D5 เป็นเอาต์พุต
     pinMode(LED_PIN_2,OUTPUT); // ใช้ขา D10 เป็นเอาต์พุต
     analogWrite(LED_PIN_1,50); // สร้างสัญญาณ PWM ที่ขา D5
     analogWrite(LED_PIN_2,204); // สร้างสัญญาณ PWM ที่ขา D10
}

void loop(){
     // empty ( ไม่มีคำสั่งใดๆ ในฟังก์ชัน loop)
}



     4. สัญญาณเอาต์พุตที่ได้จากการใช้คำสั่งของ Servo Library มีความถี่เท่าไหร่

            ans  50 Hz