Ik ben bezig met een school project waarbij ik een I2C verbinding nodig hebt tussen een arduino nano en een arduino uno.
Ik gerbuik de nano als slave en de uno als master. Het gaat hier om een master writer en een slave receiver.
Het probleem is wanneer ik twee arduino uno's gebruik en verbind komt de informatie netjes aan en werkt het zoals het moet werken, maar wanneer ik een uno en een nano wil verbinden komt er alleen -1 binnen(als ik het goed heb betekent het dat er geen informatie binnen komt). Ik heb alle kabels goed aangesloten. Iemand die ik ken heeft het ook geprobeerd en heeft precies hetzelfde probleem.
Voor extra info, ik gebruik de A4,A5 pinnen op de nano en de uno en heb gnd(uno) aan de gnd(nano) verbonden. De code die ik gebruik is van de arduino library zelf. Ik heb ook een foto toegevoegd van de serial monitor van de slave.
Ik hoop dat er iemand is die me met dit probleem kan helpen.
Master code:
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
}
byte x = 0;
void loop() {
Wire.beginTransmission(8); // transmit to device #8
Wire.write("x is "); // sends five bytes
Wire.write(x); // sends one byte
Wire.endTransmission(); // stop transmitting
Serial.println(x);
x++;
delay(500);
}
Slave code:
#include <Wire.h>
void setup() {
Wire.begin(8); // join i2c bus with address #8
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop() {
delay(100);
receiveEvent(8);
}
// function that executes whenever data is received from master
// this function is registered as an event, see setup()
void receiveEvent(int howMany) {
while (1 < Wire.available()) { // loop through all but the last
char c = Wire.read(); // receive byte as a character
Serial.print(c); // print the character
}
int x = Wire.read(); // receive byte as an integer
Serial.println(x); // print the integer