วันพุธที่ 27 สิงหาคม พ.ศ. 2557

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

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

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

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

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

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



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

1. ต่อวงจรบนเบรดบอร์ด โดยใช้ไอซี 74HCT00 เพื่อสร้างลอจิเกต NOT จำนวน 1 ตัว จากลอจิกเกต NAND 2 ตัวใดก้อได้ ที่มีอยู่ภายในไอซีดังกล่าว




ภาพการต่อวงจร NOT GATE


2. สร้างคลื่นสัญญาณสี่เหลี่ยมที่มีแอมพลิจูดอยู่ในช่วง 0v. ถึง 5v. (Vpp = 5v. , Voffset = 2.5v.) ความถี่ f = 10kHz. และมีค่า Duty Cycle = 50% โดยใช้เครื่องกำเนิดสัญญาณ แล้วป้อนที่ขาอินพุตของลิจิกเกต NOT และต่อ Gnd จากเครื่องกำเนิดสัญญาณไปยัง Gnd ของวงจร (กราว์นร่วม)


ภาพการปรับเครื่อวกำเนิดสัญญาณไปที่ f= 10kHz.



ภาพการปรับเครื่องจ่ายและควบคุมแรงดันกระแสตรง ไปที่ 5 v. เพื่อป้อมไฟเลี้ยงให้วงจร

3. ใช้ออสซิโลสโคปวัดสัญญาณ โดยใช้ช่อง A วัดสัญญาณอินพุต ใช้ช่อง B วัดสัญญาณที่ขาเอาต์พุตของลอจิกเกต NOT และให้ต่อ Gnd ของออสซิโลสโคป ไปยัง Gnd ของวงจร

ภาพการป้อนเครื่องกำเนิดสัญญาณ, แหล่งจ่ายกระแสตรง และเครื่องออสซิโลสโคป

ภาพที่ได้จากการวัดแรงดันในออสซิโลสโคป

4. สังเกตความสัมพันธ์ระหว่างคลื่นสัญญาณอินพุต และเอาต์พุต (ปรับ Time/Div ไปที่ระดับ 10us. และ 50ns. ตามลำดับเพื่อดูรูปคลื่นสัญญาณในแต่ละกรณี)  และวัดระดับแรงดันสูงสุดของสัญญาณเอาต์พุตที่ได้ (ให้บันทึกภาพที่ปรากฎบนจอแสดงผลของออสซิโลสโคปด้วย)


ภาพที่ได้จากการวัดรงดันสูงสุดโดยปรับ Time/Div ไปที่ระดับ 10us. 


ภาพที่ได้จากการวัดรงดันสูงสุดโดยปรับ Time/Div ไปที่ระดับ 50ns. 

และระดับแรงดันสูงสุดมีค่าเท่ากับ 5 v.


5. ต่อวงจรไดโอดเปล่งแสงพร้อมตัวต้านทาน 330 โอห์ม หรือ 470 โอห์ม ที่ขาเอาต์พุตขอลอจิกเกต NOT

ภาพการต่อวงจร NOT GATE โดยมีตัวต้านทาน 330 โอห์มต่อที่ขาเอาต์พุต


6. ใช้ออสซิโลสโคปวัดสัญญาณ โดยใช่ช่อง A วัดสัญญาณที่ขาอินพุต ใช้ช่อง B วัดสัญญาณที่ขาเอาต์พุตของลอจิกเกต NOT



ออสซิโลสโคปวัดสัญญาณเอาต์พุต

7. สังเกตความแตกต่างเมื่อเปรียบเทียบกับกรณีที่ไม่ได้ต่อวงจรไดโอดเปล่งแสงพร้อมตัวต้านทานที่ขาเอาต์พุต และวัดระดับแรงดันสูงสุดของสัญญาณเอาต์พุตที่ได้ (ให้บันทึกภาพที่ปรากฏบนจอแสดงผลของออสซิโลสโคปด้วย)


ภาพที่ได้จากการวัดรงดันสูงสุดของสัญญาณเอาต์พุต


8. ยกเลิกการต่อวงจรไดโอดเปล่งแสงพร้อมตัวต้านทานที่ขาเอาต์พุตของลิจิกเกต NOT

9. เปลี่ยนรูปคลื่นสัญญาณอินพุต โดยสร้างคลื่นสัญญาณรูปสามเหลี่ยม V-pp = 5v. , V-offset = 2.5v. , f = 1kHz. จากเครื่องกำเนิดสัญญาณ เพื่อป้อนให้ขาอินพุตของลอจิกเกต NOT 


ยกเลิกการต่อวงจรไดโอดเปล่งแสงพร้อมตัวต้านทาน

10. ใช้ออสซิโลสโคปวัดสัญญาณ โดยใช่ช่อง A วัดสัญญาณที่ขาอินพุต ใช้ช่อง B วัดสัญญาณที่ขาเอาต์พุตของลอจิกเกต NOT แล้วสังเกตผลที่ได้ (ให้บันทึกภาพที่ปรากฎบนจอแสดงผลของออสซิโลสโคปด้วย)

ภาพที่ได้จากหน้าจอออสซิโลสโคป

11. วัดระดับแรงดันอินพุตที่ทำให้เกิดจุดตัดของคลื่นสัญญาณจากช่อง A และ B 
ภาพจุดตัดที่ได้จากหน้าจอออสซิโลสโคป

12. ยกเลิกการต่อวงจรโดยใช้ไอซี 74HCT00 และให้ต่อวงจรบนเบรดบอร์ดโดยใช้ไอซีเบอร์ 74HCT14 เพื่อสร้างลอจิกเกต NOT จำนวน 1 ตัว (เลือกลอจิกเกต NOT ตัวใดก้อได้ที่อยู่ในไอซีดังกล่าว)


13. สร้างคลื่นสัญญาณรูปสามเหลี่ยม V-pp = 5v. , V-offset = 2.5v. , f = 1kHz. จากเครื่องกำเนิดสัญญาณ เพื่อป้อนให้ขาอินพุตของลอจิกเกต NOT


14. ใช้ออสซิโลสโคปวัดสํญญาณ โดยใช้ช่อง A วัดสัญญาณที่ขาอินพุต ใช่ช่อง B วัดสัญญาณที่ขาเาอต์พุตของลอจิกเกต NOT แล้วสังเกตผลที่ได้ (ให้บันทึกภาพที่ปรากฎบนจอแสดงผลของออสซิโลสโคปด้วย)

ภาพสัญญาณที่ได้จากออสซิโลสโคป

15. วัดระดับแรงดันอินพุตที่ทำให้เกิดจุดตัดของคลื่นสัญญาณจากช่อง A และ B



ภาพจุดตัดที่ได้จากออสซิโลสโคป



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

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


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



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



4. อธิบายความหมายของคำว่า V+ และ V- ของ Schmitt-Trigger Inverter และถ้าอ้างอิงตามดาต้าชีทของไอซี 74HCT14 (ดาว์นโหลดได้จากอินเตอร์เน็ต) จงระบุค่า V+ และ V- ตามลำดับสำหรับ Vcc = +4.5v.
ตอบ   V+คือช่วงขาขึ้น มีค่าอยู่ระหว่าง 0.8 - 2.4 v. และ V- คือช่วงขาลง มีค่าอยู่ประมานณ 0.4 - 2.0v. 
สามารถหาคำตอบเพิ่มเติมได้จาก http://www.alldatasheet.com/view.jsp?Searchword=74hct14



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


วันเสาร์ที่ 23 สิงหาคม พ.ศ. 2557

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

การตรวจวัดสัญญาณดิจิทัล - เอาต์พุตจากบอร์ด Ardunio

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

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


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

1. บอร์ด Ardunio  1 อัน
2. สายไฟสำหรับต่อวงจร  1 ชุด
3. ออสซิโลสโคปแบบดิจิทัล  1 เครื่อง
4. เครื่องกำเนิดสัญญาณ 1 เครื่อง



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

1. คอมไพล์โค้ดตัวอย่างที่ 1.3.1 แล้วอัพโหลดไปยังบอร์ด Ardunio


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

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

ภาพจากออสซิโลสโคปที่ได้จากโค้ดที่ 1.3.1

การคำนวณค่า Duty Cycle(%) = 100% x (ความกว้างของคลื่นในช่วงที่เป็น High / คาบของสัญญาณ)
จากภาพสัญญาณนี้จะได้ว่า Duty Cycle = 100% x (2x5ms. / (4 x 5ms.))  =  50%

ภาพตัวอย่างการต่อวงจร


3. ทำขั้นตอนที่ 1-2 ซ้ำ สำหรับโค้ดตัวอย่างที่ 1.3.2 - 1.3.4 ตาลำดับดังนี้

3.1 คอมไพล์โค้ดตัวอย่างที่ 1.3.2 แล้วอัพโหลดไปยังบอร์ด Ardunio

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

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

ภาพจากออสซิโลสโคปที่ได้จากโค้ดที่ 1.3.2

การคำนวณค่า Duty Cycle(%) = 100% x (ความกว้างของคลื่นในช่วงที่เป็น High / คาบของสัญญาณ)
จากภาพสัญญาณนี้จะได้ว่า Duty Cycle = 100% x (1x5us. / (2 x 5us.))  =  50%

ภาพตัวอย่างการต่อวงจร

3.2 คอมไพล์โค้ดตัวอย่างที่ 1.3.3 แล้วอัพโหลดไปยังบอร์ด Ardunio

โค้ดที่ 1.3.3 : โค้ด Ardunio เพื่อสร้างสัญญาณเอาต์พุตที่ขา D5 (แบบที่ 3)
สามารถศึกษาคำสั่ง analogWrite () ได้จาก : http://arduino.cc/en/Reference/AnalogReference

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

ภาพจากออสซิโลสโคปที่ได้จากโค้ดที่ 1.3.3

การคำนวณค่า Duty Cycle(%) = 100% x (ความกว้างของคลื่นในช่วงที่เป็น High / คาบของสัญญาณ)
จากภาพสัญญาณนี้จะได้ว่า Duty Cycle = 100% x (1.5 x 500us. / (2 x 500us.))  =  75%

3.3 คอมไพล์โค้ดตัวอย่างที่ 1.3.4 แล้วอัพโหลดไปยังบอร์ด Ardunio

โค้ดที่ 1.3.4 : โค้ด Ardunio เพื่อสร้างสัญญาณเอาต์พุตที่ขา D5 (แบบที่ 4)
สามารถศึกษาคำสั่ง Servo Libray ได้จาก : http://arduino.cc/en/Reference/servo

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

ภาพจากออสซิโลสโคปที่ได้จากโค้ดที่ 1.3.4

การคำนวณค่า Duty Cycle(%) = 100% x (ความกว้างของคลื่นในช่วงที่เป็น High / คาบของสัญญาณ)
จากภาพสัญญาณนี้จะได้ว่า Duty Cycle = 100% x (0.3 x 5ms. / (4 x 5ms.))  =  7.5%

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

ภาพที่ปรากฎเมื่อต่อออสซิโลสโคปกับเครื่องกำเนิดสัญญาณ


ภาพสัญญาณเอาต์พุตจากบอร์ด Ardunio


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

1. จงอธิบายความแตกจ่างของสัญญาณเอาต์พุต (ขา D5) ของบอร์ด Ardunio ที่ได้จากโค้ดตัวอย่างในแต่ละกรณี (ให้เปรียบเทียบค่า Duty Cycle และความถี่ของสัญญาณเอาต์พุตที่ได้ในแต่ละกรณี)
ตอบ  จากกราฟของโค้ดที่
           1.3.1 มีความถี่ เท่ากับ 50 Hz. และ Duty Cycle = 50%
           1.3.2 มีความถี่ เท่ากับ 100 KHz.และ Duty Cycle = 50%
           1.3.3 มีความถี่ เท่ากับ 1 kHz. และ Duty Cycle = 75%
           1.3.4 มีความถี่ เท่ากับ 50 Hz. และ Duty Cycle = 7.5%

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

             จากรูปภาพบอร์ด Ardunio UNO R3 จะเห็นได้ว่า มีขา D3, D5, D6, D9, D10, D11 และขาฝั่งอนาล็อก

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

const byte LED_PIN1 = 5;
const byte LED_PIN2 = 10;
void setup() {
  pinMode (LED_PIN1, OUTPUT);
  pinMode (LED_PIN2, OUTPUT);
  analogWrite (LED_PIN1, 51);
  analogWrite (LED_PIN2, 204);
}
void loop() {
}

การตรวจสอบความถูกต้องโดยใช้ออสซิโลสโคป

รูปคลื่นสัญญาณ ที่ขา 5 และมี Duty Cycle = 20%

รูปคลื่นสัญญาณ ที่ขา 10 และมี Duty Cycle = 80%

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