ESP и датчик HTU21 = тормоза

Вопросы от новичков
Ответить
Аватара пользователя
diman27
Сержант
Сообщения: 291
Зарегистрирован: 06 сен 2015, 07:33
Откуда: Белово
Благодарил (а): 4 раза

ESP и датчик HTU21 = тормоза

Сообщение diman27 »

Привет всем. Есть часы на ленте ws2812, все работает отлично, но при добавлении датчика HTU21 бегущая строка начинает безбожно тупить, с DS все хорошо, но нужна и влажность. Может дело в блоке или библиотеке? Ни кто не сталкивался?
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

ESP и датчик HTU21 = тормоза

Сообщение Ingwar »

diman27 писал(а): 11 июл 2020, 05:10 Может дело в блоке или библиотеке?
Немного любопытства и желания, и сможете найти информацию о необходимом времени для осуществления замеров температуры и влажности самим датчиком. Потом увидите как это реализовано в библиотеке (через delay) и выберите для себя решение - другая библиотека или период опроса датчика в Вашей программе.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
ecoins
Полковник
Сообщения: 4010
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 155 раз

ESP и датчик HTU21 = тормоза

Сообщение ecoins »

Попробуйте блок с библиотекой от ecoins
Test DHT_ecoins.flp
RT_21_HW_DHTx_v3.1.zip
Описание:
Датчик температуры и влажности типа DHT21.
------------------------------------------------------------------
Не поддерживает датчик DHT11 (к нему много претензий по точности и качеству)
Измеряет температуру и влажность воздуха:
1. Возвращает температуру воздуха в градусах С х10 (Выход T - формат int).
Для перевода в формат float результат нужно поделить на 10.
2. Возвращает влажность воздуха в % х10 (Выход H - формат int).
Для перевода в формат float результат нужно поделить на 10.
3. По конструктивным особенностям сенсора вызовы не должны бвть чаще чем 1 раз в 2 сек.
4. Запущенный процесс измерения занимает примерно 5,7мс - в это время процессор занят и реагирует
только на аппаратные прерывания, время обработки которого не должен превышать 30-50мкс -
это может привести к потери сигнала с сенсора и соответственно приведет к ошибке измерения.
5. После нескольких подряд ошибочных измерений (по умолчанию=3),
устанавливается ошибка, которая будет держаться до первого успешного измерения.
При ошибке выходным значениям T и H присваивается значение =1.
6. Если вход pin<0 или pin>=100, то сенсор считается неподключенным: T=1, H=1.
-----------------------------------------------------------------
Рекомендации - устанавливать на плате, которая вызывается с периодом >250мс - 1сек.
-----------------------------------------------------------------
ecoins@mail.ru 28.05.20 - полностью обновленная версия (3.1) библиотеки RT_HW_DHTx.h
Библиотека адаптирована для использования с FLProg.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
diman27
Сержант
Сообщения: 291
Зарегистрирован: 06 сен 2015, 07:33
Откуда: Белово
Благодарил (а): 4 раза

ESP и датчик HTU21 = тормоза

Сообщение diman27 »

А разве DHT и HTU одинаковые библиотеки используют?
ecoins
Полковник
Сообщения: 4010
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 155 раз

ESP и датчик HTU21 = тормоза

Сообщение ecoins »

HTU21 - он у Вас через подключается через пин или через i2c?
Аватара пользователя
diman27
Сержант
Сообщения: 291
Зарегистрирован: 06 сен 2015, 07:33
Откуда: Белово
Благодарил (а): 4 раза

ESP и датчик HTU21 = тормоза

Сообщение diman27 »

Через i2c.
ecoins
Полковник
Сообщения: 4010
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 155 раз

ESP и датчик HTU21 = тормоза

Сообщение ecoins »

Посмотрел и код блока -
[spoiler]void setup()
{
_HTU21_Instance.begin();
}
void loop()
{
//Плата:1
if( (_HTU21_StartTime ==0) || ( _isTimer(_HTU21_StartTime, 1000 ))) {
_HTU21_StartTime = millis();
_HTU21_HOut = _HTU21_Instance.readHumidity();
_HTU21_TOut = _HTU21_Instance.readTemperature();
}[/spoiler]
он простой, и библиотеку. Вроде никаких подводных камней не увидел.
Датчика под руками нет проверить.
Ничего подсказать не могу - если только подтягивающие резисторы 4.7-10к на шину i2c поставить(если их нет).
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

ESP и датчик HTU21 = тормоза

Сообщение Ingwar »

ecoins писал(а): 12 июл 2020, 10:30 Вроде никаких подводных камней не увидел.
Фрагменты из библиотеки

[scroll]float HTU21D::readHumidity(void)
{
//Request a humidity reading
Wire.beginTransmission(HTDU21D_ADDRESS);
Wire.write(TRIGGER_HUMD_MEASURE_NOHOLD); //Measure humidity with no bus holding
Wire.endTransmission();

//Hang out while measurement is taken. 50mS max, page 4 of datasheet.
delay(55);[/scroll]
[scroll]float HTU21D::readTemperature(void)
{
//Request the temperature
Wire.beginTransmission(HTDU21D_ADDRESS);
Wire.write(TRIGGER_TEMP_MEASURE_NOHOLD);
Wire.endTransmission();

//Hang out while measurement is taken. 50mS max, page 4 of datasheet.
delay(55);[/scroll]
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
ecoins
Полковник
Сообщения: 4010
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 155 раз

ESP и датчик HTU21 = тормоза

Сообщение ecoins »

Спасибо, не заметил delay(55)
Закажу датчик, сделаю библиотеку без "тормозов".
Аватара пользователя
diman27
Сержант
Сообщения: 291
Зарегистрирован: 06 сен 2015, 07:33
Откуда: Белово
Благодарил (а): 4 раза

ESP и датчик HTU21 = тормоза

Сообщение diman27 »

Так у меня датчик есть, могу протестировать.
ecoins
Полковник
Сообщения: 4010
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 155 раз

ESP и датчик HTU21 = тормоза

Сообщение ecoins »

diman27 писал(а): 13 июл 2020, 17:26 Так у меня датчик есть, могу протестировать.
Попробую без датчика сделать библиотеку. Наверное через несколько дней - есть другая незаконченная работа.
Ответить

Вернуться в «Начинающим»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя