Pessoal estou tentando entender o funcionamento de shields com protocolo I2C.
Minhas dúvidas são:
O Arduino é Master ou Slave?
No código 1, eu entendi que se começa a comunicação com um shield qualquer, pelo endereço MPU. Depois escreve 0x6B e depois escreve 0. Como o shield sabe que o primeiro valor é para setar o endereço e o segundo é o valor? Ou é sempre assim?
Outra coisa ainda pelo código 1, se eu tiver um segundo parametro em seguinda tenho que mandar o endereço e depois o valor, ou posso mandar o endereço direto?
Se o valor para setar for igual a 0x6B, como ele vai entender que é um valor e não para ir no endereço? Como seria se o parametro fosse de 16 bits ou não existe, sendo todos de 8 bits?
O requestFrom(address, 6); pede 6 próximos bytes a partir de 1 endereço?