6-контактный BME280 не дает сигнала 12C
Я создаю пакет телеметрии для модели моей мамы с MPU6050, BME280 и устройство чтения/записи SD. Весь код, который я нашел для BME, не считывает никакой информации. Когда я загружаю средство проверки I2C, MPU дает сигнал, но 12C дает «Сигнал i2c не найден». все схемы подключения одинаковые, я пробовал разные платы и пробовал разные коды. ничего не работает.
@ModelRocketeer, 👍-1
Обсуждение1 ответ
@ModelRocketeer. Я ценю ваше разочарование и надеюсь, что это поможет.
Прежде всего, вы должны убедиться, что плата подключена правильно, и никто не может догадаться, правильно ли она подключена, потому что вы не показали нам этого, и это расстраивает нас, потому что мы хотели бы помочь.
Вот очень похожая плата, прикрепленная к D1 mini.
Если я переверну его, чтобы показать названия сигналов, И выровняю его правильно, можно увидеть, как он подключен... или это просто сбивает с толку, потому что он перевернут.
- НО почему бы просто не рассказать нам об этом, например:
D1 mini<->280 3.3v <-> Vcc GND <-> GND D1 <-> SCL D2 <-> SDA
И покажите нам четкую картину, потому что многие смотрят на нее, что может повысить вероятность решения проблемы.
Кстати: использование цветных потенциальных клиентов помогает при проверке.
У меня есть несколько таких универсальных плат 280 — они дешевые, и когда я купил свою, они продавались как BME280, но оказалось (после нескольких часов разочарования), что на самом деле это были BMP280. Судя по всему, плата может держать и то, и другое. Будьте предупреждены.
Я проверил свою плату с помощью D1, такого как ваша, на 3,3 В, и UNO на 5,0 В, и они оба работали.
Затем я протестировал заведомо известный BME280, и он отлично работал с D1 mini.
Во ВСЕХ случаях я смог использовать сканер портов и увидеть адрес I2C (0x76).
Поскольку вы не смогли обнаружить какое-либо соединение через I2C для платы, но можете обнаружить порт для MPU6050, я думаю, вам необходимо сделать следующее:
Убедитесь, что у вас правильное подключение.
Удалите MPU6050, подключите только BMP/BME и запустите сканер.
Если вы по-прежнему ничего не видите, я бы сказал, что плата заблокирована. Поскольку вы сказали, что протестировали несколько плат, я подозреваю (как и другие), что вы не подключили их должным образом.
Когда вы подключите его правильно и увидите порт при сканировании, попробуйте запустить программное обеспечение BME, но если вы используете программы Adafruit, вам может потребоваться форсировать I2C, поскольку это не плата Adafruit. Последний может использовать как I2C, так и SPI.
Если вы по-прежнему не получаете результатов, подумайте, что на самом деле это может быть BMP280, и попробуйте программное обеспечение для него.
В любом случае сообщите нам, что произойдет.
Вы ждали, пока я закончу отвечать, чтобы заставить его работать? :), @DrG
Вроде бы так, но я отошел от него на несколько часов, а когда вернулся к нему, я все переделал, и он «заработал», хотя значение давления, единственное, что мне нужно, это дать мне абсурдное значение и сказать, что я м 32000 футов в воздухе., @ModelRocketeer
Да, он не может определить точную высоту самостоятельно - см. https://arduinoprosto.ru/q/44715/bmp-280-exact-altimeter-readings., @DrG
- Передача функции-члена класса в качестве аргумента
- контент» не захватывается
- esp32 Stack canary watchpoint срабатывает
- Проблемы с подключением I2C на ESP8266 — 12F, какие контакты использовать?
- Преобразование byte* в int в Arduino
- Как передать нестатический член класса в обратный вызов?
- ESP8266: ошибка: 'getLocalTime' was not declared in this scope
- esp8266-01 и Arduino UNO обмен данными через i2c
* Re: 12C выдает «Сигнал i2c не найден» * I2C (я предполагаю) не может говорить. Итак, о чем именно сообщает это сообщение. Библиотека? Какая библиотека? Ваш код? Какой код? Если у вас возникли проблемы с обнаружением устройств I2C, обычно запускайте скетч I2CScanner, прежде чем пытаться что-то конкретное для датчиков., @timemage
Когда вы не даете нам больше информации, это затрудняет помощь. BME280 может использовать I2C ИЛИ SPI. Если он находится на плате, настроенной для SPI, это может быть вся проблема ... или что-то еще. Изображение платы или схема цепи очень помогли бы., @DrG
Извините не уточнил. Код, который я использовал, был кодом сканера 12C., @ModelRocketeer
Базовая отладка: попробуйте минимальную настройку — подключите к ЦП только BME280, а не другие части. Запустите сканер I2C. Также дайте нам знать, К ЧЕМ вы его подключаете и как именно вы его подключили?, @romkey
Из таблицы данных «Выбор интерфейса выполняется автоматически на основе состояния CSB (выбор микросхемы). Если CSB подключен к VDDIO, интерфейс I²C активен. Если CSB опущен, активируется интерфейс SPI. После того, как CSB был опущен один раз (независимо от того, произошел ли какой-либо тактовый цикл), интерфейс I²C отключен до следующего сброса при включении питания». Опять же, может быть, покажите нам изображение платы или схемы?, @DrG
На вашем изображении не показаны VCC и GND, подключенные к вашему BME280. Если это не ваша фактическая проводка, покажите свою фактическую проводку., @timemage
Это фактическая проводка, но плата перевернута., @ModelRocketeer
Это модуль 3,3 В или 5 В?, @DrG
на картинке нет подключения к питанию и заземления ... вы пытаетесь *управлять ракетой без двигателя*, @jsotola
Вы имеете в виду, что он перевернут слева направо и что в реальном использовании CSB и SDO не связаны? На самом деле вы должны просто сфотографировать его подключенным, чтобы не путать людей., @timemage
извините, я плохо загружаю правильную картинку, все работает, за исключением значения давления за пределами графика., @ModelRocketeer