ความยาวสายไฟสูงสุดสำหรับการสื่อสารแบบอนุกรมระหว่างสอง Arduinos คืออะไร


9

ฉันกำลังสร้างโครงการที่ Arduinos สองแห่งจะถูกเชื่อมโยงโดยสายสามเส้น: TX an RX สำหรับการสื่อสารแบบอนุกรมและ GND ทั่วไป อะไรคือความยาวสูงสุดของสายไฟที่นี่ก่อนที่การสื่อสารจะได้รับผลกระทบ

ฉันกำลังใช้ Arduino Mega R3 ที่ด้านหนึ่งและ Arduino Mini อีกด้านหนึ่ง

ฉันไม่มีความต้องการพิเศษสำหรับอัตราการรับส่งข้อมูลฉันสามารถใช้อัตราที่ต่ำที่สุดหากสิ่งนี้ช่วยได้ แต่อย่างใด

คำตอบ:


4

คุณต้องระบุ

  • ลำดับของช่วงที่คุณสนใจ - เป็นลำดับเมตรหลายสิบเมตรกิโลเมตรหรือระหว่างรัฐหรือไม่ :-) ทั้งหมดเป็นไปได้ด้วยการประนีประนอมที่เหมาะสม

  • คุณตั้งใจจะเชื่อมต่อกับวงจรอย่างไร - ตรงขา Arduino, บัฟเฟอร์สูง / ต่ำ, ไดรเวอร์ที่แตกต่าง, ...

หากคุณใช้ 5V / 0V "unipolar" จากนั้นบอกว่า baud 9600 ba คุณสามารถขับได้หลายเมตรพร้อมกับไดรเวอร์ที่เหมาะสม หากคุณใช้ตัวต้านทานลวด Arduino โดยตรงและตัวเหนี่ยวนำจะเริ่มมีความสำคัญเมื่อช่วงเพิ่มขึ้น

ที่ 300 baud คุณสามารถบรรลุผลหลายร้อยเมตรด้วยสายคู่บิด เมื่อช่วงเพิ่มลักษณะเช่น cross-talk จากวงจรอื่น ๆ และเสียงรบกวนจากภายนอกมีความสำคัญเพิ่มขึ้น ในช่วงที่ยาวขึ้นมีสาย 4 เส้นพร้อมสัญญาณ + กราวด์รวมกันในแต่ละกรณีจะช่วยได้ แต่เป็นไปได้ว่าที่ช่วงความสนใจ 2 สายบวกกับกราวด์จะทำงานได้

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


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

2
อันตรายบางอย่างกับ Arduino ด้วยสายเคเบิลยาวเหยียด การเหนี่ยวนำการรั่วไหลประจุไฟฟ้าสถิต (สายฟ้าและพื้นดินเพิ่มขึ้นจากความผิดพลาดของพลังงานเพียง แต่ ... กลับไดโอดแคลมป์ไปยังรางแหล่งจ่ายไฟในทุกบรรทัดเป็นความคิดที่ดี IC ไดรเวอร์พื้นฐานเป็นความคิดที่ดีมาก แม้กระทั่ง xx74xx14 hex Schmitt inverter IC ที่ปลายแต่ละด้านก็ยังมีประโยชน์ (โดยที่ xx ขึ้นอยู่กับครอบครัว) โปรแกรมควบคุมสายที่เหมาะสมยิ่งขึ้น แต่นั่นเป็นการเริ่มต้น หาก Arduino ของคุณมีค่าให้ใช้บัฟเฟอร์
รัสเซลแม็คมาฮอน

ขอบคุณทุกคนสำหรับความคิดเห็นและข้อเสนอแนะ เพื่อที่จะตรวจสอบว่าฉันสามารถครอบคลุมระยะทางที่กำหนด (ประมาณ 40 ม.) ด้วยการเชื่อมต่อที่เรียบง่ายฉันลองใช้ Arduino Uno สองอันตามลำดับตั้งเป็นผู้ส่งและผู้รับ บอร์ดเชื่อมต่อโดยตรงผ่านสาย TX / RX (หมุด 0 และ 1) ที่ 9600 บิตต่อวินาที ผู้ส่งส่งสตริงทดสอบออกทุก ๆ วินาทีในขณะที่ผู้รับกำลังรับฟังข้อมูลที่เข้ามา . ฉันกำลังใช้สายที่มีอยู่ (ข้อมูลเกี่ยวกับคุณภาพไม่มี / รายละเอียดของสายนี้อย่างไรก็ตามคู่ส่ง / รับดูเหมือนว่าจะทำงานได้โดยไม่มีปัญหาใด ๆ ที่ระยะนี้และการกำหนดค่า.
โฮบี้

ขอบคุณคุณมีข้อเสนอแนะ / ลิงก์ไปยังชิป IC หรือไดรเวอร์ใด ๆ หรือไม่?
hobie

@hobie ที่ระดับ 50 เมตรและ 9600 บอดคุณอาจได้ผลลัพธ์ที่ดี (ลองและดู) ด้วย IC ไดรเวอร์ดิจิตอล 5V เกือบทุกชนิดและแม้กระทั่งเพียงวงจรเอาต์พุตดิจิตอล จุดเริ่มต้นที่มีประโยชน์คืออินเวอร์เตอร์เหนี่ยวไกแบบ CMOS ของ Schmitt โดยทั่วไปแล้วคือ 74xxx14, CDxxx14, MM ..... 14 มองหาเครื่องแปลงกระแสไฟฟ้าที่ชมิดท์เรียกใช้ให้หลีกเลี่ยงพลังงานไดรฟ์ที่ต่ำที่สุด
รัสเซลแม็คมาฮอน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.