Как обновлять показания датчика DHT11 без DELAY?
- Войдите на сайт для отправки комментариев
Пнд, 12/08/2019 - 16:23
Здравствуйте! Имеется код, который я нашел на этой странице , в нем показания датчика DHT11 обновляются раз в секунду за счет задержки delay. Подскажите, пожалуйста, как сделать задержку без этой функции? Желательно с millis, так как я планирую задействовать дополнительное управление (лишние задерки не нужны). Пару десятков сайтов перелопатил, не нашел никакой информации. На всякий случай, продублирую здесь код. Спасибо!
// Interfacing Arduino with DHT11 humidity and temperature sensor // include LCD library code #include <LiquidCrystal.h> // include DHT library code #include "DHT.h" #define DHTPIN 8 // DHT11 data pin is connected to Arduino pin 8 // LCD module connections (RS, E, D4, D5, D6, D7) LiquidCrystal lcd(7, 6, 5, 4, 3, 2); #define DHTTYPE DHT11 // DHT11 sensor is used DHT dht(DHTPIN, DHTTYPE); // Initialize DHT library char temperature[] = "Temp = 00.0 C "; char humidity[] = "RH = 00.0 % "; void setup() { // set up the LCD's number of columns and rows lcd.begin(16, 2); dht.begin(); } void loop() { delay(1000); // wait 1s between readings // Read humidity byte RH = dht.readHumidity(); //Read temperature in degree Celsius byte Temp = dht.readTemperature(); // Check if any reads failed and exit early (to try again) if (isnan(RH) || isnan(Temp)) { lcd.clear(); lcd.setCursor(5, 0); lcd.print("Error"); return; } temperature[7] = Temp / 10 + 48; temperature[8] = Temp % 10 + 48; temperature[11] = 223; humidity[7] = RH / 10 + 48; humidity[8] = RH % 10 + 48; lcd.setCursor(0, 0); lcd.print(temperature); lcd.setCursor(0, 1); lcd.print(humidity); }
Тема на форуме блинк без делей. Вместо блинька поставить проверку датчика.
Пару десятков сайтов перелопатил, не нашел никакой информации.
ну ведь вранье же!
Тема на форуме блинк без делей. Вместо блинька поставить проверку датчика.
Пробовал использовать код Blink Without Delay, вместо строк
вставил функцию считываения
скетч выводит ошибку
пытаетесь использовать локальные переменные за пределами их области видимости. Почитайте что-нибудь про "область видимости переменных"
Судя по вопросу - вы в программировании чуть более чем ноль. Стоит для начала учебник почитать, прежде чем браться за скетчи сложнее блинка, иначе так и будете про каждую ошибку спрашивать.
Почитайте область видимости переменных. переменные должны быть видимыми для всех областей программы, в которых они используются. Строка 3 - зачем Вы здесь определяете переменную ? Вынесите её определение в самый верх скеча и будет Вам счастье.
Судя по вопросу - вы в программировании чуть более чем ноль. Стоит для начала учебник почитать, прежде чем брать за скетчи сложнее блинка.
Я уже закончил этот проект. Посмотрите, какой у меня код получился в конце темы, при этом мне в том топике помогли меньше половины кода написать.
Почитайте область видимости переменных. переменные должны быть видимыми для всех областей программы, в которых они используются. Строка 3 - зачем Вы здесь определяете переменную ? Вынесите её определение в самый верх скеча и будет Вам счастье.
Почитаю. Ну так, я как понимаю, если вынести переменные за пределы функции, то есть вернуть их на то же место, где стояли, код зарежки не будет работать.
Я уже закончил этот проект. Посмотрите, какой у меня код получился
зачем? - я и так вижу, какие вопросы вы задаете....
я как понимаю, если вынести переменные за пределы функции, то есть вернуть их на то же место, где стояли, код зарежки не будет работать.
если вынести с умом - то будет. А вот как вы делаете - нет.
Не надо выность переменные. Надо выносить их определение. В данном случае слово byte c содержимым. И всё ж сначала почитайте, а потом спрашивайте. С такими вопросами очень странно, что хоть один проект удалость завершить. И 4 страницы обсуждения того проекта говорят сами за себя. Обычно хвататает нескольких ответов для полного закрытия вопроса.
зачем? - я и так вижу, какие вопросы вы задаете....
Это единсвенная проблема, на которой я застрял, дальше я знаю что делать. Включать и выключать вентилятор по определенным показаниям, переключать авто и ручной режим я смогу легко, больше мне и не надо.
Это единсвенная проблема, на которой я застрял, дальше я знаю что делать. Включать и выключать вентилятор по определенным показаниям, переключать авто и ручной режим я смогу легко, больше мне и не надо.
почитал тут ветку, которой вы хвастаетесь - там вы застревали буквально на каждой строчке... назвать тот код "вашим" язык не поворачивается...
И так будет и впредь, пока вы не возьмете себе за труд разбраться с учебником от начала до конца. а не спрашивать каждый чих на форуме.
Это единсвенная проблема, на которой я застрял, дальше я знаю что делать. Включать и выключать вентилятор по определенным показаниям, переключать авто и ручной режим я смогу легко, больше мне и не надо.
почитал тут ветку, которой вы хвастаетесь - там вы застревали буквально на каждой строчке... назвать тот код "вашим" язык не поворачивается...
И так будет и впредь, пока вы не возьмете себе за труд разбраться с учебником от начала до конца. а не спрашивать каждый чих на форуме.
Вв мне лучше скажите, зачем тогда создана тут тема для новичков, чтобы всякие умники отвечали отпиской к учебникам? Освободится время, я конечноо изучу эту информацию, но получается, что сам факт существования этого форума для новичков бессмысленный и беспощадный. Не думаю, что так сложно сделать подсказку участком кода.
А кто тебе сказал, что ты по форумам программирование освоишь? Люди 5 лет учатся для этого в спицальных зданиях.
А кто тебе сказал, что ты по форумам программирование освоишь? Люди 5 лет учатся для этого в спицальных зданиях.
А я и не собираюсь становиться программистом, я хочу всего лишь за замутить еще этот проект и на этом пока все.
Тебя жестоко обманули, сказав, что Ардуино может освоить всякая кухарка. Не всякая. Только та, кто умеет читать и учиться.
Не думаю, что так сложно сделать подсказку участком кода.
ты хотя бы "область видимости" почитай.
Пойми - нет смысла исправлять этот код за тебя - так ты ничему не научишься и через строчку сделаешь еще ошибку.
А отговариваться "я хочу только сделать проект" - не надо. Если ты "хочешь сделать". то делай сам, а если тебе нужна сама пшикалка или что ты там собираешь - без освоения процесса - то купи ее в магазине, сэкономишь деньги(свои) и время ( не только свое)
А кто тебе сказал, что ты по форумам программирование освоишь? Люди 5 лет учатся для этого в спицальных зданиях.
Если ты не собираешся становиться программистом (читай - учиться) довольствуйся тем кодом, который ты нарыл на просторах. Как только тебе захочется что-то в нем изменить - придется учиться. И вовсе не орать "ПАМАГИТИ!!!!" на всех форумах, это ты и так умеешь.
Здесь тебе могут только указать напрвление, чтоб ты не тыкался как слепой кутенок.
А вопщем-та мне, кагабычно пофик, у мня есть более интересное занятие. Пузырь сам себя не освоит. Адью.
Ну, почему сразу враньё? ТС же не сказал какие именно сайты он лопатил. Вот давайте вместе лопатить ...
1. https://rt.pornhub.com - ни хрена нету;
2. http://blondie.ru/ - тоже облом;
3. http://anekdotov.net/ - опять 25!
Ну, и так далее. Как видите, никакой информации :(
Если Вам не дадут готовый код, то может, и изучите (если не забьёте), а если дадут, то - никогда.
Так и есть :(
Да, Вы вообще, похоже, предпочитаете не думать. Вот попробуйте подумать и объяснить мне, зачем мне
давать Вам "подсказку участком кода"делать Вашу работу за Вас? Что я с этого поимею? Удовлетворение от того, что Я вас чему-то научил - так, нет же - Вы ж ничему не научитесь. А ничего другого никто не предлагает.В общем, не знаете, так и скажите, нефиг умничать))
В общем, не знаете, так и скажите, нефиг умничать))
что так и не осилили прочитать про область видимости переменных?
Вам дали ответ в первом же сообщении, а что у вас не хватает знаний его понять - уже не забота форума.
В общем, не знаете, так и скажите, нефиг умничать))
Так и говорим: "не знаем".
Надеюсь, это Вам помогло.
Да не то что не знаем и не слышали вообще ))) А вообще такие люди любят что то подобное (даже читать не нужно, первое из гугла поднял):
https://m.youtube.com/watch?v=a8L1nu4EByI
Как говорил Задорнов - лишний кнопкотык боятся сделать. )))
Проще всего, что бы не ломать структуру имеющейся программы, ввести функцию вместо delay(); например delay_();
А внутри неё делать неотложные дела. Проверять не прошёл ли минутный интервал - для фоновой работы часов к примеру.
Просто тема всем здешним в горле стоит - настолько она изъезжена.