Этот вариант и придется применять...support писал(а):Ну с DHT ситуация ещё хуже. Его опрос занимает 0.8 секунды. Попробуйте HTU-21. Он опрашивается намного быстрее, да и точнее он.
Остановка генератора на время опроса датчиков.
- Siberian
- Лейтенант
- Сообщения: 637
- Зарегистрирован: 07 сен 2015, 11:51
- Откуда: СССР
- Имя: Александр
- Благодарил (а): 36 раз
- Поблагодарили: 5 раз
Остановка генератора на время опроса датчиков.
Остановка генератора на время опроса датчиков.
Глянул библиотеку, да там только delay() 270мс пауза на каждое чтение данных, а если читать и влажность и температуру, то пауза получится в 540 мс. Даааа, ну зачем так делать??? Я конечно понимаю, что так проще, но коряво же.support писал(а):Ну с DHT ситуация ещё хуже
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
Остановка генератора на время опроса датчиков.
Слимпер, да конечно! Привяжись к таймеру Millis и делай свои задержки без помех основной программе. Ну библиотеки писали люди, далекие от программирования, отсюда и результат.
Последний раз редактировалось Boroda 01 фев 2017, 13:36, всего редактировалось 1 раз.
Остановка генератора на время опроса датчиков.
Нашел другую библиотеку, которую похоже писал более грамотный человек.
Там даже функция авто определения типа датчика реализована.
Сделал на ее основе блок для DHT.
Провел простые испытания
Результаты первых тестов максимальная задержка при работе блок 20мс, против 505мс у того, что используется сейчас с FLProg
К стати:
- Максимальная частота дискретизации DHT11 составляет 1 Гц ( Период опроса>= 1000 мс)
- Максимальная частота дискретизации DHT22 составляет 0,5 Гц ( Период опроса>= 2000 мс)
Это из разный источников длительность периода измерения, хотя встречали и меньше период опроса.
support, будет время попробуй, если будет нормально работать, может стоит заменить в программе.
Siberian, попробуйте может чем поможет.
Кстати на счет работы меню, я обычно запрещаю работу всего лишнего (опрос датчиков, исполнительных механизмов, передачу данных по интерфейсам ) при работе с меню.
Там даже функция авто определения типа датчика реализована.
Сделал на ее основе блок для DHT.
Провел простые испытания
Результаты первых тестов максимальная задержка при работе блок 20мс, против 505мс у того, что используется сейчас с FLProg
К стати:
- Максимальная частота дискретизации DHT11 составляет 1 Гц ( Период опроса>= 1000 мс)
- Максимальная частота дискретизации DHT22 составляет 0,5 Гц ( Период опроса>= 2000 мс)
Это из разный источников длительность периода измерения, хотя встречали и меньше период опроса.
support, будет время попробуй, если будет нормально работать, может стоит заменить в программе.
Siberian, попробуйте может чем поможет.
Кстати на счет работы меню, я обычно запрещаю работу всего лишнего (опрос датчиков, исполнительных механизмов, передачу данных по интерфейсам ) при работе с меню.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Siberian
- Лейтенант
- Сообщения: 637
- Зарегистрирован: 07 сен 2015, 11:51
- Откуда: СССР
- Имя: Александр
- Благодарил (а): 36 раз
- Поблагодарили: 5 раз
Остановка генератора на время опроса датчиков.
Спасибо! Обязательно попробую!Слимпер писал(а):Нашел другую библиотеку, которую похоже писал более грамотный человек.
Там даже функция авто определения типа датчика реализована.
Сделал на ее основе блок для DHT.
Провел простые испытания
Результаты первых тестов максимальная задержка при работе блок 20мс, против 505мс у того, что используется сейчас с FLProg
К стати:
- Максимальная частота дискретизации DHT11 составляет 1 Гц ( Период опроса>= 1000 мс)
- Максимальная частота дискретизации DHT22 составляет 0,5 Гц ( Период опроса>= 2000 мс)
Это из разный источников длительность периода измерения, хотя встречали и меньше период опроса.
support, будет время попробуй, если будет нормально работать, может стоит заменить в программе.
Siberian, попробуйте может чем поможет.
Кстати на счет работы меню, я обычно запрещаю работу всего лишнего (опрос датчиков, исполнительных механизмов, передачу данных по интерфейсам ) при работе с меню.
К сожалению, при работе меню я не могу запретить опрос датчиков, т.к. всё должно продолжать работать при настройках в меню, так-же есть еще генераторы, которые подключаются при работе.
Добавлено (01.02.2017, 16:37)
---------------------------------------------
Не подгружается библиотека...

Остановка генератора на время опроса датчиков.
Вот отдельно, распаковать в c:\Program Files (x86)\FLProg\ideV1\libraries\Siberian писал(а):Не подгружается библиотека...
Или запусть FLProg c правами администратора, тогда должно сработать и так.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Siberian
- Лейтенант
- Сообщения: 637
- Зарегистрирован: 07 сен 2015, 11:51
- Откуда: СССР
- Имя: Александр
- Благодарил (а): 36 раз
- Поблагодарили: 5 раз
Остановка генератора на время опроса датчиков.
Слимпер,
Огромный Респект!!!
Работает Замечательно!
Разница со штатным ЗЕМЛЯ И НЕБО!!!
Огромный Респект!!!
Работает Замечательно!
Разница со штатным ЗЕМЛЯ И НЕБО!!!
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Остановка генератора на время опроса датчиков.
Поздновато вы выложили библиотеку)))). В версии 2.3.1 она уже не появится. Я уже подготовил релиз, и скоро выложу. В следующей версии заменю штатную новой. Не могу пока проверить на железе,но думаю пойдёт. Есть только один вопрос (раз уж Вы с ней работали). Меня смущает в ней одна функция
Я так понимаю DHT11 нельзя опрашивать чаще раза в секунды а остальные - чаще раза в 3 секунды. Вы не пробывали чаще, это работает?
Код: Выделить всё
int getMinimumSamplingPeriod() { return model == DHT11 ? 1000 : 2000; }
Автор программы FLProg.
- Siberian
- Лейтенант
- Сообщения: 637
- Зарегистрирован: 07 сен 2015, 11:51
- Откуда: СССР
- Имя: Александр
- Благодарил (а): 36 раз
- Поблагодарили: 5 раз
Остановка генератора на время опроса датчиков.
Подключил DHT22.support писал(а): Я так понимаю DHT11 нельзя опрашивать чаще раза в секунды а остальные - чаще раза в 3 секунды. Вы не пробывали чаще, это работает?
Период опроса пробовал 1000 миллисекунд и 500 миллисекунд, работал стабильно, по генераторам даже не заметно, что затрачивается время на опрос.
Единственное, я проверял на стандартной влажности 35-50%, на высокой, порядка 80-90% не проверял, хотя для самой библиотеки это не имеет значения.
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Остановка генератора на время опроса датчиков.
Внимательней изучил библиотеку. В общем эти ограничения зашиты в неё. Если время минимального периода опроса не прошло, запрос на чтение датчика просто пропускается.Siberian писал(а):Период опроса пробовал 1000 миллисекунд и 500 миллисекунд, работал стабильно, по генераторам даже не заметно, что затрачивается время на опрос.
void DHT::readSensor()
{
// Make sure we don't poll the sensor too often
// - Max sample rate DHT11 is 1 Hz (duty cicle 1000 ms)
// - Max sample rate DHT22 is 0.5 Hz (duty cicle 2000 ms)
unsigned long startTime = millis();
if ( (unsigned long)(startTime - lastReadTime) < (model == DHT11 ? 999L : 1999L) ) {
return;
}
lastReadTime = startTime;
temperature = NAN;
humidity = NAN;
// Request sample
digitalWrite(pin, LOW); // Send start signal
pinMode(pin, OUTPUT);
if ( model == DHT11 ) {
delay(18);
}
else {
// This will fail for a DHT11 - that's how we can detect such a device
delayMicroseconds(800);
}
.......
Так что можно поставить хоть раз в милисекунду, опрос все равно будет происходить не чаще разрешенного. И это хорошо, не будет выдавать ошибки. Кстати заработало и на DUE (старая библиотека не работала)
Автор программы FLProg.
- Siberian
- Лейтенант
- Сообщения: 637
- Зарегистрирован: 07 сен 2015, 11:51
- Откуда: СССР
- Имя: Александр
- Благодарил (а): 36 раз
- Поблагодарили: 5 раз
Остановка генератора на время опроса датчиков.
Более детально поэкспериментировал, да, изменения происходят с периодом примерно около трех секунд, не зависимо от заданного, если конечно заданное не более 3 сек. При большем значении, выше 3 сек., опрос уже работает по заданному периоду.support писал(а):Внимательней изучил библиотеку. В общем эти ограничения зашиты в неё. Если время минимального периода опроса не прошло, запрос на чтение датчика просто пропускается.
С этой библиотекой очень большой плюс с быстродействием опроса, что сильно отражается на генераторах (если таковые присутствуют в проекте.
Добавлено (05.02.2017, 12:55)
---------------------------------------------
Библиотека от Слимпер DHT_NEW работает отлично!
Может ли кто в свободное время написать пользовательский блок (в качестве гуманитарной помощи) на основе урезанной библиотеки?
1. Температуру удалить совсем.
2. Время минимального опроса снизить хотябы до 2 секунд.
3. Авто опознавание датчика не нужно, нужен только DHT22.
4. Выход в блоке integer (не float).
Всё это мне нужно для того, чтобы библиотека "кушала" меньше ресурса.
Пробовал сам, но я не силен в "C", т.к. являюсь радиолюбителем времен СССР.
Спасибо!
-
- Рядовой
- Сообщения: 6
- Зарегистрирован: 08 фев 2016, 18:01
Остановка генератора на время опроса датчиков.
не надо менять полностью старую библиотеку т.к эта быстрая не работает если в программе используются прерывания по таймеру 1, лучше сделать два блока один на старой и второй на новой.
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Остановка генератора на время опроса датчиков.
В следующей версии библиотека будет уже новая
Автор программы FLProg.
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Остановка генератора на время опроса датчиков.
Что-то в последнее время для них здесь как медом намазано
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Остановка генератора на время опроса датчиков.
Ну с другой стороны приятно, значит набираем популярность, раз нас спамеры заметили. Но я стараюсь их оперативно забивать
Автор программы FLProg.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
Остановка генератора на время опроса датчиков.
Настолько оперативно, что даже я не успеваю . Перехожу по ссылке из "рапорта о сообщении на форуме", а ничего уже нет).support писал(а):Но я стараюсь их оперативно забивать
support, оставьте мне на закуску , .
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Остановка генератора на время опроса датчиков.
Ну я вот скоро поеду на вахту, я их по ночам гасить буду а ты днём
Автор программы FLProg.
Остановка генератора на время опроса датчиков.
А пока никто из вас до них не добрался мы их будем минусовать .
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость