Yang ingin saya lakukan adalah membuat ATTiny IC menjadi budak di bus 1-kawat, dengan S / N sendiri dan daftar perintah untuk fungsi spesifiknya.
Yang ingin saya ketahui adalah apakah saya bisa menggunakan perpustakaan satu kawat dari situs Arduino untuk mengirim data sebagai budak.
Misalnya, Anda dapat memiliki budak di satu ruangan dengan beberapa jenis sensor yang akan dilaporkan ke master pada informasi yang diminta, atau master dapat memberitahu itu untuk mengendalikan sesuatu seperti tirai.
Pertanyaan Apakah saya harus memonitor jalur bus dan menanggapi permintaan dari master dan juga mempertimbangkan cara sensor normal akan mengirim data? Berapa frekuensi saya harus menjalankan slave untuk mendapatkan fungsionalitas terbaik?
Saya tidak akan menggunakan kekuatan parasit, sebagai catatan.
Jawaban:
Sejauh yang saya tahu, perpustakaan 1-kawat yang Anda tautkan dalam pertanyaan Anda hanya memungkinkan untuk bertindak sebagai master, bukan sebagai budak.
Saya baru saja merilis perpustakaan untuk mengubah papan Arduino menjadi budak 1-kawat, di sini:
https://github.com/neuoy/OneWireArduinoSlave(sunting: pindah ke sini https://gitea.youb.fr/youen/OneWireArduinoSlave ). Saya menggunakannya di sistem otomasi rumah khusus saya, dan berfungsi dengan sempurna dalam pengaturan saya (master 1-kawat, DS9490R, terhubung ke laptop melalui USB, dan juga memberikan daya ke Arduino, yang merupakan Arduino Uno). Pustaka menangani detail tingkat rendah: match rom, byte kirim dan terima (yang sebenarnya cukup sulit untuk diperbaiki, sebagian besar tidak mungkin tanpa penganalisis logika). Sisanya terserah padamu.Ini sepenuhnya dilaksanakan dengan interupsi, semua komunikasi dilakukan di latar belakang, Anda dapat mengeksekusi kode lain seperti biasa, secara paralel, dan diberitahu oleh panggilan balik ketika byte diterima dll. Mengirim byte ke master juga tidak sinkron.
Saya juga tahu setidaknya ada satu perpustakaan lain, https://github.com/MarkusLange/OneWireSlave , seperti yang dikomentari di atas oleh Ryu_hayabusa. Itu tidak bekerja untuk saya (tidak tahu apakah itu karena pengaturan perangkat keras saya atau karena alasan lain), tetapi pasti bekerja untuk orang lain, jadi juga patut dicoba. Tampaknya pustaka ini tidak diimplementasikan dengan interupsi, jadi program Anda diblokir sambil menunggu aktivitas master (yang sangat dapat diterima dalam banyak skenario).
sumber