//Code for arduino 2
void loop() {
// put your main code here, to run repeatedly:
byte request[10];
byte requestreceived=recvMsg(fAvailable,fRead,request,sizeof(request));
if(requestreceived){
Serial.println("Wakey Wakey");
int i;
for(i=0;i<3;i++){
Serial.println(request[i]);
}
delay(1500); //Change wait time accordingly during presentation
byte jumbo[]={0,65,135}; //address,lower range,higher range -set accordingly
digitalWrite(ENABLE_PIN,HIGH);
sendMsg(fWrite,jumbo,sizeof(jumbo));
delayMicroseconds(660);
/*while (!(UCSR0A & (1 << UDRE0))) // Wait for empty transmit buffer
UCSR0A |= 1 << TXC0; // mark transmission not complete
while (!(UCSR0A & (1 << TXC0))); */ // Wait for the transmission to complete
digitalWrite(ENABLE_PIN,LOW);
Serial.println("Reciprocated");
}
}
//Code for arduino 1
//only relevant part posted
byte request[]={0,1,0};
if(speeddatareceived==true){
digitalWrite(ENABLE_PIN,HIGH);
sendMsg(fWrite,request,sizeof (request));
delayMicroseconds(660);
/* while (!(UCSR0A & (1 << UDRE0))) // Wait for empty transmit buffer
UCSR0A |= 1 << TXC0; // mark transmission not complete
while (!(UCSR0A & (1 << TXC0)));*/ // Wait for the transmission to complete
digitalWrite(ENABLE_PIN,LOW);
Serial.println("Message sent");
delay(2500); //fix delaytime so that no message is missed out
}
//receive response
byte message[10];
byte received=recvMsg(fAvailable,fRead,message,sizeof(message));
if((received)&&(speeddatareceived==true)){
// put in main response
Serial.println("Action");
}
Arduino 1 successfully prints "Message sent".
Arduino 2 successfully prints
Wakey Wakey
0
1
0
Reciprocated
But arduino1 does not receive jumbo[].
Wiring: Same as the figure on Gammon forum, resistors connected on arduino 1 side.