Ich habe Probleme bei der Kommunikation zwischen Arduino über I2C. Aus irgendeinem Grund wird der Handler onReceive
nur einmal aufgerufen.I2C onReceive-Handler nur einmal aufgerufen
Master-Code (Sender):
#include <Wire.h>
#include "i2csettings.h" // defines address
void setup()
{
Wire.begin(I2C_MASTER_ADDRESS);
}
void loop()
{
Wire.beginTransmission(I2C_SLAVE_ADDRESS);
Wire.write(0x11);
Wire.endTransmission();
delay(1000);
}
Slave-Code (Empfänger):
#include <Wire.h>
#include "i2csettings.h"
void takeAction(int);
void setup()
{
Serial.begin(9600);
Wire.begin(I2C_SLAVE_ADDRESS);
Wire.onReceive(takeAction);
}
void loop()
{}
void takeAction(int nBytes)
{
Serial.println("Action!");
}
Die Idee bei diesem Test-Setup der Sender ein Byte senden jeden zu haben ist Zweitens, und lassen Sie den Empfänger darauf reagieren, indem Sie eine Nachricht drucken. Die Nachricht wird jedoch nur einmal gedruckt. Wenn ich den Slave zurücksetze, wird er erneut gedruckt, aber nur einmal.
Irgendwelche Ideen, woher das kommen könnte?
Vielen Dank! Sehr gut zu wissen, auch wenn das Projekt vor einiger Zeit zu Ende gegangen ist. Ich werde dies für die Zukunft in Erinnerung behalten und werde die Antwort akzeptieren, wenn ich die Möglichkeit habe, dies zu bestätigen. – JorenHeit