Клеммы, реле, разъемы Degson со склада в России

Программирование Arduino Nano - ждать пока не нажму кнопку

Новичок
 
Регистрация: 15.08.2023
Сообщений: 1
Репутация: 10
 
15.08.2023 06:36 #1
Доброго времени коллеги, не могу решить задачу:
На арду Нано повешать 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.
Оценка
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO.
Ответ
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Скидки, кэшбэк и бесплатная доставка от ТМ Электроникс
Часовой пояс GMT +3, время: 10:22.
Обратная связь РадиоЛоцман Вверх