เท่าที่ฉันรู้ไลบรารีแบบลวด 1 เส้นที่คุณเชื่อมโยงในคำถามของคุณจะอนุญาตให้ทำหน้าที่เป็นเจ้านายเท่านั้นไม่ใช่ทาส
ฉันเพิ่งเปิดห้องสมุดเพื่อเปลี่ยนบอร์ด Arduino เป็นทาส 1 สายที่นี่: https://github.com/neuoy/OneWireArduinoSlave (แก้ไข: ย้ายที่นี่https://gitea.youb.fr/youen/OneWireArduinoSlave ) ฉันใช้มันในระบบอัตโนมัติในบ้านที่กำหนดเองของฉันและมันทำงานได้อย่างไร้ที่ติในการตั้งค่าของฉัน (DS9490R ต้นแบบ 1 สายเชื่อมต่อกับแล็ปท็อปผ่าน USB และยังให้พลังงานกับ Arduino ซึ่งเป็น Arduino Uno) ไลบรารีจัดการรายละเอียดในระดับต่ำ: จับคู่ rom, ส่งและรับ byte (ซึ่งจริง ๆ แล้วค่อนข้างยากที่จะทำให้ถูกต้องซึ่งส่วนใหญ่เป็นไปไม่ได้หากไม่มีตัววิเคราะห์เชิงตรรกะ) ส่วนที่เหลือขึ้นอยู่กับคุณ
มันถูกนำมาใช้อย่างสมบูรณ์กับการขัดจังหวะการสื่อสารทั้งหมดจะดำเนินการในพื้นหลังคุณสามารถรันโค้ดอื่น ๆ ตามปกติในแบบคู่ขนานและได้รับแจ้งโดยการโทรกลับเมื่อได้รับไบต์ ฯลฯ การส่งไบต์ไปยังต้นแบบยังไม่ตรงกัน
ฉันยังรู้ว่ามีห้องสมุดอย่างน้อยหนึ่งแห่งอยู่ที่https://github.com/MarkusLange/OneWireSlaveตามที่ได้แสดงความคิดเห็นไว้ข้างต้นโดย Ryu_hayabusa มันใช้งานไม่ได้สำหรับฉัน (ไม่ทราบว่าเป็นเพราะการตั้งค่าฮาร์ดแวร์ของฉันหรือด้วยเหตุผลอื่น) แต่มันใช้งานได้ดีกับผู้อื่นดังนั้นควรลองดูด้วย ดูเหมือนว่าไลบรารีนี้ไม่ได้ถูกนำไปใช้กับการขัดจังหวะดังนั้นโปรแกรมของคุณจะถูกบล็อกในขณะที่รอกิจกรรมหลัก (ซึ่งเป็นที่ยอมรับอย่างสมบูรณ์ในหลาย ๆ สถานการณ์)