Связь I2C между двумя Arduino с обновленной библиотекой проводов
Я хотел бы включить связь между двумя Arduino 101. Из того, что я прочитал, лучший способ — использовать I2C с использованием библиотеки проводов. Однако кажется, что новейшая IDE Arduino имеет обновленную версию библиотеки Wire, которая больше не включает функции begin(int)
и onRequest
.
Все руководства по обмену данными I2C используют эти методы, поэтому я не могу следовать им и использовать их. Похоже, когда я меняю плату на Arduino Uno, эти функции обнаруживаются, но как только я меняю плату на Arduino 101, появляются следующие ошибки: нет соответствующей функции для вызова TwoWire::begin(int)
.
Когда я пытаюсь заменить свою библиотеку проводов на более старую версию, я получаю другие ошибки для отсутствующих библиотек, и если я заменю все, она не сможет скомпилироваться на Arduino 101.
Может ли кто-нибудь помочь мне или указать руководство по I2C, в котором используется самая последняя версия библиотеки Wire?
@cyrusbehr, 👍0
2 ответа
Проблема, которую я вижу, заключается в том, что Arduino 101 использует микропроцессор Intel (Curie) вместо микропроцессора Atmel.
Единственная информация, которую я смог найти, находится на странице Arduino 101, где упоминаются специальные выводы. для I2C, но там же написано, что можно использовать библиотеку Wire. Может быть, вам просто нужно обновить IDE?
Я бы помог еще, но не могу найти никакой полезной информации о Кюри...
Хотя мне не удалось наладить проводную связь, мне удалось заставить Arduino обмениваться данными через последовательный порт. Вам просто нужно убедиться, что вы используете Serial1, а не Serial.
- Отправка и получение различных типов данных через I2C в Arduino
- Как выбрать альтернативные контакты I2C на ESP32?
- Альтернативы библиотеке Wire для I2C
- Библиотека Wire.h работает на Uno, но не компилируется для ATtiny85
- Вызов I2C во время Wire.requestFrom
- I2C связь между Arduino Uno и Nodemcu32-s (ESP32)
- Как обнаружить ошибки I2C с помощью requestFrom()
- Проблемы с I2C и Wire.Available()