Из Arduino Reference :
функция loop () делает именно то, что предлагает ее название, и последовательно выполняет цикл
Если вы хотитечтобы окончательно остановить цикл, вы можете добавить while(1);
в его конец.Таким образом, ваш Arduino будет вызывать loop()
один раз, а затем попадет в бесконечный цикл, пока вы не сбросите его.Но, конечно, ваш Arduino больше ничего не будет делать.
Если вы не хотите заканчивать тем же самым, если блокировать снова и снова, вы должны убедиться, что значение mqttmessage
изменяется послеодин прогон loop()
.
В противном случае, скажем, mqttmessage
равен '1'
, вы введете первый оператор if и вызовете p1()
время удержания.Затем, когда цикл запускается снова и mqttmessage
имеет все то же значение, вы снова окажетесь в первом операторе if и вызовите p1()
время удержания и т. Д.
Если вы не можете обновить mqttmessage
's значение каждого цикла, и если вы не хотите останавливать свой Arduino в бесконечном цикле, вы можете использовать переменную, которая хранит, если вы ввели этот оператор if до и каждый оператор if должен проверить эту переменную, чтобы вы невведите снова.