Задержка в 1 с без Delay

StoneTL
Offline
Зарегистрирован: 22.08.2018

Есть код

void loop() // процедура loop
{
 // плавное включение светодиода
 // начальное значение на Pin6 i=0, если i<=255, то прибавляем к i единицу
	for(int i=0;i<=255;i++)
{
	analogWrite(LED_PIN, i);
	delay(5); // ставим задержку для эффекта
}

Как сделать задержку в 5 мкс, но без delay функции? Мне нужно чтобы 5 светодиодных лент тухли одновременно. А из за этого delay'я, они гаснут поочереди.

 

Пробовал через миллис, не работает. Или я не так делал.

KindMan
Offline
Зарегистрирован: 19.12.2018

А где у вас в коде 5 лент?

MaksVV
Offline
Зарегистрирован: 06.08.2015

analogWrite от других лент сюда же добавляйте, delay будет один на всех. 

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

StoneTL пишет:
Мне нужно чтобы 5 светодиодных лент тухли одновременно.
Зачем? Они ж вонять будут!

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

StoneTL пишет:

Пробовал через миллис, не работает. Или я не так делал.

показывайте, как пробовали. Одного слова "пробовал" недостаточно.

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

#1 - Для Вашей задачи идеальное решение. Не плодите сучности.

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

b707 пишет:

показывайте, как пробовали. 

Только прежде, чем показывать, следует читать до полного просветвления.

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

С for и millis() не получится. Пробуйте switch ()