Уроки Ардуино #12 - циклы

preview_player
Показать описание
В этом уроке познакомимся с циклами и особенностями их работы
▼ Текстовая версия ▼

▼ Огромный стартовый набор GyverKIT ▼
▼ Уроки Arduino на сайте ▼
▼ Модули и датчики с Али ▼
▼ Страница "Заметок Ардуинщика" ▼

Теги: #arduino #уроки #ардуино #alexgyver
●●●●●●●●●●●●●●●●●●●●
Рекомендации по теме
Комментарии
Автор

То чувство когда Алекс говорит "тут ничего сложного нет", а ты даже не успеваешь понять что вообще происходит

windlucker
Автор

Пример использования continue: тебе нужно не печатать число 49. Тогда ты можешь написать код if(I!=49) { //любой код, например печать i }, а можешь не нагромождать {}, и соответственно отступы, то можешь написать if (i == 49) continue; я в основном использую это для таких случаев, когда в коде сложная структура, и усложнять ее ещё одним ифом и фигурными скобками совсем не хочется

n
Автор

Благодарю за видео твой труд очень помог )

Даниил-бр
Автор

Вот это да, рассказал только про циклы, без рекламы и попрошайничества на лайк и подписку.
это заслуживает лайк!

sergeygordich
Автор

девушка: "делает комплимент"
я: continue

ItIsWednesday
Автор

Alex Gyver нид хелп! HELP! Запоролся, не понимаю как управлять 2 и более разными группами светодиодов плавно. Я легко управляю одной группой используя переменную brightness, и fadeamount, + delay, изменяя значение brightness, я могу плавно зажигать и тушить диоды. Но как только я делаю еще одну такую конструкцию, все накладывается друг на друга и как надо не работает.
Вопрос, как сделать 2, 3, ...10 групп, которые можно независимо управлять. Т.е. одну группу с одной плавностью зажигать, другую с другой, и так далее? Помогите лайком на каменте!

PavlentijIvani
Автор

Пожалуйста, урок по асинхронности на arduino
(про прерывания, например)
В топ!

alexbukin
Автор

СПАСИБО ТЕБЕ БОЛЬШОЕ АЛЕКСАНДР! ТВОЙ ТРУД ОЧЕНЬ ПОМОГАЕТ!! ОТ ДУШИ

fenospeed
Автор

for(;;) тоже интересный метод, а оператор "пропустить ход" полезен в функциях или при сортировке

vladshuher
Автор

классно только надо учитывать полярность светодиодов (напомнил)!!!

channeltovar
Автор

Просто хочу от всего сердца поблагодарить уважаемого Автора! Я в Ардуино новичок, неделю всего, но благодаря этим урокам материал усваивается хорошо. На основе предыдущих уроков и этого включительно написал простенький скетч для управления светодиодами с помощью потенциометра так, чтобы они включались поочерёдно один за другим и каждый менял яркость в зависимости от положения движка потенциометра посредством ШИМ. Сегодня изучил этот урок и решил прикрутить два цикла вместо потенциометра, чтобы диоды поочерёдно зажигались и гасли. Вроде получилось. Позже переделаю на millis.

byte led_1;
byte led_2;
byte led_3;
byte led_4;
byte ON = 255;
byte OFF;
int potent;


void setup() {
TCCR1A = // 8bit
TCCR1B = 0b00001001; // 8bit
TCCR2B = // 8bit
TCCR2A = // 8bit
pinMode (3, OUTPUT);
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
pinMode (11, OUTPUT);
}

void loop() {
delay (2500);

for (potent =0; potent < 1023; potent ++) {


if (potent <= 255) {led_1 = potent; led_2 = OFF; led_3 = OFF; led_4 = OFF;
map (led_1, 0, 255, 0, 255);
constrain (led_1, 0, 255);}
if (potent >= 256 && potent <= 511) {led_1 = ON; led_2 = potent; led_3 = OFF; led_4 = OFF;
map (led_2, 256, 511, 0, 255);
constrain (led_2, 0, 255);}
if (potent >= 512 && potent <= 767) {led_1 = ON; led_2 = ON; led_3 = potent; led_4 = OFF;
map (led_3, 512, 767, 0, 255);
constrain (led_3, 0, 255);}
if (potent >= 769 && potent <= 1023) {led_1 = ON; led_2 = ON; led_3 = ON; led_4 = potent;
map (led_4, 769, 1023, 0, 255);
constrain (led_4, 0, 255);}
analogWrite (3, led_1);
analogWrite (9, led_2);
analogWrite (10, led_3);
analogWrite (11, led_4);
delay (5);
}
delay (5);

for (potent = 1023; potent >= 0; potent --) {
if (potent <= 255) {led_1 = potent; led_2 = OFF; led_3 = OFF; led_4 = OFF;
map (led_1, 0, 255, 0, 255);
constrain (led_1, 0, 255);}
if (potent >= 256 && potent <= 511) {led_1 = ON; led_2 = potent; led_3 = OFF; led_4 = OFF;
map (led_2, 256, 511, 0, 255);
constrain (led_2, 0, 255);}
if (potent >= 512 && potent <= 767) {led_1 = ON; led_2 = ON; led_3 = potent; led_4 = OFF;
map (led_3, 512, 767, 0, 255);
constrain (led_3, 0, 255);}
if (potent >= 769 && potent <= 1023) {led_1 = ON; led_2 = ON; led_3 = ON; led_4 = potent;
map (led_4, 769, 1023, 0, 255);
constrain (led_4, 0, 255);}
analogWrite (3, led_1);
analogWrite (9, led_2);
analogWrite (10, led_3);
analogWrite (11, led_4);
delay (5);
}
delay (5);
}

ohmygodisaprettyfalcon
Автор

Чота как то кратко. Будь я совсем днищем в коде, я бы нихера не понял.

dreyktroll
Автор

Как вариант: оператор contineu может использоваться в случае, если при определённом значении переменной цикл не должен выполняться. Но примера пока не могу представить

ИванИваныч-збц
Автор

Для бесконечного цикла с выходом по break можно также использовать for( ; ; ){} тоже бесконечный цикл. И в общем случае в цикле for может быть пропущен любой блок из трех в объявлении.

BlacSlam
Автор

Я после активного пользования fl prog, теперь пытаюсь изучать среду ардуино айди, капец этот fl prog затормозил мое развитие...

ТатьянаАбрамян-ех
Автор

Alex, очень жду остальные конспекты на сайте!

MaxBudkin
Автор

НУ НАКОНЕЦ - ТО я услышал окончание запевочки !!! (вот так и думал, что звучка не хватает) )))

СергейИванов-бюч
Автор

Всем привет. А как прервать цикл с внешнего фхода, а потом продолжить его, когда сигнал с входа пропадет?

stepanfedyaev
Автор

"В МОЕЙ МАСКЕ ИЗ ОСОЗНАННЫХ СНОВИДЕНИЙ" :-D Получилось сделать? Могу в знак благодарности за твои уроки, в ответ научить как выходить в ОС без маски и других приблуд :)

ИльяЕвгеньевич-бь
Автор

Канал просто супер! Всё понятно и доступно!

superpuper