Я пытаюсь общаться, читать и писать от Arduino - подчиненного - до RPi - master - с Android Things.
Если я R / W, с преобразователем уровня, от RPi до Arduino 5v (16 МГц)), все работает отлично.
Поэтому я решил исключить преобразователь уровня и использовать 3v3 Arduino mini pro (8 МГц).
Запись работает нормально, но когда я пытаюсь прочитать изArduino, сигнал останавливается.
5v_16Mhz
После установки на 9, адрес 0, и считывание до 9, сигнал все еще низкий и получил данные.Нет проблем.
3v3_8Mhz
После настройки на адрес 9, 0 и чтения на 9 сигнал повышается и данные останавливаются.
Я использовалтот же пример для Slave:
#include <Wire.h>
byte RFID[20] = {9,8,7,6,5,4,3,2,1,1,2,3,4,5,6,7,8,9,1,2};
void setup() {
Wire.begin(8); // join i2c bus with address #8
Wire.onRequest(requestEvent); // register event
Wire.onReceive(receiveEvent); // register event
Serial.begin(115200); // start serial for output
pinMode(13, OUTPUT);
}
void loop() {
delay(100);
}
// function that executes whenever data is requested by master
// this function is registered as an event, see setup()
void requestEvent() {
Serial.println("Master ask");
digitalWrite(13, HIGH);
delay(250);
Wire.write(RFID, 20);
digitalWrite(13, LOW);
}
// function should be executes whenever data is received from master
// this function is registered as an event, but it's called every time the RPi
// call the Device.
void receiveEvent(int howMany) {
while (0 < Wire.available()) {
byte RTC_syn = Wire.read(); // receive byte
Serial.println(RTC_syn);
}
}
Я действительно не знаю, как высокий уровень сигнала ...
Кто-то может мне помочь?