Это старая версия документа!
Для вывода данных традиционно применяется двоичная система с применением логических значений 0 и 1. Но не всегда схемотехнику необходимо значение нуля или единицы.
Среди цифровых пинов контроллера выделяются несколько со знаком ~
, данные пины поддерживают сигнал ШИМ (PWM), то есть можно создать сигнал который имеет определенное напряжение и продолжительность.
Контроллер поддерживает восьмибитную ШИМ, что позволяет выбрать переменную в диапазоне значений от 0 до 256.
Давайте посмотрим это на практике, на примере плавного включения и выключения светодиода, подключенному к 3 пину.
//объявляем константу с номером пина для светодиода const int Led = 3; void setup() { pinMode(Led, OUTPUT); // инициализируем пин как выход } void loop() { // создаем цикл, где яркость (brightness) изначально равна 0, и с каждым шагом увеличивается на 1 единицу for (int brightness = 0; brightness < 255; brightness ++) { analogWrite(Led, brightness); // формируем сигнал ШИМ на пине delay(5); // создаем задержку 5 миллисекунд } // теперь производим уменьшение значения переменной (уменьшаем яркость) for (int brightness = 255; brightness >= 0; brightness --) { analogWrite(Led, brightness); delay(5); } }
Как мы уже знаем, у сигнала с широтно- импульсной модуляцией есть два параметра- частота и коэффициент заполнения(скважность). Частота сигнала ШИМ в контроллере около 500 герц, а коэффициент заполнения сигнала будем задавать с помощью функции analogWrite(Led, brightness)
, где:
Для плавного изменения яркости светодиода необходимо изменять коэффициент заполнения, для плавного увеличения или уменьшения мы будем использовать оператор цикла for()
Операторы цикла используется для повторения блока операторов, заключенных в фигурные скобки.
Подробнее о цикле For
В условии цикла for мы записали, чтобы наша переменная brightness увеличивалась от 0 до 255, с шагом 1, то есть выражения в теле цикла (заключенные в фигурные скобки) будут повторяться пока значение переменной не достигнет 255, после этого выполнение цикла завершиться.
Попробуй изменить программу так, чтобы светодиод имел не два, а 3 или более вариантов яркости, которые переключались бы по- очереди.