ประเภท: วงจรไมโครคอนโทรลเลอร์
จำนวนการดู: 16,299
ความเห็นเกี่ยวกับบทความ: 0

วิธีการเชื่อมต่อตัวเข้ารหัสแบบเพิ่มหน่วยกับ Arduino

 

บ่อยครั้งในอุปกรณ์บนไมโครคอนโทรลเลอร์คุณต้องจัดระเบียบการจัดการรายการเมนูหรือใช้การปรับเปลี่ยนบางอย่าง มีหลายวิธี: ใช้ปุ่มตัวต้านทานผันแปรหรือตัวเข้ารหัส ตัวเข้ารหัสที่เพิ่มขึ้นช่วยให้คุณสามารถควบคุมบางสิ่งได้โดยใช้การหมุนที่ไม่มีที่สิ้นสุด ในบทความนี้เราจะดูว่าจะทำให้ตัวเข้ารหัสที่เพิ่มขึ้นและ Arduino ทำงานอย่างไร

วิธีการเชื่อมต่อตัวเข้ารหัสแบบเพิ่มหน่วยกับ Arduino

คุณสมบัติตัวเข้ารหัสเพิ่มเติม

ตัวเข้ารหัสเพิ่มเติมเช่นตัวเข้ารหัสชนิดอื่นเป็นอุปกรณ์ที่มีด้ามจับหมุนได้ ห่างไกลมันคล้ายกับโพเทนชิออมิเตอร์ ความแตกต่างที่สำคัญจากโพเทนชิออมิเตอร์คือที่ที่ด้ามจับหมุนได้ 360 องศา เขาไม่มีบทบัญญัติที่สุดขีด

ตัวเข้ารหัสมีหลายประเภท การเพิ่มขึ้นจะแตกต่างกันไปตามนั้นด้วยความช่วยเหลือมันเป็นไปไม่ได้ที่จะรู้ตำแหน่งของมือจับ แต่มีเพียงความจริงของการหมุนในบางทิศทาง - ไปทางซ้ายหรือทางขวา ด้วยจำนวนสัญญาณพัลส์คุณสามารถคำนวณได้ในมุมที่มันหมุนไป

ตัวเข้ารหัสและ Arduino

ด้วยวิธีนี้คุณสามารถผ่าน ไมโครคอนโทรลเลอร์ คำสั่งจัดการเมนูระดับเสียงเช่นและอื่น ๆ ในชีวิตประจำวันคุณสามารถเห็นพวกเขาในวิทยุรถยนต์และอุปกรณ์อื่น ๆ มันถูกใช้เป็นอวัยวะปรับระดับมัลติฟังก์ชั่ปรับเสียงและเมนูนำทาง

ลูกบิดปรับระดับเสียง

หลักการทำงาน

ภายในตัวเข้ารหัสแบบเพิ่มหน่วยจะมีดิสก์ที่มีป้ายชื่อและแถบเลื่อนที่สัมผัสกับมัน โครงสร้างของมันคล้ายกับโพเทนชิออมิเตอร์

เข้ารหัสถอดชิ้นส่วน

ในรูปด้านบนคุณเห็นดิสก์ที่มีเครื่องหมายพวกเขาจำเป็นต้องขัดจังหวะการเชื่อมต่อไฟฟ้ากับหน้าสัมผัสที่เคลื่อนย้ายได้ซึ่งเป็นผลให้คุณได้รับข้อมูลเกี่ยวกับทิศทางของการหมุน การออกแบบผลิตภัณฑ์ไม่สำคัญมากนักให้เข้าใจหลักการทำงาน

การออกแบบตัวเข้ารหัส

เอนโค้ดเดอร์มีเอาต์พุตข้อมูลสามตัวหนึ่งทั่วไปอีกอันหนึ่งมักจะเรียกว่า“ A” และ“ B” ในรูปด้านบนคุณเห็นพินตัวเข้ารหัสพร้อมปุ่ม - คุณสามารถรับสัญญาณเมื่อคุณคลิกที่เพลา

เราจะได้รับสัญญาณอะไร ขึ้นอยู่กับทิศทางของการหมุนหน่วยทางลอจิคัลจะปรากฏที่ขา A หรือ B ก่อนดังนั้นเราจึงได้รับสัญญาณแบบเฟสเฟสและการเปลี่ยนนี้ช่วยให้เราสามารถกำหนดทิศทางได้ สัญญาณจะได้รับในรูปแบบของรูปสี่เหลี่ยมผืนผ้าและไมโครคอนโทรลเลอร์จะถูกควบคุมหลังจากประมวลผลข้อมูลทิศทางการหมุนและจำนวนของพัลส์

หลักการทำงาน

รูปแสดงสัญลักษณ์ของดิสก์พร้อมตัวเชื่อมต่อตรงกลางจะมีกราฟของสัญญาณเอาต์พุตและด้านขวาคือตารางสถานะ อุปกรณ์นี้มักจะถูกวาดเป็นสองปุ่มซึ่งเป็นเหตุผลเพราะที่จริงแล้วเราได้รับสัญญาณ "ไปข้างหน้า" หรือ "ย้อนกลับ", "ขึ้น" หรือ "ลง" และจำนวนการกระทำ

วงจรตัวเข้ารหัส

นี่คือตัวอย่างของ pinout ตัวเข้ารหัสที่แท้จริง:

ตัวอย่างของ pinout ตัวเข้ารหัสที่แท้จริง

น่าแปลกใจฉัน:

สามารถเปลี่ยนตัวเข้ารหัสที่มีข้อผิดพลาดได้ด้วยปุ่มสองปุ่มโดยไม่ล็อคและในทางกลับกัน: การควบคุมแบบโฮมเมดซึ่งปุ่มสองปุ่มเหล่านี้สามารถสรุปได้โดยการตั้งค่าตัวเข้ารหัส

ในวิดีโอด้านล่างคุณจะเห็นการสลับของสัญญาณที่ขั้ว - ในระหว่างการหมุนอย่างราบรื่นไฟ LED จะสว่างขึ้นตามลำดับที่แสดงในกราฟก่อนหน้า

ไม่มีภาพที่ชัดเจนในภาพเคลื่อนไหวต่อไปนี้ (คลิกที่ภาพ):

อุปกรณ์และหลักการทำงานของเอนโค้ดเดอร์

เครื่องเข้ารหัสสามารถเป็นได้ทั้งออปติคัล (สัญญาณถูกสร้างขึ้นโดยตัวส่งสัญญาณโดยเครื่องตรวจจับภาพดูรูปด้านล่าง) และแม่เหล็ก (ใช้ได้กับเอฟเฟกต์ฮอลล์) ในกรณีนี้เขาไม่มีผู้ติดต่อและอายุการใช้งานนานขึ้น

เซ็นเซอร์มุม

ดังที่ได้กล่าวไปแล้วทิศทางของการหมุนสามารถกำหนดได้ว่าสัญญาณขาออกใดที่เปลี่ยนไปก่อนหน้านี้ แต่นี่เป็นลักษณะที่ใช้ในทางปฏิบัติ!

จุดตรึงเชิงกล

ความแม่นยำในการควบคุมขึ้นอยู่กับความละเอียดของเครื่องเข้ารหัส - จำนวนของพัลส์ต่อการปฏิวัติ จำนวนพัลส์สามารถทำได้จากหน่วยถึงพันชิ้น เนื่องจากเอนโค้ดเดอร์สามารถทำหน้าที่เป็นเซ็นเซอร์ตำแหน่งจึงมีพัลส์เพิ่มขึ้นการกำหนดที่แม่นยำยิ่งขึ้นจะเกิดขึ้นพารามิเตอร์นี้เรียกว่า PPR - พัลส์ต่อการปฏิวัติ

แต่มีความแตกต่างเล็กน้อยคือการกำหนด LPR ที่คล้ายกันคือจำนวนของฉลากบนดิสก์

และจำนวนพัลส์ที่ประมวลผลแล้ว แต่ละฉลากบนดิสก์จะให้ 1 พัลส์เป็นสี่เหลี่ยมบนแต่ละเอาต์พุตสองตัว แรงกระตุ้นมีสองด้านหน้า - ด้านหลังและด้านหน้า เนื่องจากมีสองวิธีเราจึงได้รับพัลส์ทั้งหมด 4 ค่าซึ่งแต่ละค่าสามารถประมวลผลได้

PPR = LPRx4


เชื่อมต่อกับ Arduino

เราพบสิ่งที่คุณต้องรู้เกี่ยวกับตัวเข้ารหัสเพิ่มเติมตอนนี้เรามาดูวิธีการเชื่อมต่อกับ Arduino พิจารณาแผนภาพการเชื่อมต่อ:

แผนภาพการเชื่อมต่อของเซ็นเซอร์ตำแหน่งกับ Arduino

โมดูลตัวเข้ารหัสเป็นบอร์ดที่มีตัวเข้ารหัสแบบเพิ่มหน่วยและตัวต้านทานแบบดึงขึ้น คุณสามารถใช้พินใดก็ได้

แผนภาพการเดินสายตัวเข้ารหัส

หากคุณไม่มีโมดูล แต่เป็นตัวเข้ารหัสแยกต่างหากคุณเพียงแค่ต้องเพิ่มตัวต้านทานเหล่านี้วงจรจะไม่แตกต่างกันในหลักการ เพื่อตรวจสอบทิศทางการหมุนและความสามารถในการใช้งาน ร่วมกับ Arduino เราสามารถอ่านข้อมูลจากพอร์ตอนุกรม

ตัวอย่างโปรแกรม

ลองวิเคราะห์รหัสโดยละเอียดเพิ่มเติมตามลำดับ ในการตั้งค่าโมฆะ () เราประกาศว่าเราจะใช้การสื่อสารผ่านพอร์ตอนุกรมจากนั้นตั้งหมุด 2 และ 8 ในโหมดอินพุต เลือกหมายเลข PIN ด้วยตนเองตามรูปแบบการเชื่อมต่อของคุณ ค่าคงที่ INPUT_PULLUP ตั้งค่าโหมดอินพุต, arduino มีสองตัวเลือก:

  • อินพุต - อินพุตโดยไม่มีตัวต้านทานแบบดึงขึ้น;

  • INPUT_PULLUP - เชื่อมต่อกับอินพุตของตัวต้านทานแบบดึงขึ้น มีตัวต้านทานอยู่ภายในไมโครคอนโทรลเลอร์ที่อินพุตถูกเชื่อมต่อกับ power plus (pullup)

หากคุณใช้ตัวต้านทานเพื่อกระชับกำลังบวกตามที่แสดงในแผนภาพด้านบนหรือใช้โมดูลตัวเข้ารหัส - ใช้คำสั่ง INPUT และถ้าด้วยเหตุผลบางอย่างคุณไม่สามารถหรือไม่ต้องการใช้ตัวต้านทานภายนอก - INPUT_PULLUP

ตรรกะของโปรแกรมหลักมีดังนี้: ถ้าเรามีหนึ่งที่อินพุต“ 2” มันจะส่งออกพอร์ต H ไปยังจอภาพถ้าไม่, L. ดังนั้นเมื่อคุณหมุนไปในทิศทางเดียวกันบนจอภาพพอร์ตอนุกรมคุณจะได้รับสิ่งนี้: LL HL HH LH LL และในทางกลับกัน: LL LH HH HL LL

หากคุณอ่านบรรทัดอย่างละเอียดคุณอาจสังเกตเห็นว่าในกรณีหนึ่งอักขระตัวแรกที่ได้รับค่าและในกรณีอื่นอักขระตัวที่สองจะเปลี่ยนไปก่อน


ข้อสรุป

เอนโค้ดเดอร์ที่เพิ่มขึ้นพบแอปพลิเคชั่นที่ใช้งานได้จริงอย่างกว้างขวางในเครื่องขยายเสียงสำหรับระบบอะคูสติก - พวกมันถูกใช้เป็นตัวควบคุมระดับเสียงในวิทยุในรถ - เพื่อปรับพารามิเตอร์เสียงและเมนูนำทางในเมาส์คอมพิวเตอร์ . และในเครื่องมือวัด, เครื่อง CNC, หุ่นยนต์, selsyn ไม่เพียง แต่เป็นตัวควบคุม แต่ยังวัดค่าและกำหนดตำแหน่ง

ดูได้ที่ bgv.electricianexp.com:

  • วิธีการสำหรับการอ่านและการจัดการพอร์ต Arduino I / O
  • ควบคุมมอเตอร์และเซอร์โวด้วย Arduino
  • คุณสมบัติการเชื่อมต่ออุปกรณ์กับ Arduino
  • การเชื่อมต่อและการเขียนโปรแกรม Arduino สำหรับผู้เริ่มต้น
  • เซ็นเซอร์ยอดนิยมสำหรับ Arduino

  •