Wenn ich den Übertragungscode vom Slave entferne, funktioniert dies ordnungsgemäß, aber ich muss vom Slave senden.
Hier ist mein Mastercode
#include <Wire.h>
void setup() {
Wire.begin(3);
Wire.onReceive(receiveEvent);
}
byte x = 0;
void loop() {
Wire.beginTransmission(9);
Wire.write("s");
Wire.write(x);
Wire.endTransmission();
x++;
delay(500);
}
void receiveEvent(int howMany) {
if(Wire.available()){
int x = Wire.read();
Serial.println(x);
}
}
Hier ist mein Slave-Code:
#include <Wire.h>
void setup() {
Wire.begin(9); // join i2c bus with address #9
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop() {
delay(100);
}
void receiveEvent(int howMany) {
if(Wire.available()){
char c = Wire.read();
Serial.print(c);
if(c == 's'){
int x = Wire.read();
Serial.println(x);
//transmit to master
Wire.beginTransmission(3);
Wire.write(1);
Wire.endTransmission();
} else {
Wire.read();
}
}
}
Ist es möglich, Wire.onRequest (requestCallback) nicht zu verwenden? Daten an den Master senden? Freundlich helfen.