Учебники

Arduino — гаснет светодиод

Этот пример демонстрирует использование функции analogWrite () при отключении светодиода. AnalogWrite использует широтно-импульсную модуляцию (ШИМ), очень быстро включая и выключая цифровой вывод с различными соотношениями между включением и выключением, чтобы создать эффект затухания.

Необходимые компоненты

Вам понадобятся следующие компоненты —

  • 1 × макет
  • 1 × Arduino Uno R3
  • 1 × светодиод
  • Резистор 1 × 330 Ом
  • 2 × джемпер

Процедура

Следуйте электрической схеме и подключите компоненты на макете, как показано на рисунке ниже.

Компоненты на макете

Примечание. Чтобы узнать полярность светодиода, внимательно посмотрите на него. Более короткая из двух ножек по направлению к плоскому краю колбы указывает на отрицательную клемму.

СВЕТОДИОД

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

Резисторы

эскиз

Откройте программное обеспечение Arduino IDE на своем компьютере. Кодирование на языке Arduino будет контролировать вашу схему. Откройте новый файл эскиза, нажав Новый.

эскиз

Arduino Code

/*
   Fade
   This example shows how to fade an LED on pin 9 using the analogWrite() function.

   The analogWrite() function uses PWM, so if you want to change the pin you're using, be
   sure to use another PWM capable pin. On most Arduino, the PWM pins are identified with
   a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.
*/

int led = 9; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:

void setup() {
   // declare pin 9 to be an output:
   pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:

void loop() {
   // set the brightness of pin 9:
   analogWrite(led, brightness);
   // change the brightness for next time through the loop:
   brightness = brightness + fadeAmount;
   // reverse the direction of the fading at the ends of the fade:
   if (brightness == 0 || brightness == 255) {
      fadeAmount = -fadeAmount ;
   }
   // wait for 30 milliseconds to see the dimming effect
   delay(300);
}

Код для заметки

После объявления вывода 9 в качестве вывода светодиода ничего не нужно делать в функции setup () вашего кода. Функция analogWrite (), которую вы будете использовать в главном цикле вашего кода, требует двух аргументов: один, сообщающий функции, на какой контакт выводить запись, и другой, указывающий, какое значение ШИМ необходимо записать.

Для того чтобы светодиод погас и выключался, постепенно увеличивайте значения ШИМ с 0 (полностью выключенный) до 255 (полностью включенный), а затем возвращайтесь к 0, чтобы завершить цикл. В приведенном выше наброске значение ШИМ установлено с помощью переменной, называемой яркостью. Каждый раз в цикле он увеличивается на значение переменной fadeAmount .

Если яркость находится на пределе своего значения (0 или 255), то fadeAmount изменяется на отрицательный. Другими словами, если fadeAmount равен 5, то он равен -5. Если оно равно -5, то оно установлено на 5. В следующий раз при прохождении цикла это изменение также приводит к изменению направления яркости.

analogWrite () может очень быстро изменить значение ШИМ, поэтому задержка в конце эскиза контролирует скорость замирания. Попробуйте изменить значение задержки и посмотрите, как она меняет эффект затухания.

Результат

Вы должны видеть, что яркость светодиодов меняется постепенно.