Остановка генератора на время опроса датчиков.

В данный форум Вы можете заносить найденные Вами ошибки.При добавления ошибки пожалуйста приложите файлик error.log который находится в папке с установленной программой
Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

Остановка генератора на время опроса датчиков.

#21

Сообщение Siberian » 01.02.2017{, 12:45}

support писал(а):Ну с DHT ситуация ещё хуже. Его опрос занимает 0.8 секунды. Попробуйте HTU-21. Он опрашивается намного быстрее, да и точнее он.
Этот вариант и придется применять...

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Остановка генератора на время опроса датчиков.

#22

Сообщение Слимпер » 01.02.2017{, 12:50}

support писал(а):Ну с DHT ситуация ещё хуже
Глянул библиотеку, да там только  delay() 270мс пауза на каждое чтение данных,  а если читать и влажность и температуру, то пауза получится в  540 мс. Даааа, ну зачем так делать??? Я конечно понимаю, что так проще, но коряво же.

Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Остановка генератора на время опроса датчиков.

#23

Сообщение Boroda » 01.02.2017{, 13:35}

Слимпер, да конечно! Привяжись к таймеру Millis и делай свои задержки без помех основной программе. Ну библиотеки писали люди, далекие от программирования, отсюда и результат.
Последний раз редактировалось Boroda 01.02.2017{, 13:36}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Остановка генератора на время опроса датчиков.

#24

Сообщение Слимпер » 01.02.2017{, 15:58}

Нашел другую библиотеку, которую похоже писал более грамотный человек.
Там даже функция авто определения типа датчика реализована. 

Сделал на ее основе блок для DHT.
Провел простые испытания
Результаты первых тестов максимальная задержка при работе блок  20мс, против 505мс у того, что используется сейчас с FLProg  

К стати:
 - Максимальная частота дискретизации DHT11 составляет 1 Гц ( Период опроса>= 1000 мс)
 - Максимальная частота дискретизации DHT22 составляет 0,5 Гц ( Период опроса>= 2000 мс)
Это из разный источников длительность периода измерения, хотя встречали и меньше период  опроса.  

support, будет время попробуй, если будет нормально работать, может стоит заменить в программе. 

Siberian, попробуйте может чем поможет.

Кстати на счет работы меню, я обычно запрещаю работу всего лишнего (опрос датчиков, исполнительных механизмов, передачу данных по интерфейсам ) при работе с меню.
Вложения
DHT_NEW-CODE-.ubi
(126.76 КБ) 53 скачивания

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

Остановка генератора на время опроса датчиков.

#25

Сообщение Siberian » 01.02.2017{, 16:37}

Слимпер писал(а):Нашел другую библиотеку, которую похоже писал более грамотный человек.
Там даже функция авто определения типа датчика реализована. 

Сделал на ее основе блок для DHT.
Провел простые испытания
Результаты первых тестов максимальная задержка при работе блок  20мс, против 505мс у того, что используется сейчас с FLProg  

К стати:
 - Максимальная частота дискретизации DHT11 составляет 1 Гц ( Период опроса>= 1000 мс)
 - Максимальная частота дискретизации DHT22 составляет 0,5 Гц ( Период опроса>= 2000 мс)
Это из разный источников длительность периода измерения, хотя встречали и меньше период  опроса.  

support, будет время попробуй, если будет нормально работать, может стоит заменить в программе. 

Siberian, попробуйте может чем поможет.

Кстати на счет работы меню, я обычно запрещаю работу всего лишнего (опрос датчиков, исполнительных механизмов, передачу данных по интерфейсам ) при работе с меню.
Спасибо! Обязательно попробую!
К сожалению, при работе меню я не могу запретить опрос датчиков, т.к. всё должно продолжать работать при настройках в меню, так-же есть еще генераторы, которые подключаются при работе.

Добавлено (01.02.2017, 16:37)
---------------------------------------------
Не подгружается библиотека...

Изображение

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 27
Откуда: Новосибирск

Остановка генератора на время опроса датчиков.

#26

Сообщение Слимпер » 01.02.2017{, 17:20}

Siberian писал(а):Не подгружается библиотека...
Вот отдельно, распаковать в c:\Program Files (x86)\FLProg\ideV1\libraries\
Или запусть FLProg c  правами администратора, тогда должно сработать и так.
Вложения
DHT_NEW.rar
(40.88 КБ) 50 скачиваний

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

Остановка генератора на время опроса датчиков.

#27

Сообщение Siberian » 01.02.2017{, 17:32}

Слимпер,

Огромный Респект!!!
Работает Замечательно!
Разница со штатным ЗЕМЛЯ И НЕБО!!!

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 790
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Остановка генератора на время опроса датчиков.

#28

Сообщение support » 01.02.2017{, 19:41}

Поздновато вы выложили библиотеку)))). В версии 2.3.1 она уже не появится. Я уже подготовил релиз, и скоро выложу. В следующей версии заменю штатную новой.  Не могу пока проверить на железе,но думаю пойдёт. Есть только один вопрос (раз уж Вы с ней работали). Меня смущает в ней одна функция

 

Код: Выделить всё

int getMinimumSamplingPeriod() { return model == DHT11 ? 1000 : 2000; }
 Я так понимаю DHT11 нельзя опрашивать чаще раза в секунды а остальные - чаще раза в 3 секунды. Вы не пробывали чаще, это работает?
Автор программы FLProg.

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

Остановка генератора на время опроса датчиков.

#29

Сообщение Siberian » 01.02.2017{, 20:19}

support писал(а): Я так понимаю DHT11 нельзя опрашивать чаще раза в секунды а остальные - чаще раза в 3 секунды. Вы не пробывали чаще, это работает?
Подключил DHT22.
Период опроса пробовал 1000 миллисекунд и 500 миллисекунд, работал стабильно, по генераторам даже не заметно, что затрачивается время на опрос.

Единственное, я проверял на стандартной влажности 35-50%, на высокой, порядка 80-90% не проверял, хотя для самой библиотеки это не имеет значения.

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 790
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Остановка генератора на время опроса датчиков.

#30

Сообщение support » 01.02.2017{, 20:41}

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
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

Остановка генератора на время опроса датчиков.

#31

Сообщение Siberian » 05.02.2017{, 12:55}

support писал(а):Внимательней изучил библиотеку. В общем эти ограничения зашиты в неё. Если время минимального периода опроса не прошло, запрос на чтение датчика просто пропускается.
Более детально поэкспериментировал, да, изменения происходят с периодом примерно около трех секунд, не зависимо от заданного, если конечно заданное не более 3 сек. При большем значении, выше 3 сек., опрос уже работает по заданному периоду.

С этой библиотекой очень большой плюс с быстродействием опроса, что сильно отражается на генераторах (если таковые присутствуют в проекте.

Добавлено (05.02.2017, 12:55)
---------------------------------------------
Библиотека от Слимпер DHT_NEW работает отлично!
Может ли кто в свободное время написать пользовательский блок (в качестве гуманитарной помощи) на основе урезанной библиотеки?

1. Температуру удалить совсем.
2. Время минимального опроса снизить хотябы до 2 секунд.
3. Авто опознавание датчика не нужно, нужен только DHT22.
4. Выход в блоке integer (не float).

Всё это мне нужно для того, чтобы библиотека "кушала" меньше ресурса.

Пробовал сам, но я не силен в "C", т.к. являюсь радиолюбителем времен СССР.

Спасибо!

a_sergeevich
Рядовой
Сообщения: 6
Зарегистрирован: 08.02.2016{, 18:01}
Репутация: 0

Остановка генератора на время опроса датчиков.

#32

Сообщение a_sergeevich » 05.02.2017{, 21:52}

не надо менять полностью старую библиотеку т.к эта быстрая не работает если в программе используются прерывания по таймеру 1, лучше сделать два блока один на старой и второй на новой.

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 790
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Остановка генератора на время опроса датчиков.

#33

Сообщение support » 06.02.2017{, 05:39}

В следующей версии библиотека будет уже новая
Автор программы FLProg.

Naladchik
Капитан
Сообщения: 824
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 153
Откуда: Новосибирск
Имя: Павел

Остановка генератора на время опроса датчиков.

#34

Сообщение Naladchik » 07.02.2017{, 05:25}

твари спамеры уже и сюда добрались
Win10-64. FLProg Portable.
Изображение

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 790
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Остановка генератора на время опроса датчиков.

#35

Сообщение support » 07.02.2017{, 09:54}

Убил)))))
Автор программы FLProg.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Остановка генератора на время опроса датчиков.

#36

Сообщение Олег » 07.02.2017{, 10:31}

Что-то в последнее время для них здесь как медом намазано

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 790
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Остановка генератора на время опроса датчиков.

#37

Сообщение support » 07.02.2017{, 11:16}

Ну с другой стороны приятно, значит набираем популярность, раз нас спамеры заметили.    Но я стараюсь их оперативно забивать
Автор программы FLProg.

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Остановка генератора на время опроса датчиков.

#38

Сообщение Сергей » 07.02.2017{, 19:12}

support писал(а):Но я стараюсь их оперативно забивать
Настолько оперативно, что даже я не успеваю   . Перехожу по ссылке из "рапорта о сообщении на форуме", а ничего уже нет).
support, оставьте мне на закуску   ,   .

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 790
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Остановка генератора на время опроса датчиков.

#39

Сообщение support » 07.02.2017{, 21:33}

Ну я вот скоро поеду на вахту, я их по ночам гасить буду а ты днём
Автор программы FLProg.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

Остановка генератора на время опроса датчиков.

#40

Сообщение Олег » 07.02.2017{, 22:49}

А пока никто из вас до них не добрался мы их будем минусовать  .

Ответить

Вернуться в «Новые»