Stap 2: De slaven Program
Omdat ik ben met behulp van ATTiny84 chips, is het noodzakelijk de TinyWireS header te gebruiken (google, het is niet moeilijk te vinden). Ook, omdat de ATTiny84 als een slaaf alleen fungeert, dit is alles wat het nodig heeft.
Elk van de drie ATTiny84 chips krijgen een uniek adres in het netwerk:
#define I2C_SLAVE_ADDRESS 0x1
#define I2C_SLAVE_ADDRESS 0x2
#define I2C_SLAVE_ADDRESS 0x3
De #define lijn in de schets is de enige regel die in dit voorbeeld verschilt.
Mijn voorbeeld verschilt van de bron schets die ik uit The Wandering ingenieur haalde in dat ik drie ATTiny84 aansluiten ben en ik heb ook een indicator LED die knevels van in- en uitschakelen als deze instructie van de I2C Master ontvangt.
In de bijgaande schets, ik heb toegevoegd sommige logica die de staat van de LED op basis van de deelbaarheid van bepaalt "ik" door 2, met behulp van een eenvoudige modulo truc:
VOID requestEvent()
{if(i%2==0) {digitalWrite (LEDPin, laag);} else {digitalWrite (LEDPin, hoge);} TinyWireS.send(i); i ++; }
Als ik gedeeld door 2 resultaten in 0, dan de LED af, anders schakelt... zet hem op, dan stuur ik naar de I2C Master.