Menu
CoddyTech

Плавное включение и выключение

Часть раздела Выходные сигналы путешествия по Arduino на Coddy. Урок 4 из 24.

Чтобы снова приглушить свет, направление шага должно измениться. Храни шаг в отдельной переменной — fadeAmount. Прибавление отрицательного числа уменьшает яркость:

int brightness = 0;
int fadeAmount = 5;

void loop() {
  analogWrite(9, brightness);
  brightness = brightness + fadeAmount;
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  delay(30);
}

Знак минус перед переменной меняет её знак на противоположный: -fadeAmount превращает 5 в -5, а -5 — обратно в 5.

if проверяет оба предела. На верхнем пределе шаг становится равен -5, и светодиод тускнеет; на нижнем он снова становится равен 5, и светодиод светит ярче. Светодиод плавно меняет яркость и никогда не переключается резко с яркого на тусклый.

challenge icon

Задание

Легко

Сделайте так, чтобы яркость светодиода на выводе 9 постепенно увеличивалась, а затем уменьшалась — снова и снова:

  • переменная fadeAmount со значением 5 рядом с brightness
  • добавляйте fadeAmount к яркости при каждом запуске loop(), затем ждите 30 мс
  • меняйте знак переменной, когда яркость достигает 0 или 255

Нажмите Run, затем Check.

Попробуйте сами

const int ledPin = 9;
int brightness = 0;
// создайте fadeAmount здесь

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  analogWrite(ledPin, brightness);
  brightness = brightness + 5;
  if (brightness > 255) {
    brightness = 0;
  }
  delay(30);
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Выходные сигналы

Потренируйтесь самостоятельно: Песочница Arduino