If..else с периодичностью.
- Войдите на сайт для отправки комментариев
Ср, 16/06/2021 - 10:59
Приветсвую!
Например имеем такой цикл
void loop() { digitalWrite(32, ledState1); digitalWrite(33, ledState2); digitalWrite(25, ledState3); digitalWrite(26, ledState4); digitalWrite(27, ledState5); }
Где ledState..есть HIGH или LOW в зависимости настроения моей тёщи.
Его необходимо перенести в void setup() {.....} под контроль оператора If..else
Если сделать так:
void setup() { if (бла..бла..бла) { // действие A } else { // действие Б - а именно digitalWrite(32, ledState1); digitalWrite(33, ledState2); digitalWrite(25, ledState3); digitalWrite(26, ledState4); digitalWrite(27, ledState5); } }
Выполнение происходит только при каждом обновлении страницы (оно и понятно, потому как действие "Б" выполнятеся лишь однократно).
Как сделать так, что бы действие "Б" выполнялось с определенной переодичностью? Например каждые 5 сек. Пологаю через функцию в java скрипт? Подкиньте пример если не сложно. А то я не силен.
Большое спасибо!
Балалайка, ну очень просто. "Пологаю", типа:
every(5000)
action();
Не?
Нет, совсем не понятно. Откуда вылезли страницы какие-то?
Нет, совсем не понятно. Откуда вылезли страницы какие-то?
Adolf_Balalaykin, Вы уж определитесь, что Вам нужно: перенести в setup или чтобы выполнялось "с периодичностью".
Всё равно не понятно. Как setup связан со страницей?
Adolf_Balalaykin, Вы уж определитесь, что Вам нужно: перенести в setup или чтобы выполнялось "с периодичностью".
ОК, так понятней?
Строки 224-229 перенес из void loop.
index.html
style.css
Это я пытаюсь объеденить два разных проекта. В одном включение/отключение кнопок на вэб сокете, во втором термостат. Ставишь галку в положении "авто", выход GPIO32 работает от термостата. Если галка снята (положение "ручное") работает принудительное включение/отключение с помощью кнопки на вэб странице.
Нет, не понятней. У тебя проц перезагружается при каждом запросе, что ли?
Вы про это?
request->send(SPIFFS, "/index.html", "text/html", false, processor);
Adolf_Balalaykin, Вы уж определитесь, что Вам нужно: перенести в setup или чтобы выполнялось "с периодичностью".
А какая связь между setup и else?
Нет, если есть особое желание, можно, конечно, сделать и "с периодичностью" из setup. Но это неверное архитектурное решение из-за которого не будет работать loop.
В общем, пока я вижу ситуацию такой: у Вас есть некоторая идея-фикс, которую Вы не хотите сообщать общественности, но почему-то решили, что она может быть реализована только из setup.
Вы объясните, чего хотите. Не в терминах решения (setup, loop, if/else, чего-то еще), а в терминах самой задачи. И, думаю, Вам подскажут, как это сделать, не прибегая к извращениям типа "периодичность в setup".
В общем, пока я вижу ситуацию такой: у Вас есть некоторая идея-фикс, которую Вы не хотите сообщать общественности, но почему-то решили, что она может быть реализована только из setup.
Вы объясните, чего хотите. Не в терминах решения (setup, loop, if/else, чего-то еще), а в терминах самой задачи. И, думаю, Вам подскажут, как это сделать, не прибегая к извращениям типа "периодичность в setup".
Да нет никакого секрета. Выше я написал о своей цели. Хотел объеденить два проекта. Этот https://randomnerdtutorials.com/esp32-websocket-server-arduino/#more-99437 и вот этот https://randomnerdtutorials.com/esp32-esp8266-thermostat-web-server/ В двух словах, необходимо получить управляемый выход. Который бы управлялся в двух режимах.
1. Режим "Авто" - (галка установлена) на выходе имеем 1 или 0 в зависимости от заданной температуры.
2. Режим "Ручной" - (галка снята) По нажатию кнопки на выходе имеем 1 или 0.
При этом статус кнопки "ON" или "OFF" должен отображатся корректно хоть в ручном, хоть в автоматическом режиме. Застрял на пол пути. Проблема озвучена выше. Перетащив фрагмент кода из loop в сетап вопрос частично решен. Но как вы правильно заметели, ни о какой переодичности говорить не приходится. Конечно есть другой путь, но для этого надо переписать часть кода. А в этом у меня не хватает знаний.
setup() выполняется ОДИН раз, при включении питания. Будешь дальше тупить - будет только глум.
При этом статус кнопки "ON" или "OFF" должен отображатся корректно хоть в ручном, хоть в автоматическом режиме. Застрял на пол пути. Проблема озвучена выше.
если вы думаете. что вы что-то обьяснили - то я вас огорчу, написана сплошная белиберда.
это было неверное решение. Но. похоже, вы настолько мало понимаете в коде. что не только решить проблему - а даже обьяснить в чем она толком не можете.
Стоит немного поднять свой уровень с помощью учебников, прежде чем двигаться дальше
PS непонятно, что эта тема делает в "программировании"
Определился. В сетапе с переодичностью.
Твоя цитата? И ты считаешь, что ты не му..ак, так я понимаю? Не могу согласиться.
Это тоже сам написал, никто не принуждал? И снова считаешь, что ты не му..ак?
это было неверное решение. Но. похоже, вы настолько мало понимаете в коде. что не только решить проблему - а даже обьяснить в чем она толком не можете.Стоит немного поднять свой уровень с помощью учебников, прежде чем двигаться дальше PS непонятно, что эта тема делает в "программировании"
[/quote]
У меня все еще впереди. Я лишь пару месяцев как взялся за это дело. Видимо я ошибся форумом. Наводящих вопросов было куча, много флуда и никакой информативности. Всем спасибо кто реально попытался помочь!
Adolf_Balalaykin, огрызаться Вы, конечно, горазды. Но только это вряд ли приблизит Вас к решению Вашей проблемы.
Лучше бы отвечали на вопросы: в посте №10 я Вас спросил:
А какая связь между setup и else?
Всем спасибо кто реально попытался помочь!
не обманывай себя, пока таких в ветке не отмечено. Невозможно помочь тому. кто сам еще не знает. что ему надо...
У меня все еще впереди.
Это вряд ли. Прогресс на 4,5 месяца нулевой. Вам придется превзойти по продолжительности жизни дубы в Коломенском лесопарке...
Видимо я ошибся форумом.
Да, ошибся. Нельзя тебе помочь. После фразы о переносе в "сетап" становится понятно, что тебе нужно читать лекцию, часа на два (и бесплатно!), о работе контроллера и даже об устройстве веб-сервера на нем, хотя похоже ты из мира "веб-программистов" к нам свалился.
Если ты начинающий, то и начинай нормально, с того, что понимаешь. Даже если это веб сервер. К примеру - пусть пара диодиков моргает с разными частотами, а через веб морду - управлять этими частотами, или пусть на экране часики стрелками крутят через веб-сокет. И все это по шагам, от простого примера с диодом и кнопкой, и добавлением по ступеньке. Тогда можно будет будет, пусть и не сразу, хоть на одном языке объяснить, почему ты в первом сообщении написал полную херню, доходчиво?
А пока так: либо засовываешь свое самолюбие глубоко в жопу и слушаешь по шагам. Путь сам выбирай - начни с такого кода, который понимаешь и будем добавлять по одному элементу за раз. Я сам и помогу.
Или - скатертью ... дорога ;))
Введите переменную- флаг с присвоением значения в сетап, а в лууп по условию её значения делайте свои "Б".