Bildiğim kadarıyla, sorunuzda bağladığınız 1 telli kütüphane, bir köle olarak değil, sadece bir usta olarak hareket etmenizi sağlar.
Bir Arduino kartını 1 telli bir köle haline getirmek için bir kütüphane yayınladım, burada: https://github.com/neuoy/OneWireArduinoSlave (değiştir: buraya taşındı https://gitea.youb.fr/youen/OneWireArduinoSlave ). Özel ev otomasyon sistemimde kullanıyorum ve kurulumumda kusursuz çalışıyor (1 telli master, DS9490R, bir dizüstü bilgisayara USB yoluyla bağlı ve aynı zamanda Arduino Uno olan Arduino'ya güç sağlıyor). Kütüphane düşük seviyeli ayrıntıları ele alır: maç romu, bayt gönderme ve alma (gerçekten doğru olması oldukça zordur, bir mantık analizörü olmadan genellikle imkansızdır). Gerisi size kalmış.
Tamamen kesmelerle uygulanır, tüm iletişimler arka planda gerçekleştirilir, diğer kodları her zamanki gibi paralel olarak yürütebilir ve bayt alındığında vb. Geri çağrılarla bildirilir. Master'a bayt gönderme de asenkronize olur.
Ayrıca yukarıda Ryu_hayabusa tarafından yorumlandığı gibi, en az bir başka kütüphane daha olduğunu biliyorum: https://github.com/MarkusLange/OneWireSlave . Benim için işe yaramadı (donanım kurulumumdan mı yoksa başka bir nedenden dolayı mı bilmiyorum), ama kesinlikle başkaları için de çalışıyor, bu yüzden denemeye değer. Bu kütüphane kesintilerle uygulanmamış gibi görünüyor, bu nedenle programınız ana etkinlik beklenirken engelleniyor (birçok senaryoda mükemmel kabul edilebilir).