6-контактный BME280 не дает сигнала 12C

Обновленное изображениеЯ создаю пакет телеметрии для модели моей мамы с MPU6050, BME280 и устройство чтения/записи SD. Весь код, который я нашел для BME, не считывает никакой информации. Когда я загружаю средство проверки I2C, MPU дает сигнал, но 12C дает «Сигнал i2c не найден». все схемы подключения одинаковые, я пробовал разные платы и пробовал разные коды. ничего не работает.

, 👍-1

Обсуждение

* 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


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