Датчик освещенности – как дождаться определенной настройки и продолжить работу с Леонардо?

На моей плате Micro Pro Leonardo работает аналоговый датчик освещенности. Я хочу получить доступ к части моего кода, включающей нажатия клавиш, где он отслеживает мигание светодиода, а затем продолжает код оттуда.

Может ли кто-нибудь дать мне пример кода, как это сделать?

Сейчас у меня есть что-то вроде....

  Keyboard.write(KEY_RETURN);
  delay(800);
  Keyboard.write(KEY_TAB);
  delay(150);
  Keyboard.write(KEY_TAB);
  delay(150);
  Keyboard.write(' ');
    }

//Здесь код, чтобы дождаться, пока светодиод не начнет мигать, и на датчике освещенности будет зарегистрировано значение 30 или меньше. Затем продолжите код ниже, как только это произойдет.

  BootKeyboard.press(KEY_LEFT_GUI);
  BootKeyboard.press('r');
  delay(40000);
  BootKeyboard.releaseAll();

и т. д.

Я знаю, что датчик освещенности — это AnalogValue = AnalogRead(A0);, и я предполагаю, что это своего рода оператор «If», который повторяется до тех пор, пока значение не станет меньше определенного, но понятия не имею, как это сделать. это будет написано.

, 👍-1

Обсуждение

Обычно вы хотите избежать задержки и не ждать, пока произойдет какое-то внешнее событие. Обе эти вещи полностью блокируют контроллер до тех пор, пока условие не будет выполнено. Вместо этого вы обычно хотите проверить флаги состояния в функции цикла и/или использовать millis(), чтобы узнать, прошло ли достаточно времени., @Duncan C

Я знаю, но для новичка со сценарием, который имеет около 150 нажатий кнопок, каждый из которых имеет определенное и разное время ожидания между каждым нажатием клавиши, это кажется самым простым способом сделать это. В какой-то момент я вернусь к коду, чтобы при необходимости добавить кнопку паузы, но на данный момент это не главный вопрос., @Danny Shepherd


1 ответ


Лучший ответ:

1

Один метод:

while (analogRead(A0) < настройка){ // находимся в этом цикле и снимаем показания, пока не получим значение, >= соответствующее настройке

,

Спасибо @CrossRoads, я сниму это, я прочитал, что это должно занять некоторое время, и что < будет использоваться с моим номером, но я не знал, как на самом деле структурировать это в строку., @Danny Shepherd