Olá Pessoal,
Tava olhando o forum e vi um post do nosso amigo zé gustavo sobre comunicação i2c, dai resolvi fazer uns testes.
Aproveitando os exemplos da biblioteca WIRE do proprio arduino, gravei o sketch master_write em um arduino mega, e o sketch slave_receiver em um arduino UNO.
Teste 1 - normal - liguei os dois com os cabos corretos e liguei o monitor serial no UNO, tudo lindo, comunicação perfeita.
Teste 2- Acrescentei um detalhe no codigo do mega, acrescentei no master_write que toda vez que ele transmitisse um led deveria acender e piscar.
Resultado - Tudo lindo: cada vez que aparece um resultado no receiver que [e o arduino UNO, o led do arduino mega pisca, indicando funcionamento.
Tá aqui o codigo:
// Wire Master Writer
// by Nicholas Zambetti a href="http://www.zambetti.com>">http://www.zambetti.com>;
// Demonstrates use of the Wire library
// Writes data to an I2C/TWI slave device
// Refer to the "Wire Slave Receiver" example for use with this
// Created 29 March 2006
// This example code is in the public domain.
int led = A7;
#include <Wire.h>
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
pinMode(led, OUTPUT);
}
byte x = 0;
void loop(){
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
Wire.beginTransmission(4); // transmit to device #4
Wire.write("x is "); // sends five bytes
Wire.write(x); // sends one byte
Wire.endTransmission(); // stop transmitting
x++;
delay(500);
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(500);
}
Teste 3 - Eu simplesmente desliguei o arduino UNO ou seja o slave_receiver, - RESULTADO: o Arduino mega deixou de funcionar e processar, ou seja, quando se desliga o slave o master simplesmente para.
A DUVIDA: ISSO É NORMAL ??????????
Quer dizer, você criar uma aplicação onde um nucleo master se comunica com algum periferico, e se esse for desplugado o master para de funcionar???? e todo o restante do processamento? e se a comunicação for só pra uma funcao de visualização e o importante mesmo for o processamento no nucleo master, então tudo sera travado se um slave cair ????