Связь I2C, ESP->Nano на endTransmission без ACK от nano
Я пытаюсь установить связь между ESP (главным) и arduino nano (ведомым). Это только прототип и все работает отлично. Но я хочу добавить несколько ардуино, и поэтому мне нужно определить, подключено ли ардуино.
Я использую функцию возврата из wire.endTransmission, как показано в сканере i2c, для обнаружения устройств. Но это не работает.
На ардуино у меня есть эта программа:
#include <Wire.h>
const int16_t I2C_SLAVE = 0x22; // 0x22 = 34 cize izba 3(30)
void setup() {
Wire.begin(I2C_SLAVE);
}
void loop() {
// поместите сюда ваш основной код для многократного запуска:
}
на ESP я пытаюсь это сделать:
Wire.beginTransmission(I2C_adress[adress]);
int error = Wire.endTransmission();
Serial.println(error);
Он возвращает только 2 (получен NACK при передаче адреса) Почему? Когда у меня есть другой код на подчиненном устройстве (с onRecive и onRequest все работает и общается)
Спасибо.
@Tomas, 👍0
Обсуждение1 ответ
Лучший ответ:
Я дурак, я пытался определить другие устройства в функции настройки до Wire.begin(PIN_SDA, PIN_SCL, I2C_MASTER);
Я нашел это только благодаря вам. Резиновая уточка. Я начал записывать программу, чтобы разместить ее здесь, и бинго.
Именно по этой причине у мастера был "NACK" отвечать. Мастер еще не запущен.
Спасибо
- Как назначить точке доступа ESP8266 имя хоста, которое может быть разрешено станциями?
- Как передать AT-команды Лоре из UART ESP32?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- ESP32: отключить детектор отключения питания
- Преобразование строки в IP-адрес
- Использование esp-wroom-32 без платы разработки
у вас есть два адуино с вышеуказанной программой?, @jsotola
Пожалуйста, покажите полные компилируемые программы для Arduino и ESP., @chrisl
Спасибо вам, ребята., @Tomas