Значения находятся в интервале в течение заданного времени.
- Войдите на сайт для отправки комментариев
Здравствуйте, как сделать условие, чтобы действие выполнялось, только если значения с датчика находятся в определенном интервале в течение заданного времени. У меня весы подключены к ардуино и LCD экран.
Нужно чтобы когда поставиться определенный вес, то что-то должно выполнится, только если этот вес (точнее интервал, так как значения веса с датчиков постоянно колеблется) находится на весах некоторое время.
А также это нужно чтобы предотвратить установку веса руками.
Сейчас это сделано так, что значение считывается, проверяется условие, если оно находится в интервале, потом через delay значение считывается еще раз и проверяется опять. Но тогда на экране на время delay зависает какое-то значение, а нужно чтобы постоянно там отображался вес на весах.
для начала сделайте стопятьсот коротких делаев циклом for и перед каждым отображайте новое значение.
захочется большего изучите как делать задержку без delay через millis
Здравствуйте, как сделать условие, чтобы действие выполнялось, только если значения с датчика находятся в определенном интервале в течение заданного времени. У меня весы подключены к ардуино и LCD экран.
У меня тоже проект с весами - логика простая. В "спящем" режиме вес контролируется, скажем, раз в 5 минут. Если при очередном взвешивании вес попал в нужный интервал - начинаем считывать его чаще, например раз в минуту. Считываем нужное время (частоту считывания лучше выбрать так, чтобы в "заданное время" попало не 1-2, а 5-10 замеров). Если любое из этих значений будет вне интервала - выходим из цикла проверки веса и снова возвращаемся в спящий режим.
Delay() выкиньте совсем. Прочитайте чуть выше прикрепленные темы про "блинк без делай"