วันศุกร์ที่ 19 กันยายน พ.ศ. 2557

การทดลองที่ 4.4 สัญญาณอินพุต-แอนะล็อกและการใช้งานร่วมกับบอร์ด Arduino

การทดลองที่ 4.4 สัญญาณอินพุต-แอนะล็อกและการใช้งานร่วมกับบอร์ด Arduino

วัตถุประสงค์
1. ฝึกต่อวงจรเพื่อสร้างสัญญาณแอนะล็อก และป้อนให้บอร์ด Arduino เพื่อใช้เป็นสัญญาณอินพุต
2. เขียนโปรแกรมสําหรับ Arduino เพื่อเปิด/ปิด LED ตามสภาวะแสง

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

ขั้นตอนการทดลอง
1. ต่อวงจรตามผังวงจรในรูปที่ 4.4.1 บนเบรดบอร์ด ร่วมกับบอร์ด Arduino โดยใช้แรงดันไฟเลี้ยง VCC=+5V และ Gnd จากบอร์ด Arduino เท่านั้น (ต่อวงจรบนเบรดบอร์ดก่อน จากนั้นจึงเชื่อมต่อ สัญญาณอนิพุตและเอาต์พุตของบอร์ด Arduino เมื่อตรวจสอบความถูกต้อง แล้วจึงป้อนแรงดันไฟ เลี้ยงและ Gnd ตามลําดับ)

ภาพอ้างอิงจากการทดลองที่ 4.4 สัญญาณอินพุต-แอนะล็อกและการใช้งานร่วมกับบอร์ด Arduino
โดย ดร.เรวัต ศิริโภคาภิรมย์ ห้องปฏิบัติการระบบสมองกลฝังตัว(ESL.) มจพ.

2. เขียนโปรแกรมตามตัวอย่างโค้ดที่กําหนดให้ และทําขั้นตอน Upload จากนั้นให้ทดลองหมุนปรับค่าที่ ตัวต้านทานปรับค่าได้ หรือปิดบริเวณส่วนรบัแสงของ LDR เปิดหน้าต่าง Serial Monitor ของ Arduino IDE แล้วสังเกตข้อความที่ถูกส่งมาจากบอร์ด Arduino


โค้ดที่ 4.1.1 : โค้ดตัวอย่างสำหรับ Arduino
อิงจากการทดลองที่ 4.4 สัญญาณอินพุต-แอนะล็อกและการใช้งานร่วมกับบอร์ด Arduino
โดย ดร.เรวัต ศิริโภคาภิรมย์ ห้องปฏิบัติการระบบสมองกลฝังตัว(ESL.) มจพ.

3. ปรับแก้โค้ดตัวอย่าง เพื่อให้วงจรและบอร์ด Arduino แสดงพฤติกรรมดังนี้ ถ้าปิดส่วนรับแสงของตัว ต้านทานไวแสง LDR หรือมปีริมาณแสงนอ้ยลง จะทําให้ LED1 “สว่าง” แต่ถ้า LDR ได้รับแสงตาม สภาวะแสงปรกติ หรือได้รับปริมาณแสงมาก จะทําให้ LED1 “ไม่ติด”

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



ผลการทดลอง
รูปออกแบบการต่อวงจรด้วยโปรแกรม Frizing

วงจร Arduino Schematic View

  
วงจร Arduino Breadboard View

ภาพวงจรที่ต่อตามผังวงจรที่ออกแบบ


ผลการทดลองจากโค้ดตัวอย่าง
เมื่อทำให้ LED ได้รับแสงน้อยและ Vref ที่ Trimpot มีค่า 0V



เมื่อทำให้ LED ได้รับแสงมากและ Vref ที่ Trimpot มีค่า 5V



ผลการทดลองจากการปรับแก้โค้ดตัวอย่าง
โค้ดสำหรับ Arduino ที่จะทำให้ LED ติดเมื่อ LDR ได้รับแสงน้อย



เมื่อทำให้ LED ได้รับแสงมาก



เมื่อทำให้ LED ได้รับแสงน้อย



คำถามท้ายการทดลอง
1. ค่าที่ได้ (เลขจํานวนเต็ม) จากบอร์ด Arduino สําหรับสญัญาณอินพุตที่ขา A1 มีค่าอยู่ในช่วงใด (ต่ําสุด-สูงสุด)
0 - 1023

2. จะต้องปรับแก้โค้ดอย่างไรสําหรับบอร์ด Arduino ถ้าจะทําให้ LED1 มีความสว่างมากน้อยได้ตาม ปริมาณแสงที่ได้รับ เช่น ถ้า LDR ได้แสงสวา่งน้อย จะทําให้ LED1 สว่างมาก แต่ถ้า LDR ได้แสง สว่างมาก จะทําให้ LED1สว่างน้อย หรือไม่ติดเลย

โค้ดสำหรับ Arduino ที่จะทำให้ LED ติดเมื่อ LDR ได้รับแสงมาก



เมื่อทำให้ LED ได้รับแสงมาก



เมื่อทำให้ LED ได้รับแสงน้อย





อ้างอิง: การทดลองที่ 4.4 สัญญาณอินพุต-แอนะล็อกและการใช้งานร่วมกับบอร์ด Arduino
โดย ดร.เรวัต ศิริโภคาภิรมย์ ห้องปฏิบัติการระบบสมองกลฝังตัว(ESL.) มจพ.

ไม่มีความคิดเห็น:

แสดงความคิดเห็น