Lo que quiero hacer es convertir un ATTiny IC en esclavo en el bus de 1 cable, con su propia S / N y lista de comandos para sus funciones específicas.
Lo que quiero saber es si puedo usar la biblioteca de un cable del sitio arduino para enviar datos como esclavo.
Por ejemplo, puede tener un esclavo en una habitación con múltiples tipos de sensores que informarían al maestro sobre la información solicitada, o el maestro puede decirle que controle algo como las persianas.
Pregunta ¿Tendría que controlar la línea de bus y responder a una solicitud del maestro y también tener en cuenta la forma en que un sensor normal enviaría datos? ¿A qué frecuencia debo ejecutar el esclavo para obtener la mejor funcionalidad?
No usaré el poder parasitario, como nota.
Respuestas:
Hasta donde sé, la biblioteca de 1 cable que vinculaste en tu pregunta solo permite actuar como maestro, no como esclavo.
Acabo de lanzar una biblioteca para convertir una placa Arduino en un esclavo de 1 cable, aquí:
https://github.com/neuoy/OneWireArduinoSlave(editar: movido aquí https://gitea.youb.fr/youen/OneWireArduinoSlave ) Lo uso en mi sistema de automatización del hogar personalizado, y funciona sin problemas en mi configuración (el maestro de 1 cable, un DS9490R, está conectado a una computadora portátil a través de USB, y también proporciona energía al Arduino, que es un Arduino Uno). La biblioteca maneja detalles de bajo nivel: coincidencia de rom, envío y recepción de bytes (que en realidad es bastante difícil de corregir, casi imposible sin un analizador lógico). El resto depende de usted.Se implementa completamente con interrupciones, todas las comunicaciones se realizan en segundo plano, puede ejecutar otro código como de costumbre, en paralelo, y las devoluciones de llamada se notifican cuando se reciben bytes, etc. El envío de bytes al maestro también es asíncrono.
También sé que existe al menos otra biblioteca, https://github.com/MarkusLange/OneWireSlave , como comentó anteriormente Ryu_hayabusa. No funcionó para mí (no sé si es por mi configuración de hardware o por otra razón), pero definitivamente funciona para otros, por lo que también vale la pena intentarlo. Parece que esta biblioteca no se implementa con interrupciones, por lo que su programa se bloquea mientras espera la actividad maestra (que es perfectamente aceptable en muchos escenarios).
fuente