วันนี้จะมาสาธิตการอ่านค่าตำแหน่งของ Absolute Encoder ด้วย Arduino กันครับ โดยปรกติแล้ว Encoder ชนิด Absolute นี้จะมีการส่งค่าตำแหน่งมุมด้วยรหัส Gray ซึ่งต้องทำการถอดรหัสนี้ให้ออกเป็น Binaryจากนั้นแปลงจาก binary เป็นค่าตำแหน่งมุมของ encoder ตามความละเอียดของรุ่นนั้นๆ เช่น 8 bit ก็จะมีความละเอียด 256 ค่า 10 bit ก็จะมีความละเอียด 1024 ค่า ตามลำดับ
โดย encoder ที่ใช้ทำการสาธิตในวันนี้คือรุ่น TRD-NA1024NW ยี่ห้อ Koyo ที่มีความละเอียด 10 bit และมี output เป็นแบบ NPN ทำให้เราสามารถต่อตัวต้านทานเพิ่มเติมเพื่อที่จะปรับค่าสัญญาณให้สามารถต่อ เข้ากับ Arduino ที่ต้องการระดับสัญญาณ 5V logic level ได้โดยไม่ต้องมีวงจร Buffer เพิ่มเติม (ดูภาพประกอบเพิ่มเติมด้านล่าง)
ซ้ายมือคือ วงจรภายในของ Encoder ส่วนขวามือคือวงจรที่ต่อตัวต้านทานเพิ่มเติมเพื่อนำไปต่อกับ Arduino ได้โดยตรง แต่ยังคงต้องแยกแหล่งจ่าย ไฟ +12V และ +5V ส่วนกราวด์นั้นให้เชื่อมต่อเข้าหากัน
จาก คลิปวีดีโอด้านบนเป็นการสาธิตด้วย Graphic Interface ตำแหน่งต่างๆ เมื่อ Encoder ถูกหมุนไป ด้วยโปรแกรมแสดงผลที่เขียนด้วย Processing โดย Arduino จะเป็นตัวอ่านค่า Gray Code จาก Encoder และถอดรหัสแปลงค่าให้เป็นค่าตำแหน่ง 0-1023 จากนั้นจะส่งค่าขึ้นไปยังคอมพิวเตอร์ผ่านทาง Serial พอร์ต และใช้ Processing ซึ่งเป็นโปรแกรมเขียนกราฟฟิคด้วยภาษา Java โดยมี syntax การเขียนคล้ายกับการเขียนโปรแกรมบน Arduino มาก มาเป็นตัวแสดงผลตำแหน่งองศาต่างๆ ที่เปลี่ยนไปของ Encoder
ตัวอย่าง Code Arduino : Download (ใช้กับ Arduino Version 1.6)
ตัวอย่าง Code Processing : Download
โปรแกรม Processing website : http://processing.org/
สนในเลือกซื้อ Absolute Encoder ราคาถูกเลือกชมสินค้าได้ที่ร้านเลยครับ คลิ๊ก
วงจรปรับแรงดัน DC to DC Converter / วงจรเพิ่มแรงดัน / วงรแปลงแรงดัน / วงจรทวีแรงดัน / วงจรลดแรงดัน แบบปรับค่าได้