Tuesday, August 26, 2014

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

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


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

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

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

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

Thursday, August 21, 2014

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

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

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

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

บอร์ด Arduino1 บอร์ด
สายไฟสำหรับต่อวงจร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)
 1_3_1
1_3_2
1_3_3
1_3_4
duino lite (nano clone)
ภาพการต่อวงจรจากบอร์ด Arduino Nano

ผลการทดลอง
  • เมื่อนำ code ที่ 1.3.1 ไปรันบนบอร์ด Arduino และใช้เครื่องออสซิลโลสโคปวัด พบว่า duty cycle เท่ากับ 50% ส่วน frequency = 50 Hz ดังภาพข้างล่าง
code 1.3.1
  • เมื่อนำ code ที่ 1.3.2 ไปรันบนบอร์ด Arduino และใช้เครื่องออสซิลโลสโคปวัด พบว่า duty cycle เท่ากับ 47.1% ส่วน frequency = 98.4 kHz ดังภาพข้างล่าง
code 1.3.2
  • เมื่อนำ code ที่ 1.3.3 ไปรันบนบอร์ด Arduino และใช้เครื่องออสซิลโลสโคปวัด พบว่า duty cycle เท่ากับ 74.8% ส่วน frequency = 970.9 Hz ดังภาพข้างล่าง
code 1.3.5
  • เมื่อนำ code ที่ 1.3.4 ไปรันบนบอร์ด Arduino และใช้เครื่องออสซิลโลสโคปวัด พบว่า duty cycle เท่ากับ 7.5% ส่วน frequency = 50 Hz ดังภาพข้างล่าง
code 1.3.5

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


1. จงอธิบายความแตกต่างของสัญญาณเอาต์พุต (ขา D5) ของบอร์ด Arduino ที่ได้จากโค้ดตัวอย่างใน แต่ละกรณี (ให้เปรียบเทียบค่า Duty Cycle และความถี่ของสัญญาณเอาต์พุตที่ได้ในแต่ละกรณี)
Ans   โค้ดที่ 1.3.1 มีค่า Duty Cycle = 50%, Frequency = 50 Hz
          โค้ดที่ 1.3.2 มีค่า Duty Cycle = 47.1%, Frequency = 98.4 kHz          โค้ดที่ 1.3.3 มีค่า Duty Cycle = 74.8%, Frequency = 970.9 Hz          โค้ดที่ 1.3.4 มีค่า Duty Cycle = 7.5%, Frequency = 50 Hz
2.   มีขาใดบ้างของบอร์ด Arduino ในการทดลอง นอกจากขา D5 ที่สามารถใช้สร้างสัญญาณ PWM ด้วย คําสั่ง analogWrite()
Ans   A0, A1, A2, A3,  A4, A5, A6, A7, D3, D6, D9, D10, D11
3.  ถ้าต้องการจะสร้างสัญญาณแบบ PWM ที่มีค่า Duty Cycle 20% และ 80% ที่ขา D5 และ D10
ตามลําดับ โดยใช้คําสั่ง analogWrite() จะต้องเขียนโค้ด Arduino อย่างไร
(เขียนโค้ดสําหรับ Arduino Sketch ให้ครบถ้วน สาธิตและตรวจสอบความถูกต้อง
โดยใช้ออสซิลโลสโคปหรือเครื่อง วิเคราะห์สัญญาณดิจิทัล)
Ans   const byte LED_PIN_5 = 5;
          const byte LED_PIN_10 = 10;

          void setup() { 
               analogWrite(LED_PIN_5, 51.2); 
               analogWrite(LED_PIN_10, 204.8); 
          } 
          void loop() { 
                  // empty (ไม่ มี คําสั่งใดๆ ในฟังก์ ชั นloop) 
          }
4. สัญญาณเอาต์พุตที่ได้จากการใช้คําสั่งของ Servo Library มีความถี่เท่าไหร่
Ans   50 Hz