Таймер ожидания события

andrey3824
Offline
Зарегистрирован: 17.03.2020

Есть небольшой код для примера

int sw1=12;
int out=9;
int resp=8;

void setup() {
  pinMode(sw1, INPUT_PULLUP);
  pinMode(out, OUTPUT);
  pinMode(resp, INPUT_PULLUP);
  }

void loop() {
  if (digitalRead(sw1) == LOW)
{
  digitalWrite(out, HIGH);
}

  //Здесь нужно определённое время для ожидания прихода отрицательного импульса на выводе "resp"
  //Если импульс в течение этого времени пришел или остался ожидаемый уровень LOW   >>>>>>>
  //=====================================================================================
  //>>>>>>>>>>>>>> ОСТАЛЬНОЙ КОД, с учетом этого события 
  // Если изменения состояния не было - выполнение кода дальше
  
}

Как выделить определенное время для ожидания события? То есть нужно остановить цикл и ожидать изменение состояния цифрового входа. 
Я новичок в этом и полтора года программированием не занимаюсь, сильно не пинайте.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

millis() тебе в помощь

AndreyD
AndreyD аватар
Offline
Зарегистрирован: 07.10.2018

Запишите в переменную значение millis() при сигнале на sw1. Далее сравниваете её до получения сигнала на resp.

andrey3824
Offline
Зарегистрирован: 17.03.2020

AndreyD пишет:

Запишите в переменную значение millis() при сигнале на sw1. Далее сравниваете её до получения сигнала на resp.

SW1 LOW был и не стало, так же как и HIGH на выводе  out, потом нужно время для ожидания LOW на resp. Про millis() думал, но тямы не хватит как применить. С примерами справлюсь.

b707
Онлайн
Зарегистрирован: 26.05.2017

andrey3824 пишет:

Про millis() думал, но тямы не хватит как применить. С примерами справлюсь.

удачи в поиске примеров...

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

andrey3824 пишет:

 Про millis() думал, но тямы не хватит как применить. С примерами справлюсь.

Посмотрите-подумайте

Pyotr
Онлайн
Зарегистрирован: 12.03.2014
andrey3824
Offline
Зарегистрирован: 17.03.2020

mykaida пишет:

andrey3824 пишет:

 Про millis() думал, но тямы не хватит как применить. С примерами справлюсь.

Посмотрите-подумайте

Спасибо.

andrey3824
Offline
Зарегистрирован: 17.03.2020

Да, возможно. 
Спасибо.

AndreyD
AndreyD аватар
Offline
Зарегистрирован: 07.10.2018

Ещё есть библиотека MsTimer2.h или что-то подобное.

andrey3824
Offline
Зарегистрирован: 17.03.2020

AndreyD пишет:

Ещё есть библиотека MsTimer2.h или что-то подобное.

Да, посмотрю. 
Еще у Алекса гивера кое-что есть.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

У меня есть целая жменя таймеров

andrey3824
Offline
Зарегистрирован: 17.03.2020

DetSimen пишет:

У меня есть целая жменя таймеров

У меня опыта почти нет, чтобы всё это применять.
Экспериментами результата добиваюсь.

b707
Онлайн
Зарегистрирован: 26.05.2017

andrey3824 пишет:

У меня опыта почти нет, чтобы всё это применять.
Экспериментами результата добиваюсь.

вам в первую очередь не "опыт" нужен, а знания. Учебник по С++ возьмите и читайте от корки до корки.

Экспериментами (то бишь методом тыка) - не программируют.

andrey3824
Offline
Зарегистрирован: 17.03.2020

b707 пишет:

andrey3824 пишет:

У меня опыта почти нет, чтобы всё это применять.
Экспериментами результата добиваюсь.

вам в первую очередь не "опыт" нужен, а знания. Учебник по С++ возьмите и читайте от корки до корки.

Экспериментами (то бишь методом тыка) - не программируют.

Ради одной железки С++ изучать будет долго. Если не могу добиться программно сделать,
помогаю аппаратно. Мне с этим проще.
Я знаю, что ту же логику можно в коде описать, но это для меня сложнее. Нет пока ничего наглядного.

Я не программист.

Rumata
Rumata аватар
Онлайн
Зарегистрирован: 29.03.2019

andrey3824 пишет:

Ради одной железки С++ изучать будет долго.

Я не программист.

Я тоже не программист. Многие тут это подтвердят

Раздел "Песочница. Раздел для новичков" это, как ни странно, раздел для новичков в программировании. То-есть для начинающих тернистый путь в С++ своими ногами. Для платежеспособных потребителей есть другой раздел. Для неплатежеспособных халявщиков есть конституционное право на на*%й (специального раздела нет) :) 

Оффтоп: Если железка подразумевает коммерческое развитие, имеет смысл найти в долю программиста. Если не подразумевает, то смысл тратить время на неинтересные вещи?

andrey3824
Offline
Зарегистрирован: 17.03.2020

Rumata пишет:

andrey3824 пишет:

Ради одной железки С++ изучать будет долго.

Я не программист.

Я тоже не программист. Многие тут это подтвердят

Раздел "Песочница. Раздел для новичков" это, как ни странно, раздел для новичков в программировании. То-есть для начинающих тернистый путь в С++ своими ногами. Для платежеспособных потребителей есть другой раздел. Для неплатежеспособных халявщиков есть конституционное право на на*%й (специального раздела нет) :) 

Оффтоп: Если железка подразумевает коммерческое развитие, имеет смысл найти в долю программиста. Если не подразумевает, то смысл тратить время на неинтересные вещи?

Съел. Пошёл плюсы читать.

Pyotr
Онлайн
Зарегистрирован: 12.03.2014

andrey3824 пишет:

Съел. Пошёл плюсы читать.

Погоди, не уходи) вот пример от Евгения. Разберешься - сможешь решить любую (почти) задачу. 

Rumata
Rumata аватар
Онлайн
Зарегистрирован: 29.03.2019

Одно другому не противоречит)) Скорее, серьезное подспорье