|
Новичок
Регистрация: 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.
|
||
|
Оценка
|
| Обратная связь РадиоЛоцман Вверх |