เซ็นเซอร์วัดมุม AS5600 Magnetic Encoder เป็นเซนเซอร์ตรวจวัดมุมใช้หลักการวัดขั้วของสนามแม่เหล็ก N และ S แบบเดียวกับเข็มทิศ แต่แทนที่จะวัดสนามแม่เหล็กโลก เซ็นเซอร์นี้ใช้วัดสนามแม่เหล็กของแม่เหล็กถาวรแทน โดยวางแม่เหล็กได้ห่างได้ตั้งแต่ 0.3 ถึง 8 มิลลิเมตร สามารถใช้งานได้หลากหลาย เช่น บอกมุมข้อต่อหุ่นยนต์ มุมมอเตอร์ เนื่องจากเป็นการวัดแบบไม่สัมผัสมีข้อดีติดตั้งง่าย และไม่มีแรงเสียดทานทำให้ไม่หน่วงการหมุนมอเตอร์ มีความละเอียดสูง 12 บิต (0 ถึง 4095) หรือประมาณ 0.1 องศา การใช้งานต่อโมดูล AS5600 เข้ากับบอร์ดไมโครคอนโทรลเลอร์ผ่าน I2C โดยต่อ SCL เข้ากับ SCL, SDA เข้ากับ SDA, ต่อ GND เข้า GND, ต่อ VCC เข้าจุดที่มีแรงดันไฟเลี้ยง 3.3V หากใช้บอร์ด ESP32 หรือ IOXESP32 ให้ต่อวงจรตามรูปด้านล่างนี้ จากนั้นใช้ไลบารี่ AS5600 ตามขั้นตอนดังนี้ เปิดโปรแกรม Arduino IDE ขึ้นมา แล้วกดเปิดเมนูไลบารี่ (1) ช่องค้นหาใส่ AS5600 รอจนกว่าจะติดตั้งเสร็จ เมื่อติดตั้งเสร็จจะมีข้อความ Installed แสดงขึ้นมา (ดังรูป) เป็นอันจบขั้นตอนการติดตั้งไลบารี่ การทดสอบใช้โค้ดโปรแกรมตัวอย่างที่มีมากับไลบารี่ โดยกดเปิดโค้ดตัวอย่างที่ File > Examples > AS5600 > AS5600_demo โค้ดโปรแกรมตัวอย่างจะเปิดขึ้นมาแล้ว เชื่อมต่อบอร์ด IOXESP32 เข้ากับเครื่องคอมพิวเตอร์ จากนั้นเลือกบอร์ดเป็น ESP32 Dev Module และเลือกพอร์ต กดปุ่มอัพโหลดโปรแกรม แล้วรอจนกว่าจะขึ้นข้อความ Done Uploading (2) แล้วเปิด Serial Monitor ขึ้นมา ปรับเป็น 115200 baud (1) ทดสอบนำแม่เหล็กไปจ่อที่หน้าเซ็นเซอร์ สังเกตว่ามุมที่เซ็นเซอร์วัดค่าได้จะแสดงขึ้นมาแล้ว แก้ไขโค้ดโปรแกรมให้แปลงข้อมูลดิบเป็นหน่วยองศา โดยเพิ่ม // เพื่อคอมเม้นบรรทัดที่ 37 - 39 แล้วเปิดคอมเม้นบรรทัดที่ 40 (1) กดปุ่มอัพโหลดโค้ดอีกครั้ง (2) เมื่ออัพโหลดเสร็จ มุมของแม่เหล็กที่วัดได้จะแสดงในหน่วงองศาแล้ว เมื่อลองหมุนแม่เหล็ก ก็จะเห็นว่ามุมที่วัดได้เปลี่ยนไป แนวทางการเลือกแม่เหล็กและการวางแม่เหล็กเพื่อให้ได้ค่าแม่นที่สุด1) แม่เหล็กต้องเป็นทรงกลม และจะต้องเป็นขั้วแบบแบ่งครึ่งซีกด้านข้างเท่านั้น (แม่เหล็กทั่วไปเป็นขั้วแบบแบ่งครึ่งบนล่าง ซึ่งใช้กับเซ็นเซอร์นี้ไม่ได้) ความแรงต้องอยู่ระหว่าง 30 - 90 mT 2) แม่เหล็กต้องวางให้อยู่จุดกึ่งกลางเซ็นเซอร์ ขนานเซ็นเซอร์ และห่างจากเซ็นเซอร์ 0.5 - 3 มิลลิเมตร ข้อมูลเพิ่มเติม |