[ บทความ : Robot ] ตอนที่ 4 เรื่อง ... การควบคุม ET-ROBOT RD2 (การตรวจสอบ Input แบบ Analog (A/D)) |
การตรวจสอบ Input แบบ Analog (A/D) | |||||||||||||||||||||||||
โดยวงจรการเชื่อมต่อของ ADS7841 กับไมโครคอนโทรลเลอร์ P89C51RD2 ในบอร์ดควบคุมรถหุ่นยนต์ ET-ROBOT-RD2 นั้น เป็นดังรูป รูปแสดง
วงจร A/D ที่ใช้กับบอร์ด
ET-ROBOT-RD2
โดยวงจร A/D นี้จะสามารถรับสัญญาณ Analog ได้ระหว่าง 0-5V จำนวน 4 ช่องสัญญาณ โดยค่าผลลัพธ์ของแต่ละช่องจะมีค่าความละเอียดขนาด 12บิต (0-4095 Step) เช่น ถ้า Analog Input มีขนาด 0V จะได้ผลลัพธ์เป็น 0 (0000H) แต่ถ้า Analog Input มีขนาด 2.5V จะได้ผลลัพธ์เป็น 2047 (07FFH) หรือถ้าสัญญาณ Analog Input มีขนาดเป็น 5V ก็จะได้ผลลัพธ์เป็น 4095 (0FFFH) ดังนี้ เป็นตน โดยจะเห็นได้ว่าลักษณะของสัญญาณของ Analog Input นั้นจะรับเป็นแบบแรงดันเท่านั้น โดยค่าผลลัพธ์ที่ได้จากการแปลงค่า Analog Input ก็จะได้เป็นค่า Step ดังนั้นถ้าต้องการนำค่าผลลัพธ์ที่อ่านได้จาก A/D มาทำงานแปลงเป็นค่าแบบแรงดัน ก็จะต้องทำการนำค่า Step ที่ได้มาทำการคำนวณเพื่อเปลี่ยนจากค่า Step เป็นค่าแรงดันเสียก่อนดังนี้
สำหรับการสั่งอ่านค่าข้อมูลจาก
A/D
ของ ADS7841
ด้วยโปรแกรม BASCOM-8051
นั้น ตามปรกติแล้วจะยังไม่มีคำสั่งสำหรับสั่งอ่านค่าผลลัพธ์จาก
ADS7841
ไว้ให้ใช้งานโดยตรง
ซึ่งจำเป็นที่เราจะต้องสร้าง
Library คำสั่งขึ้นมาใช้งานเอง
ซึ่งถ้าต้องการให้การทำงานของโปรแกรมมีความเร็วและเกิดประ สิทธิภาพสูงสุดนั้น
จะต้องสร้าง Library
คำสั่งด้วยภาษาแอสแซมบลี้
เพราะถ้าสร้างเป็น Library คำสั่งโดยใช้ภาษาเบสิกเองจะได้การทำงานที่ช้าลงไปกว่าปรกติอยู่พอสมควร
สำหรับในที่นี้ผู้เขียนจะขอสร้างเป็น
Library คำสั่งไว้ให้เรียกใช้งานกันเลย
โดยผู้อ่านไม่จำเป็นต้องทำความเข้าใจกับการทำงานของภาษาแอสแซมบลี้ก็ได้
เพียงแต่ทำความเข้าใจในข้อกำหนดและวิธีการเรียกใช้งานคำสั่งใน
Library ก็เพียงพอแล้ว
โดย Library ที่จะสร้างขึ้นใช้งานกับ
ADS7841 ของบอร์ด ETROBOT-RD2
จะมีข้อกำหนดดังนี้
การสร้าง Library
คำสั่งเพื่ออ่านค่า A/D
จาก ADS7841
ของบอร์ด ET-ROBOT-RD2.......
|