I've been reading up on the I2C protocol as I want to use it in a project I am working on.
I have 3 Arduinos each handling a few specific tasks.
The first one has a LCD menu system driven by a rotary encoder with a DS1307 breakout so the menu and the time/date are displayed on the LCD.
The second one is reading from a thermistor, displaying the temperature on a 7 segment bubble display and driving a PID loop that controls a heating element.
The third one reads from a HX711 load cell amplifier, also reads the state of a 120VAC switch, and also controls a pump and a valve.
I want to use I2C and have the first Arduino as the master (I think?) and have the other two report to it. However I only want the third one to report when it detects a state change on the 120VAC switch, as this is a infrequent occurance.
From what I have been reading, the master can request data from a slave, but a slave cannot request to send data to a mater. Is this correct?
If that is the case, perhaps Arduino #3 could have a output connected to an input on Arduino #1. That way Arduino #1 would know when to request data?
Is there anything I am missing? Or a better way to go about this?