O que eu quero fazer é tornar um ATTiny IC um escravo no barramento de 1 fio, com seu próprio S / N e lista de comandos para suas funções específicas.
O que eu quero saber é se posso usar a biblioteca de um fio do site do arduino para enviar dados como escravo.
Por exemplo, você pode ter um escravo em uma sala com vários tipos de sensores que reportariam ao mestre as informações solicitadas ou o mestre pode pedir para controlar algo como persianas.
Pergunta Eu precisaria monitorar a linha de ônibus e responder a uma solicitação do mestre e também levar em consideração a maneira como um sensor normal enviaria dados? Em que frequência devo executar o escravo para obter a melhor funcionalidade?
Não usarei energia parasita, como nota.
Respostas:
Até onde eu sei, a biblioteca de 1 fio que você vinculou na sua pergunta permite apenas agir como mestre, não como escravo.
Acabei de lançar uma biblioteca para transformar uma placa Arduino em uma escrava de 1 fio, aqui:
https://github.com/neuoy/OneWireArduinoSlave(editar: movido para aqui https://gitea.youb.fr/youen/OneWireArduinoSlave ) Eu o uso no meu sistema de automação residencial personalizado e funciona perfeitamente na minha configuração (o mestre de 1 fio, um DS9490R, está conectado a um laptop via USB e também fornece energia ao Arduino, que é um Arduino Uno). A biblioteca lida com detalhes de baixo nível: match rom, byte send and receive (o que é realmente muito difícil de acertar, principalmente impossível sem um analisador lógico). O resto é com você.É totalmente implementado com interrupções, todas as comunicações são executadas em segundo plano, você pode executar outro código como de costume, em paralelo, e é notificado por retornos de chamada quando bytes são recebidos, etc. O envio de bytes ao mestre também é assíncrono.
Eu também sei que pelo menos uma outra biblioteca existe, https://github.com/MarkusLange/OneWireSlave , como comentado acima por Ryu_hayabusa. Não funcionou para mim (não sei se é por causa da minha configuração de hardware ou por outro motivo), mas definitivamente funciona para outras pessoas, portanto vale a pena tentar. Parece que esta biblioteca não foi implementada com interrupções; portanto, seu programa está bloqueado enquanto aguarda a atividade principal (o que é perfeitamente aceitável em muitos cenários).
fonte