ESP и датчик HTU21 = тормоза
- diman27
- Сержант
- Сообщения: 291
- Зарегистрирован: 06 сен 2015, 07:33
- Откуда: Белово
- Благодарил (а): 4 раза
ESP и датчик HTU21 = тормоза
Привет всем. Есть часы на ленте ws2812, все работает отлично, но при добавлении датчика HTU21 бегущая строка начинает безбожно тупить, с DS все хорошо, но нужна и влажность. Может дело в блоке или библиотеке? Ни кто не сталкивался?
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
ESP и датчик HTU21 = тормоза
Немного любопытства и желания, и сможете найти информацию о необходимом времени для осуществления замеров температуры и влажности самим датчиком. Потом увидите как это реализовано в библиотеке (через delay) и выберите для себя решение - другая библиотека или период опроса датчика в Вашей программе.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
ESP и датчик HTU21 = тормоза
Попробуйте блок с библиотекой от ecoins
Датчик температуры и влажности типа 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.
Описание:Датчик температуры и влажности типа 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.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
ESP и датчик HTU21 = тормоза
Посмотрел и код блока -
[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 поставить(если их нет).
[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 поставить(если их нет).
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
ESP и датчик HTU21 = тормоза
Фрагменты из библиотеки
[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]
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
ESP и датчик HTU21 = тормоза
Спасибо, не заметил delay(55)
Закажу датчик, сделаю библиотеку без "тормозов".
Закажу датчик, сделаю библиотеку без "тормозов".
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
ESP и датчик HTU21 = тормоза
Попробую без датчика сделать библиотеку. Наверное через несколько дней - есть другая незаконченная работа.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя