Pessoal estou tentando entender o funcionamento de shields com protocolo I2C.

Minhas dúvidas são:

  1. O Arduino é Master ou Slave?
  2. 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?
  3. 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?
  4. 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?
  5. O requestFrom(address, 6); pede 6 próximos bytes a partir de 1 endereço? 

Código 1:

Wire.beginTransmission(MPU);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);

Código 2:

Wire.beginTransmission(address);
Wire.write(0x03);
Wire.endTransmission();

Wire.requestFrom(address, 6);

Exibições: 285

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço