Я пытаюсь настроить Arduino с датчиком движения PIR, чтобы отправлять данные датчика движения и некоторую случайно сгенерированную температуру на шлюз.
Я хочу, чтобы он отправлял «MO / 1» при обнаружении движения и по-прежнему отправлял температуру каждые 20 секунд, как «T / 26».
Я использовал этот код, но безуспешно:
void loop() {
if (motion == HIGH) {
// Motion Detected
// Send to Gateway
}
while (1) {
temp = random(1,5) + 28;
// Send to Gateway
delay(20000);
}
}
Как вы могли заметить, как только Arduino входит while
, он не обращает внимания на блок if
! Поскольку я новичок в Arduino и их программировании, я подумал, что кто-то может помочь с этим.
loop
будет постоянно вызываться снова и снова. Вам не нужна петля внутри. Если вам нужно, чтобы что-то происходило каждые 20 секунд, вам следует использовать другой способ проверить время, прошедшее между вызовами, и проверить, прошло ли не менее 20 секунд. - person Some programmer dude   schedule 24.07.2017