ในโครงการนี้เราจะไปอินเตอร์เฟซ ROTARY ENCODER กับ ARDUINO ARDUINO UNO เป็นบอร์ดพัฒนาที่ใช้ตัวควบคุม ATMEGA ที่ออกแบบมาสำหรับวิศวกรอิเล็กทรอนิกส์และมือสมัครเล่น ใน ARDUINO เรามีพิน I / O 20 พินดังนั้นเราจึงสามารถตั้งโปรแกรม UNO 20 พินเพื่อใช้เป็นอินพุตหรือเอาต์พุตได้
Encoder โรตารีจะใช้ในการรู้ตำแหน่งของการเคลื่อนไหวและการเคลื่อนไหวเชิงมุมของมอเตอร์หรือแกน โดยปกติจะเป็นอุปกรณ์ปลายทางสามเครื่องโดยมีขั้วต่อสายไฟและสายดินมีทั้งหมด 5 ขั้ว โมดูลตัวเข้ารหัสโรตารีแสดงอยู่ด้านล่าง
หมุดของตัวเข้ารหัสแบบหมุนคือ:
- พื้น
- บวกเชื่อมต่อกับ + 5V
- สัญญาณขาออก A พิน
- ขาสัญญาณขาออก B
- เข็มนาฬิกาหรือหมุดทั่วไป
ENCODER จัดเตรียมพัลส์ที่แสดงถึงการเปลี่ยนแปลงตำแหน่งเพลาเพื่อให้ระบบเข้าใจ พิจารณาว่า ROTARY ENCODER เปิดขึ้นและเพลาเคลื่อนที่
ดังที่แสดงในตารางด้านบนให้พิจารณาว่าเพลาถูกย้ายนาฬิกาอย่างชาญฉลาด ด้วยสิ่งนี้จะมี Falling Edge ที่ขั้ว A จากนั้นที่ขั้ว B
พิจารณาเพลาถูกเคลื่อนย้ายนาฬิกาป้องกันอย่างชาญฉลาด ด้วยสิ่งนี้จะมี Falling Edge ที่ขั้ว B จากนั้นที่ขั้ว A
ขอบนี้จะเกิดขึ้นหนึ่งครั้งสำหรับ 360/20 = 18 องศา (สำหรับ Encoder ที่มีตำแหน่ง 20 ตำแหน่งการเปลี่ยนแปลงจากประเภทเป็นประเภทการนับที่สูงขึ้นความแม่นยำยิ่งขึ้น)
ด้วยเงื่อนไขทั้งสองข้างต้นเราสามารถรับทิศทางและองศาการหมุนได้ ดังนั้นเราจึงได้รับพารามิเตอร์ที่จำเป็นสำหรับการรับตำแหน่งของเพลา
ส่วนประกอบที่จำเป็น
ฮาร์ดแวร์: Arduino uno board, หมุดเชื่อมต่อ, ตัวต้านทาน220Ω, LED (แปดชิ้น), ตัวต้านทาน1KΩ, ตัวต้านทาน220Ω (2 ชิ้น), ตัวเก็บประจุ 100nF (2 ชิ้น), บอร์ดขนมปัง
ซอฟต์แวร์: Arduino ทุกคืน
แผนภาพวงจรและคำอธิบายการทำงาน
ตัวเก็บประจุที่นี่มีไว้สำหรับปรับเอฟเฟกต์การตีกลับหน้าสัมผัสใน ENCODER หากไม่มีตัวเก็บประจุเหล่านั้นจะมีปัญหาร้ายแรงในการอ่านตำแหน่ง
เมื่อเพลาถูกเคลื่อนย้ายจะมีความแตกต่างของเวลาระหว่างเอาต์พุตพินเอาต์พุตสองตัว Arduino UNO จะรับรู้ความแตกต่างของเวลานี้สำหรับการหมุนตามเข็มนาฬิกาของ Anti clock wise
หากการหมุนเป็นไปตามเข็มนาฬิกาจำนวนไบนารีจะเพิ่มขึ้นทีละหนึ่งและจำนวนนี้จะแสดงในพอร์ต LED ดังแสดงในรูป
หากการหมุนเป็น Anti clock อย่างชาญฉลาดการนับไบนารีจะลดลงทีละหนึ่งและจำนวนไบนารีจะแสดงที่ไบต์ LED
การทำงานของ Arduino กับ Rotary Encoder อธิบายทีละขั้นตอนในรหัส C ที่ระบุด้านล่าง