Professional Documents
Culture Documents
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):
/*
RoboCore - Tutorial Comunicacao entre Arduinos: I2C - Parte 1
(Master)
(03/05/2015)
Referencias:
Exemplo Debounce - https://www.arduino.cc/en/Tutorial/Debounce
Tutorial Master Writer - https://www.arduino.cc/en/Tutorial/MasterWriter
*/
#include "Wire.h"
// as variaveis a seguir sao do tipo long por conta que o tempo, medido
// em milessegundos alcancara rapidamente um numero grande demais para
// armazenar em uma variavel do tipo int
unsigned long lastDebounceTime = 0; // tempo da ultima modificacao do estado do LED
void setup() {
Wire.begin(); // ingressa ao barramento I2C
void loop() {
// le o estado do botao e salva em uma variavel local
int reading = digitalRead(buttonPin);
Referencias:
Exemplo Debounce - https://www.arduino.cc/en/Tutorial/Debounce
Tutorial Master Writer - https://www.arduino.cc/en/Tutorial/MasterWriter
*/
#include "Wire.h"
void setup() {
// ingressa ao barramento I2C com o endereço definido no myAdress (0x08)
Wire.begin(myAdress);
//Registra um evento para ser chamado quando chegar algum dado via I2C
Wire.onReceive(receiveEvent);
void loop() {
// nada para ser exexutado
}
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.
Esse tutorial é a segunda parte do Tutorial Comunicação entre Arduinos: I2C - Parte 1. Se você ainda não viu,
recomendamos que veja a Parte 1 do tutorial antes prosseguir.
Nessa segunda parte do tutorial a placa Slave estará conectada ao botão e, ao pressionar este botão, o estado do LED
conectado à placa Master será alterado. A placa Master trabalhará como o receptor e a placa Slave como o emissor.
Para isso precisaremos de:
BlackBoard V1.0
LED
Resistor
PushButton
Jumpers M/M
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.
Referencias:
Exemplo Debounce - https://www.arduino.cc/en/Tutorial/Debounce
Tutorial Master Reader - https://www.arduino.cc/en/Tutorial/MasterReader
*/
#include "Wire.h"
void setup() {
// conecta ao barramento I2C com o endereço definido no myAdress (0x08)
Wire.begin();
void loop() {
// realiza uma requisicao de 1 byte de dados do modulo slave
Wire.requestFrom(slaveAdress, 1);
// verifica se existem dados para serem lidos no barramento I2C
if (Wire.available()) {
// le o byte recebido
char received = Wire.read();
Referencias:
Exemplo Debounce - https://www.arduino.cc/en/Tutorial/Debounce
Tutorial Master Reader - https://www.arduino.cc/en/Tutorial/MasterReader
*/
// as variaveis a seguir sao do tipo long por conta que o tempo, medido
// em milessegundos alcancara rapidamente um numero grande demais para
// armazenar em uma variavel do tipo int
void setup() {
Wire.begin(myAdress); // ingressa ao barramento I2C
Wire.onRequest(requestEvent); // registra um evento para tratar requisicoes
void loop() {
// le o estado do botao e salva em uma variavel local
int reading = digitalRead(buttonPin);
Agora basta alimentar ambas as placas que tudo deve funcionar perfeitamente. Aperte o botão da BlackBoard Slave e
o LED conectado a placa Master deve acender. Se você apertar novamente o mesmo deve apagar. Agora você já sabe
como enviar ou fazer requisições de mensagens utilizando o protocolo de comunicação I2C.