Подсчет количества выполненных условий

Gridzilla
Offline
Зарегистрирован: 25.10.2019

Привет всем. Пока не могу сообразить как правильно задать вопрос.



Допустим, имеем мы простенький скетч с миганием светика (опустим вводные по либам и прочие с экраном):

  1. void loop(){
  2. digitalWrite(13, HIGH);
  3. delay(1000);
  4. digitalWrite(13, LOW);
  5. delay(1000);
  6. }

Вопрос вот в чем, как мне подсчитать количество миганий? Чтобы, например, после 10 раз он мне выдал примерно следующее:

myOLED.clrScr();

myOLED.setFont(RusFont);

myOLED.print(F("ВЫКЛЮЧИ"), CENTER, 35);

myOLED.update();



Может сами мигания вывести в функцию:

void miganie() {

digitalWrite(13, HIGH);

delay(1000);

digitalWrite(13, LOW);

delay(1000);

}

И уже потом считать их количество?



Если не с примерами, то хотя бы пните новичка в нужную сторону, где почитать про это.

Грубо так: Мигаем 5 раз, поворачиваем серву на 180 градусов, еще пять раз и еще на 180 градусов и вот поле N таких действий он выведет на экран предупреждение, но процедуру не остановит.

 

 

b707
Offline
Зарегистрирован: 26.05.2017

так кто мигает-то лампой - вы сами или кто-то чужой? Если вы сами - то что мешает вам при каждом миге считать мигания, например прибаляя единичку к какой-то переменной?

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

Создаете переменную int KolichestvoMiganij, в сетапе нулите, далее при каждом мигании делаете KolichestvoMiganij++; В какой-то момент (по Вашим объяснениям не понял в какой) опять нулите.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Не плохо было бы код правильно вставлять...

byte tick = 0;
void loop(){
    digitalWrite(13, HIGH);
    delay(1000);
    digitalWrite(13, LOW);
    delay(1000);
    tick++;
    if (tick == 10) {
     // Отмигали десять раз, что-то делаем и обнуляем счетчик (если нужно)
     // tick = 0;
     // что-то делаем
    }
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Gridzilla пишет:

Вопрос вот в чем, как мне подсчитать количество миганий? Чтобы, например, после 10 раз он мне выдал примерно следующее:

берёте микросхему  К561ИЕ8 (в девичестве CD4017), соединяете пин светодиода с её входом, а её пин переноса с пином прерывания ардуины и по прерыванию делаете то, что нужно. 

Gridzilla
Offline
Зарегистрирован: 25.10.2019

Спасибо, друзья!!! Как бы в голове вижу что хочу, а вот сформулировать вопрос про ардуину пока никак :)) Знаний не хватает. Но за пинки в нужную сторону спасибо! Буду изучать дальше. Ваших дам с праздником!