Tags:
Bom dia RES,
não entendi:
1. " o Arduino UNO (master) solicita ao slave as leituras,"
2. " Não estou conseguindo ler estes valores no arduino master através da I2C. "
RV
Boa tarde,
Já fiz a comunicação I2C entre dois Arduinos em 2014.
http://labdegaragem.com/forum/topics/projeto-alarme-sem-fio-arduino...
Poste os programas que esta usando. Lembre-se dos resistores de pullup da interface I2C.
Boa noite Murta,
sim, no Sketch estou usando os resistores.
Vou estudar seu código e tentar resolver meu problema.
Segue os códigos:
/**
*
* MESTRE: UNO
*
*/
#include <Wire.h>
#define SLAVE 0x0A
int estadoLed = 0;
void setup()
{
Wire.begin();
Serial.begin(9600);
}
void loop()
{
// Recebe do escravo de endereço 0x0A a mensagem de 2 bytes.
Wire.requestFrom(SLAVE, 2);
while (Wire.available())
{
int sensorValue1 = Wire.read();
int sensorValue2 = Wire.read();
Serial.println(sensorValue1);
Serial.println(sensorValue2);
}
delay(1000);
}
/*
*
* SLAVE: ARDUINO NANO
*
*/
#include <Wire.h>
#define LED 4
#define SLAVE 0x0A
int sensorPin1 = A0;
int sensorPin2 = A1;
int sensorValue1 = 0;
int sensorValue2 = 0;
void setup()
{
Wire.begin(SLAVE);
Serial.begin(9600);
Wire.onRequest(requestEvent);
pinMode(LED, OUTPUT);
}
void loop(){}
void requestEvent()
{
sensorValue1 = analogRead(sensorPin1);
sensorValue1 = sensorValue1/4; //divisão realizada devido a resolução de 10bits
Wire.write(sensorValue1);
sensorValue2 = analogRead(sensorPin2);
sensorValue2 = sensorValue2/4;
Wire.write(sensorValue2);
Serial.println(sensorValue1);
Serial.println(sensorValue2);
}
Boa noite,
A comunicação entre os dois Arduinos, foi feita pelos pinos Analog 4 (SDA) e pino Analog 5 (SCL) .
Usei resistores de 4,7K ohms para pullup nas duas linhas (conectados ao +5V) .
Não se esqueça de conectar o terra dos dois Arduinos.
Murta,
tomei o cuidado com os gnd's e os pinos SDA e SCL. Os resistores tbm estão conectados.
O que está ocorrendo é o seguinte, o master 'pergunta' ao slave sobre os valores lidos na analogicas, e fica aguardando a resposta, porem quando o master recebe as respostas, estão diferentes das leituras feitas pelo slave. observe que eu plotei na serial tanto do master quanto do slave, e as mesmas não 'batem'. Desde já agradeço sua ajuda
Bom dia,
Você testou o meu programa?
Entendeu como funciona?
Poste também o programa que esta tentando usar. Anexe o arquivo por favor.
Não cole aqui.
Boa noite Murta,
vi as sugestões de como postar no LdG. Farei como as dicas. Muito Obrigado.
Sobre a minha discussão aberta, depois da ajuda de vcs e algumas imersões em livros consegui fazer com que dois ou mais arduino nano slaves se comuniquem com o Mestre.
Confesso a vcs que depois da aplicação pronta achei uma "gambiarra" e vou portar toda a estrutura para os circuitos integrados dedicados para isso como os PCF8574, entre tantos.
Muito obrigado a vcs, e contem comigo.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por