Задержка между вспышками диода

здравствуйте, я вообще полный ноль. Помогите сделать задержку между вспышками, 2 часа бьюсь головой о клавиатуру.


void setup() {
    pinMode(LED_PIN, OUTPUT); // инициализируем Pin6 как выход
}

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

   //плавное затухание светодиода
   // начальное значение на Pin6 i=255, если i>=255, то вычитаем от i единицу
	for(int i=255;i>=0;i--) {
	analogWrite(LED_PIN, i);
	delay(2);
    
}
}
void setup() {
    pinMode(LED_PIN, OUTPUT); // инициализируем Pin6 как выход
}

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

   //плавное затухание светодиода
   // начальное значение на Pin6 i=255, если i>=255, то вычитаем от i единицу
	for(int i=255;i>=0;i--) {
	analogWrite(LED_PIN, i);
	delay(2);
    
}
delay(1000);
}

а косяки в 8 и 15?

или в задании не было? :grin:

и какие косяки в 8 и 15?

И каких результатов надеешься достичь таким образом? Попробуй учебник почитать.

1 лайк

про плату мы ничего не знаем, по умолчанию уно/нано и 8-ми битный ШИМ.
не смущает, что после “затухания”, на последней итерации, светодиод зажжется на все время задержки.

не зажгется

1 лайк

А я не заметил…да и не подумал.
Тогда во так вот надо!

void setup() {
    pinMode(LED_PIN, OUTPUT); // инициализируем Pin6 как выход
}

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

   //плавное затухание светодиода
   // начальное значение на Pin6 i=255, если i>=255, то вычитаем от i единицу
	for(int i=255;i>=0;i--) {
	analogWrite(LED_PIN, i);
	delay(2);
    
}
analogWrite(LED_PIN, 0);
delay(1000);

}

да вы все с дуба рухнули что ли?
Последнее значение цикла в 16й строке будет ноль

Может кому-то учебник перечитать?

Книжки это хорошо, конечно. Но последний опыт в програминге был на бесике в 0-ом году в школе. есть желание посмотреть, что это такое вообще. И вот сижу в командировке, игрушки надоели. решил с простеньких скриптов начать и разбираться, что да зачем. Первый ответ тоже изначально попробовал, но видимо с символами где-то накосячил. Написал уже 5 строк вставку вместо этой команды, поэттому и бился головой, что не сработало. Всёравно спасибо всем за помощь, думаю я вас еще достану в этом разделе ))

Я верю, запомнить где как не могу :slight_smile: --i ; i–;

в данном случае i-- --i одно и то же

Жадность подвела :slight_smile:
<255
Ибо слишком хорошо, уже нехорошо.

нет

Ну прочти уже учебник наконец. Все у ТС правильно

А что вначале (после проверки условия), выполнение действий цикла или нарастание счётчика?

А что именно правильно ?
То, что при i==0 , последует i-- ?

Ну если ему надо, что бы в конце плавного затухания светодиод на 2мс вспыхивал на все деньги, то да , именно так и надо написать…

последует. И что?

Мне уже весело с вас. Предпочитаете выдумывать, вместо того чтобы посмотреть книжку…

если вы хотели выставить себя неучем - то у вас получилось

На большинстве плат Arduino (на базе микроконтроллера ATmega168 или ATmega328) ШИМ поддерживают порты 3, 5, 6, 9, 10 и 11, на плате Arduino Mega порты с 2 по 13. На более ранних версиях плат Arduino analogWrite() работал только на портах 9, 10 и 11.

Для вызова analogWrite() нет необходимости устанавливать тип вход/выхода функцией pinMode().

А каким цветом будет светиться красный светодиод при analogWrite(LED_PIN, -1);…
В этом вопрос, как я понял.