Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Re: BMP280, датчик давления и температуры

Сб ноя 25, 2017 12:36:48

Значение высоты меня не интересует, хотя можно ради прикола получить мою высоту над уровнем моря. Но я себе такой задачи не ставил. Мне надо только давление показывать. Причем вывожу в мм рт. ст.

Сейчас пререподключил питание. Данные изменились. Я что-то не понял, датчик сам постоянно измеряет давление или его надо каждый раз запускать некое преобразование, как, к примеру, тот же DS18B20?

Albert_V писал(а):Ещё один вариант проверки

Это мысль. в принципе можно павербанк подключить для проверки. Правда у меня дом всего 5 этажей Но на 1 мм рт. ст. должны сменятся показания

Re: BMP280, датчик давления и температуры

Сб ноя 25, 2017 12:41:12

serg_svd писал(а): датчик сам постоянно измеряет давление или его надо каждый раз запускать
Это зависит от режима, заданного в Mode.
Я не проверял работу в "Normal", поскольку измерения делаю раз в 5 минут (у меня режим Forced).
serg_svd писал(а):на 1 мм рт. ст. должны сменятся показания
Выведите десятичный знак. Так будет проще при проверке.

Re: BMP280, датчик давления и температуры

Сб ноя 25, 2017 12:46:25

Да некуда выводить :) Я же в готовом устройстве применяю. Тут 3 семисегментника всего.

Конфиг такой

Re: BMP280, датчик давления и температуры

Сб ноя 25, 2017 12:53:04

Так сдвиньте число на знак влево для проверки.
serg_svd писал(а):Конфиг такой
Извините, но Си я не знаю.

Re: BMP280, датчик давления и температуры

Пн ноя 27, 2017 09:14:51

замерить давление на 1-ом этаже дома и на 12-ом.

Кстати, попробовал. С 1 по 5 этаж давление уменьшается на 1 мм рт. ст. Так что похоже работает.

Re: BMP280, датчик давления и температуры

Пн ноя 27, 2017 12:58:38

Поздравляю.
:beer:

Re: BMP280, датчик давления и температуры

Пн ноя 27, 2017 16:21:02

Спасибо!

Re: BMP280, датчик давления и температуры

Ср дек 13, 2017 22:51:43

Доброго времени суток. Пробую bmp280 калибровочные данные считываются, но в регистрах температуры и давления всегда дефолтные значения 0x80, 0, 0. Пробовал и normal и forced режимы, результат одинаковый. Какбудто сенсор не запускает измерения с регистра статуссчитывается всегда 0. Объясните плиз как датчику сказать чтобы он запустил измерения?

Re: BMP280, датчик давления и температуры

Ср дек 13, 2017 22:56:32

После записи в config и ctrl_meas, через какое время считываете данные?

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 07:05:40

пробовал и 10мс и 100мс
--
Обратите внимание на то что при INIT-е, вначале ей надо записать config и следом ctrl_meas (не наоборот).
--
вот это есть на первой странице тут
где то описано (в документации) в какой последовательности инициализировать надо и нужно ли делать soft reset
Последний раз редактировалось nkrk Чт дек 14, 2017 07:49:37, всего редактировалось 1 раз.

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 07:38:10

Слишком мало информации о том что вы (с)делали.
Программу сами пишите или у вас не работает нечто скаченное?

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 07:54:02

функции работы по i2c я стянул с инета
работу с датчиком пишу сам (в общемто пару функций накидать и понять что к чему должно быть просто)
использую atmega328
У меня уже есть реализованный датчик по i2c это гигрометр sht21
сейчас я подключил на туже шину bmp280 (на китайской платке с алиэкспреса)
думал уже экземпляр битый, поставил второй такой же результат один в один (калибровочные биты разные ;) )

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 08:00:20

Тогда скажите (не выкладывая код программы) последовательность ваших действий (вернее, вашей программы) учитывая времена, данные init-а и т.д..

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 08:05:15

опишу текущий код
инициализация UART
инициализация I2C
watchdog
включение прерываний
инициализация BMP (reset, чтение конфигурационных битов)
основной цикл
{
запись в 0xF4 = 0x2E
//запись в 0xF5 = 0x1 - в данный момент закоммнетировано
задержка 200мс
чтение 6 байт начиная 0xF7 и вывод
задержка 100мс
}

-----
напишите какие конфигурационные биты вы используете из приведенного кода не совсем ясно
Именно в хексе числами а не дефайнами
я пробовал в регистре 0xF4 = 0x2E и 0xF5 = 1
нужно ли устанавливать вообще чтото в 0xF5? видел примеры в инете что в него вообще ничего не пишется
Я пробовал и устанавливать 0xF5 и не устанавливать и даже писал всякую ерунду типа 0xFF - результат в регистрах значения 0x80,0x0,0x0

ps: поменял местами запись в 0xF4 и 0xF5 ничего не поменялось :((

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 08:40:56

Для начала, хорошо было бы вам скачать документацию и, иногда, заглядывать в неё.
0F5h = 1 - это вы "говорите" BMP что будете с ним общаться по SPI. После этого, датчик не будет работать по I2C до "передёргивания" питания.
Проверьте формат обращения к BMP по чтению и записи (Figure 7 и Figure 8 ).
Soft Reset лично я не делаю.
Очень рекомендую, при старте программы (после подачи питания), подождать порядка 100mS, "сказать" подряд START и STOP (без передачи данных) и после этого уже приступать к общению с датчиком.
Запишите в 0F4h число 27h и попробуйте считать данные через секунду (или считывайте постоянно).

Добавлено after 6 minutes 12 seconds:
В 0F5h пропишите 0h.

Добавлено after 4 minutes 2 seconds:
Кстати, судя по тем данным которые вы считываете - очень похоже, что реальной записи в 0F4 не было.

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 08:48:44

Думаю общение по i2c работает правильно, иначе бы я считать с датчика ничего бы не смог
попробовал добавить задержку вначале и вынес из цикла установку конфигурационных битов 0xF5=0x27

на счет того что датчик болшжен был уйти на spi интерфейс это да подозрительно както что продолжает отвечать по i2c
НО из памяти то данные у меня считываются, а значит запись по i2c работает

Хотя да думаю надо копать установку байтов по i2c

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 08:52:26

С адресом чтения/запись (младший бит) не запутались?

Добавлено after 2 minutes 8 seconds:
На всякий случай: При записи, auto-increment адреса BMP не поддерживает.

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 08:54:24

похоже пошли данные
T=0x7c:0xa1:0x0 P=0x57:0x74:0x0
T=0x7c:0x9f:0x0 P=0x57:0x73:0x0
T=0x7c:0x9d:0x0 P=0x57:0x73:0x0
T=0x7c:0x9a:0x0 P=0x57:0x75:0x0
T=0x7c:0x99:0x0 P=0x57:0x73:0x0
T=0x7c:0x94:0x0 P=0x57:0x70:0x0

я поменял немного отправку (запись) второго байта после отправки адреса
В конфиги сейчас устанавливаю 0xF5 = 0, 0xF4 = 0x27 результат выше


Спасибо !!!

ps: проверил порядок отправки регистров 0xF4 и 0xF5 - не влияет на работу

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 09:03:58

...проверил порядок отправки регистров 0xF4 и 0xF5 - не влияет на работу
Если работать в Normal Mode - на это можно не обращать внимание.
Если в Forced Mode и нужен Oversampling - 0F4h должен быть последним.

Re: BMP280, датчик давления и температуры

Чт дек 14, 2017 17:41:16

появились результаты после функций компенсации
T = 2478 что вполне соответствует правде (24,78градуса)
а вот давление непонятная цифра
P = 158966 ??? в каких это единицах? (оверсемплинг пробовал на 1 и на 4 результат схож)
нашел косяк, теперь все тип топ :)
Последний раз редактировалось nkrk Чт дек 14, 2017 20:24:52, всего редактировалось 1 раз.
Ответить