Olá Garagistas

Estou tentando comunicar 2 arduinos atraves do protocolo I2C, procurando na net encontrei um post Gammon, eplicando bem como é a configuração e a programação, porém como não conheço muito de programação, peço aos colegas se podem me dar uma ajudinha na interpretação do código, para que eu possa desenvolver meu código.

Preciso chegar ao ponto de que ao enviar um código para o mestre o escravo execute a operação, como: acionar um relé, aumentar e diminuir um dimmer, enviar comandos IR para controlar aparelhos.

Conto com ajuda dos colegar.

Obrigado

Código Mestre:

// Written by Nick Gammon 
// February 2012
#include <Wire.h>
const byte SLAVE_ADDRESS = 42;
const byte LED = 13;
void setup () {
Wire.begin ();
pinMode (LED, OUTPUT);
} // end of setup

void loop () {
for (byte x = 2; x <= 7; x++) {
Wire.beginTransmission (SLAVE_ADDRESS);
Wire.write (x);
if (Wire.endTransmission () == 0)
digitalWrite (LED, HIGH);
else
digitalWrite (LED, LOW);
delay (200);
} // end of for loop
} // end of loop


Código Escravo:

// Written by Nick Gammon 
// February 2012
#include <Wire.h>
const byte MY_ADDRESS = 42;
void setup ()
{
Wire.begin (MY_ADDRESS);
for (byte i = 2; i <= 7; i++)
pinMode (i, OUTPUT);
Wire.onReceive (receiveEvent);
}
void loop()
{ // nothing in main loop
} // called by interrupt service routine when incoming data arrives
void receiveEvent (int howMany)
{
for (int i = 0; i < howMany; i++)
{
byte c = Wire.read ();
// toggle requested LED
if (digitalRead (c) == LOW)
digitalWrite (c, HIGH;
else
digitalWrite (c, LOW);
} // end of for loop
} // end of receiveEvent


fonte: http://www.gammon.com.au/forum/?id=10896

Exibições: 336

Responder esta

Respostas a este tópico

OI EV BH, seguem os códigos comentados

Rui

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço