Датчик освещенности – как дождаться определенной настройки и продолжить работу с Леонардо?
На моей плате 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», который повторяется до тех пор, пока значение не станет меньше определенного, но понятия не имею, как это сделать. это будет написано.
@Danny Shepherd, 👍-1
Обсуждение1 ответ
Лучший ответ:
Один метод:
while (analogRead(A0) < настройка){ // находимся в этом цикле и снимаем показания, пока не получим значение, >= соответствующее настройке
Спасибо @CrossRoads, я сниму это, я прочитал, что это должно занять некоторое время, и что < будет использоваться с моим номером, но я не знал, как на самом деле структурировать это в строку., @Danny Shepherd
- Как использовать SPI на Arduino?
- Какова работа pulseIn?
- Сколько датчиков может поддерживать один модуль Arduino?
- Получение BPM из данного кода
- DS18B20 дает высокие показания. Как заставить его вернуть правильную температуру?
- Какой тип разъема использует система GROVE?
- Нажать клавишу Windows, используя «keyboard.press();»
- Улавливают ли ультразвуковые датчики прозрачные материалы?
Обычно вы хотите избежать задержки и не ждать, пока произойдет какое-то внешнее событие. Обе эти вещи полностью блокируют контроллер до тех пор, пока условие не будет выполнено. Вместо этого вы обычно хотите проверить флаги состояния в функции цикла и/или использовать millis(), чтобы узнать, прошло ли достаточно времени., @Duncan C
Я знаю, но для новичка со сценарием, который имеет около 150 нажатий кнопок, каждый из которых имеет определенное и разное время ожидания между каждым нажатием клавиши, это кажется самым простым способом сделать это. В какой-то момент я вернусь к коду, чтобы при необходимости добавить кнопку паузы, но на данный момент это не главный вопрос., @Danny Shepherd