Hola,
Estoy planeando hacer un proyecto de una fuente de alimentación conmutada utilizando Arduino como controlador principal, y una de las cosas que me gustaría hacer es que fuese modular y se pudiesen añadir o quitar canales.
Mi intención es que un ATMega328 sea el centro de control (Master), y que después cada canal de la fuente de alimentación disponga de un Attiny85 (Slaves), que se encargará de la gestión del PWM de dicho canal, siendo completamente autónomo (del máster sólo recibiría instrucciones acerca del voltage o la corriente que debe tener).
Mi pregunta es acerca de si es posible de alguna forma detectar los esclavos que hay conectados a un canal I2C sin tener que hacer un sondeo completo de direcciones. En un principio había pensado en que al arrancar el Attiny85, él mismo se diera una dirección aleatoria y la guardase en la EEPROM, y que si fuera posible, detectar en el Maestro todos los esclavos y guardar sus direcciones en la EEPROM para guardar el orden de detección (hacer que el canal 1 sea siempre el canal 1, y no varíe dependiendo de si se detectó antes o después).
¿Es posible o estoy planteando algo muy complejo?.
Además de esto me gustaría saber si es posible detectar desde un esclavo, si hay otro esclavo con una dirección concreta (para evitar colisiones al generar un ID).
Como alternativa había pensado en poner un botón en el Attiny que reseteara el ID (para el caso de colisión generar uno nuevo), y que el ATMega328 tuviese otro que realizara el sondeo de todas las direcciones.
Un saludo y gracias.