Comunicação entre Arduinos: I2C - Parte 1




Em algumas situações é interessante configurar dois Arduinos para trocar informações entre si. Neste tutorial iremos programar duas placas para se comunicarem entre si via protocolo serial I2C. Utilizaremos a bliblioteca Wire para realizar esta tarefa.
O protocolo serial síncrono I2C, também conhecido como TWI, utiliza de dois fios (SDA: Dados; SCL: Clock) para realizar uma comunicação half duplex, ou seja, é possível trasmitir e receber informações, mas não ao mesmo tempo, apenas um sentido por vez. Forma-se um barramento endereçável onde cada componente na rede possui um endereço para ser identificado para que a informação possa ser designda para o destinatário correto.
Nessa primeira parte do tutorial a placa Master estará conectada ao botão e, ao pressionar este botão, o estado do led conectado à placa Slave será alterado. A placa Master trabalhará como o emissor e a placa Slave como o receptor.

Para isso precisaremos de: Confira na imagem ao lado como realizar as conexões de cada BlackBoard.

Agora que você já montou todo o circuito, é necessário programar cada placa com seu código. Neste momento, é importante que você verifique se está gravando a BlackBoard correta, por isso recomendamos que conecte e programe uma placa por vez. Desta forma você não irá se confundir com as portas COM.

Código para a BlackBoard Master (conectada ao botão):

Código para a BlackBoard Slave (conectada ao LED):

Agora basta alimentar ambas as placas que tudo deve funcionar perfeitamente. Aperte o botão da BlackBoard Master e o LED conectado a placa Slave deve acender. Se você apertar novamente o mesmo deve apagar.
Até este ponto já aprendemos como fazer nossa placa Mestre enviar informações para o Slave. Na segunda parte do tutorial iremos aprender como fazer nossa placa Mestre receber informações da placa Slave. A segunda parte deste tutorial você encontra aqui.