Comunicação entre Arduinos: SPI




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 SPI na configuração Master emissor/Slave receptor. Utilizaremos a bliblioteca SPI.
Nesse exemplo, ao pressionar o botão conectado à placa Master, o estado do led conectado à placa Slave será alterado.
O protocolo serial síncrono SPI utiliza quatro fios (SCK - Clock, MOSI - Master Output/Slave Input, MISO - Master Input/Slave Output e SS - Slave Select) para realizar uma comunicação full duplex permitindo que ambos os Arduinos possam enviar e receber dados ao mesmo tempo. O protocolo permite que um mestre se conecte com múltiplos escravos, para isso cada escravo deve possuir um pino Slave Select definido no mestre.
Desta maneira, para selecionar o módulo escravo que irá receber a informação, basta colocar o pino seletor do dispositivo desejado em nível lógico alto.

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.