Работа реле на определенное время

да как же ты её заставишь, коль написана сзади )))
@BOOM нашёл косяк, а далее блинк без делея, по классике

1 лайк
void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    digitalWrite(LED_BUILTIN, HIGH);
    Serial.setTimeout(1000UL * Serial.parseInt());
    digitalWrite(LED_BUILTIN, LOW);
    
    }
 
}

Работает стабильно, просто надо после каждой отсылки перезапускать монитор порта.

Или ресет жать -вот она, С - “стабильнось” :laughing:
Там на 20 и 50 сек(как заказывали) работает, а вот попытки запустить на 10/11…до 19 дают либо 1 сек либо ничего :neutral_face:. Логику не уловил. Иногда и меньше десятка на срабатывают. И т.д.

Либо как в #43 ))

Serial.setTimeout();
Логика работы не понятна - на ней программа виснет?, как на делей.

А я хз. Только вчера про неё прочитал. И даже если это не висение , а ожидание, то какого ляха оно и в плюс и в минус может сглючить :face_with_diagonal_mouth: Типа раз выбрали 20 сек(условно), то следующее число(меньшее) может быть воспринято типа не ранее. вот хрен там, то пройдёт, то нет. Логики не увидел.

Потому что не по назначению используешь. Она задаёт таймаут для parseInt подобных. По таймауту он определяет конец ввода.

Там бяда ещё в том что (1000UL * Serial.parseInt()) регулярно даёт на ввод 10 - единицу, и на 11- единицу и т.д. А может и не давать. :neutral_face:

Бл.ъ
Вы читали что я писал про «перевод коретки» или нет???

Если следовать логике она задаётся один раз, потом перезагрузка и опять…но то что она “повисает на себе” программу до отключения светодиода это странно. Думал фоновый режим.

Бл.ъ не помогает :slightly_smiling_face: и радистово Serial.read(); не помогает. Можете сами попробовать.

Зато можно(наверное) использовать :slightly_smiling_face:

Что не помогает? У меня мой код из #43 работает отлично.

ЗЫ: В качестве «подопытного» Arduino Nano на 168 меге.

оно и не может помочь, в монитор прилетели управляющие раньше чем ты время ожидания выставил, точнее точнее ты время выставил, а оставшийся в буфере символ эту задержку сбросил

@ua6em он нас троллит. Невозможно очевидных вещей прожеванных и в рот положенных так игнорировать!

В сериал сделайте вывод того что вводите, экспериментаторы. @b707 уже давно сказал.

Если бы. Оно то работает, то нет. Потому и написал про СТАБИЛЬНОСЬ. Нетути её. Здначицца, где-то ещё “собака порылась”(с).
Речь не о рабочем коде, мне он “на х… не нужон”(с) Впрочем, как и ТС. :slightly_smiling_face: Энто ж вы бросились помогать наперегонки, даже наплевав на ; " и тд. :laughing: Ятак поглядел, дай, думаю, то же полурабочий код подсуну. :slightly_smiling_face:

Попробовал выставить “нет конца строки”. Работает без перезагрузки, но опаздывает на одну команду. Ставишь 20 будет не ясно что, но ставишь следом 10 - будет 20, ставишь 5 - будет 10 и т.д. :slight_smile: Меньше знаешь - крепче спишь.

увидев, что парсер есть из коробки, чтож не помочь )))

Вы бы проверили свои первые “рабочие” версии на железе, а не в вовке - глядишь и сарказма поменьше будет.