ATTiny84 - I2C slav - Arduino UNO (2 / 6 steg)
Steg 2: Programmera slavar
Eftersom jag använder ATTiny84 marker, är det nödvändigt att använda rubriken TinyWireS (google det, det är inte svårt att hitta). Också, eftersom ATTiny84 fungerar som en slav endast, detta är allt som det behöver.
Var och en av de tre ATTiny84 markerna ges en unik adress i nätverket:
#define I2C_SLAVE_ADDRESS 0x1
#define I2C_SLAVE_ADDRESS 0x2
#define I2C_SLAVE_ADDRESS 0x3
#define linjen i skissen är den enda linje som skiljer sig i det här exemplet.
Mitt exempel skiljer sig från den källa skiss som jag tog från The Wandering ingenjör eftersom jag ansluter tre ATTiny84 och jag har tagit en indikator LED som växlar mellan på och av när den tar emot instruktioner från I2C Master.
I bifogade skissen, jag har lagt några logik som bestämmer staten LED utifrån divisibilityen av "i" av 2, med hjälp av en enkel modulo trick:
void requestEvent()
{if(i%2==0) {digitalWrite (LEDPin, låg);} annat {digitalWrite (LEDPin, hög);} TinyWireS.send(i); i ++; }
om jag dividerat med 2 resultat i 0, sedan vända LED av, annars... slå på den och sedan skickar jag till I2C Master.