Я пытаюсь подключить Raspberry Pi 3 с Windows 10 IoT Core к Arduino Uno R3 через I2C, чтобы отправить некоторые данные с Pi на Arduino.
Либо Arduino I2cDevice в C # оценивается как ноль, либо нет, но когда я отправляю данные, Arduino ничего не получает.
Мой код Arduino
void receiveEvent(int howMany) {
while (1 < Wire.available()) {
char c = Wire.read();
Serial.print(c);
}
int x = Wire.read();
Serial.println(x);
}
Мой код Raspberry Pi
var i2cSettings = new I2cConnectionSettings(0X26);
i2cSettings.BusSpeed = I2cBusSpeed.FastMode;
var devices = await DeviceInformation.FindAllAsync(I2cDevice.GetDeviceSelector());
var arduino = await I2cDevice.FromIdAsync(devices[0].Id, i2cSettings);
arduino.Write(Encoding.ASCII.GetBytes("Hello world"));
Изменить: я не знаю, если это что-то меняет, но у меня также есть сенсорный экран, подключенный к Raspberry Pi.
Я не уверен, является ли это тем же самым, что я испытал в прошлом. В связи с разным напряжением между версией Arduino 5V и Raspberry Pi, вам нужно использовать регулятор уровня в середине соединения.
https://core-electronics.com.au/tutorials/how-to-use-logic-level-shifters-converters.html
Других решений пока нет …