Новичок
Регистрация: 15.08.2023
Сообщений: 1
Репутация: 10
|
Доброго времени коллеги, не могу решить задачу:
На арду Нано повешать 12 диодов и 12 кнопок. Решил вешать диод и кнопу на один пин Смысл работы такой: Зажечь светодиод от рандома, ждать 3 сек, нажать соответствующую кнопку, считать нажатие, ... дальше сам) Но вот незадача, Delay вешает контроллер и не считывает нажатие, millis не ждет 3 секунды, Ниже представлю код, может где то я ошибся? И получается: или цикл пробегает и я не успеваю нажать кнопу или вешается делеем и не считывает нажатие Если не использовать рандом а прописать +5 на конкретный пин, то нажатие кнопки считывается. Код:
unsigned long currentTime; // Переменная времени диода 8 unsigned long currentTime2; // Переменная времени диода 9 bool ledState=0; // Переменная состояния диода 8 bool ledState2=0; // Переменная состояния диода 9 unsigned long a; // Переменная для проверки работоспособности кода в условиях задержки void setup() { Serial.begin(9600); // Конфигурируем серийный порт pinMode(8, OUTPUT); //Пины 8 и 9 конфигурируем на выход pinMode(9, OUTPUT); } void loop() { if (millis() - currentTime > 1000) // Проверяем время для первого диода (1000мс) { currentTime = millis(); ledState=!ledState; // Меняем состояние первого диода на противоположное digitalWrite(8, ledState); Serial.print ("1000:"); Serial.println (currentTime); } if (millis() - currentTime2 > 200) // Проверяем время для второго диода (200мс) { currentTime2 = millis(); ledState2=!ledState2; // Меняем состояние второго диода на противоположное digitalWrite(9, ledState2); Serial.print ("200:"); Serial.println (currentTime2); } }
Последний раз редактировалось Admin; 16.08.2023 в 10:27.
|
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |