Menu
CoddyTech

Плавное включение светодиода

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

Переменная может хранить значение яркости. Каждый раз, когда выполняется loop(), записывайте его на светодиод, немного увеличивайте и подождите немного. Светодиод становится ярче шаг за шагом:

int brightness = 0;

void loop() {
  analogWrite(9, brightness);
  brightness = brightness + 5;
  if (brightness > 255) {
    brightness = 0;
  }
  delay(30);
}

Значение яркости находится в начале скетча, как и счётчик нажатий, поэтому оно сохраняет своё значение от одного выполнения loop() до следующего. Если создать его внутри loop(), каждый раз оно снова было бы равно 0.

255 — наибольшее значение, которое принимает analogWrite(), поэтому if начинает затухание заново с 0, как только яркость превышает его.

Шаг и задержка задают скорость: около 50 шагов по 30 мс занимают полторы секунды.

challenge icon

Задание

Легко

Пусть светодиод на выводе 9 снова и снова плавно загорается:

  • храни яркость в переменной, объявленной выше setup(), начиная с 0
  • в loop() запиши её с помощью analogWrite(), прибавь 5 и подожди 30 мс
  • когда значение превысит 255, установи его обратно на 0

Нажми Run и наблюдай за светодиодом, затем нажми Check.

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

const int ledPin = 9;
// создайте здесь переменную яркости с начальным значением 0

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

void loop() {
  // задайте яркость, прибавьте 5, после 255 начните снова, подождите 30 мс
}
quiz iconПроверьте себя

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

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

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