Мигание светодиодами
- Войдите на сайт для отправки комментариев
Ср, 28/02/2018 - 13:03
Всем привет есть такой скетч
void setup () { for (int i=4; i<=17; i++) { pinMode (i, OUTPUT); } } void loop() { for (int i=17; i>=4; i--) { for (int k=4; k<=i; k++){ digitalWrite(k,HIGH); delay(50); digitalWrite(k,LOW); } digitalWrite(i,HIGH); } for (int i=4; i>=4; i++) { for (int k=17; k>=i; k--){ digitalWrite(k,0); delay(50); digitalWrite(k,1); } digitalWrite(i,0); } }
Но проблема в том что loop выполняется только один раз и больше не повторяется.Я так понимаю что не создается условия в начале loop for (int i=17; i>=4; i--). И код не выполняется подкиньте идейко как это исправить?
все там выполняется, просто цикл for в строке 15 - бесконечный
Но как тогда написать этот скетч ??? То есть огонек тухнет от 4 и дальше ++.Как по другому это написать ?
Но как тогда написать этот скетч ???
Что-то не заметил, чтобы Вы внятно объяснили что он делжен делать. П если непонятно что он должен делать, то писать можно как угодно - как-то он и сейчас работает.
Смысл в том, что огонек бежит от 4 пина к 17 пину и 17 остается гореть, потом огонек опять бежит от 4го к 17 и уже 17 и 16 остаются гореть и так пока все пины не будут гореть. После чего, огонек бежит на оборот от 17 пина к 4 и 4 пин гаснет. Огонек опять бежит от 17 к 4 и уже 5 гаснит и так пока не погснут все потом все по кругу.
Но как тогда написать этот скетч ??? То есть огонек тухнет от 4 и дальше ++.Как по другому это написать ?
огонет тухнет от пина 4 и дальше - как далеко дальше? у вас пины бесконечны? - нет, судя по другим строкам, номера пинов от 4 до 17. Ну так поставьте в строке 15 условие. чтобы цикл не поднимался выще 17-ого пина, делов то.
#1. огонек бежит от 4 пина к 17 пину и 17 остается гореть, потом огонек опять бежит от 4го к 17 и уже 17 и 16 остаются гореть и так пока все пины не будут гореть.
#2. После чего, огонек бежит на оборот от 17 пина к 4
Так не бывает. К моменту #2 все пины с 4 по 17 светятся - как может бедать огонёт, если они уже светястя?
вероятно обратно бежит !огонек
Я не совсем пойму как цыкл может быть бесконечным и подниматься если указанно что о4 го до 17 го.Тоесть потуши 17 огонек условие выполненно ? Идолжно выполняться следующее тоесть
Да гонек бежит обратно.
Всем спасибо вы правы цыкл бесконечный получался в строке 15 нужно вот так
Еще вопрос как заставить выполнятся цыкл определенное количество раз ? То есть, например пробежал огонек три раза и потом начал выполнятся следующий цыкл ?
Еще вопрос как заставить выполнятся цыкл определенное количество раз ? То есть, например пробежал огонек три раза и потом начал выполнятся следующий цыкл ?
Не совсем понял. Если не сложно обясните по подробнее?
Еще вопрос как заставить выполнятся цыкл определенное количество раз ? То есть, например пробежал огонек три раза и потом начал выполнятся следующий цыкл ?
положить его внутрь другого цикла For
Типерь понял .Но как записать к примеру это
Одним выражение чтоб положить его во внутрь цыкла?
Напишите примерчик пожалуйста.
Типерь понял .Но как записать к примеру это одним выражение чтоб положить его во внутрь цыкла?
зачем писать это "одним выражением"? Внутри цикла может быть сколько угодно операторов. Все, что вам нужно выполнить трижды - напишите между открывающей и закрывающей фигурной скобкой вместо слова "ЭТО" :)
Напишите примерчик пожалуйста.
Так примерчик у Вас самого написан. Во втором цикле же выполняется несколько действий.
Так примерчик у Вас самого написан.
судя по вопросам, примерчик не НАписан. а Списан...
Давайте разберем на примере
Мы указываем что и это выход .Но чтоб выполнялся код определенное количество раз
Примерчик написан
Вот с такого примера не скрываю
Я имел в виду не количество действий в цыкле . А количество раз которое пройдет кусок кода пока не перейдет к следующему действию.
ёпте... в строке 09 еще один for() от 0 до 3 никак не написать после того, как уже каждый это посоветовал?
Я имел в виду не количество действий в цыкле . А количество раз которое пройдет кусок кода пока не перейдет к следующему действию.
Как-то Вы очень неудачно мысли формулируете. Лучше вернуться к конкретному примеру. Вставьте Ваш на данный момент окончательный вариант скетча (только без мусорных номеров строк, как у Вас тут в некоторых сообщениях получилось). И чётко опишите что он реально делает и чем это отличается от того что Вам хочется.
Ну или сначала вставьте for, как sadman41 говорит. Может он действительно Ваши хотелки лучше угадал :)
А тепер описание, что происходит и как хотелось бы на самом деле.
Нужно чтоб действие с 7 строки по 14 повторилось к примеру 3 раза . А потом начало выполнятся действие строки 15 и дальше.?
Тоесть в коде три режима, бегани огоньков которые выполняются по одному разу по кругу. Нужно количество выполнений каждого режима заставить выполнятся определенное количество раз
Засовывай строки с 7 по 14 внутрь ещё одного цикла.
Нужно чтоб действие с 7 строки по 14 повторилось к примеру 3 раза . А потом начало выполнятся действие строки 15 и дальше.?
Вот теперь понял . Изначально не до конца получается разобрался с for . Всем большое спасибо.
Вот теперь понял . Изначально не до конца получается разобрался с for . Всем большое спасибо.
Скорее , изначально даже не читалось ничего про цикл for...