kz ru
Каталог

Проект 2: Регулировка Яркости Светодиода

В предыдущем уроке мы управляли включением и выключением светодиода, заставляя его мигать. В этом проекте мы будем управлять яркостью светодиода с помощью ШИМ для имитации эффекта дыхания. ШИМ - это метод управления аналоговым выходом с помощью цифровых средств. Цифровое управление используется для генерации прямоугольных волн с различными коэффициентами заполнения (сигнала, который постоянно переключается между высоким и низким уровнями) для управления аналоговым выходом. Обычно напряжение на входах портов составляет 0В и 5В. Что если требуется 3В? Или переключение между 1В, 3В и 3.5В? Мы не можем постоянно изменять резисторы. Поэтому мы прибегаем к ШИМу. Для цифрового выхода Arduino есть только LOW и HIGH, которые соответствуют напряжению 0В и 5В. Вы можете определить LOW как 0 и HIGH как 1 и заставить Arduino выдавать пятьсот сигналов 0 или 1 за 1 сек. Если все пятьсот - 1, это 5В; если все - 0, это 0В. Если выводится 010101010101, то выходной порт будет 2.5В, что похоже на показ фильма. Фильмы, которые мы смотрим, не являются полностью непрерывными. Фактически он выводит 25 кадров в секунду. В этом случае человек не видит этого, как и ШИМ. Если нам нужно разное напряжение, нам нужно контролировать соотношение 0 и 1. Чем больше сигналов 0,1 выводится за единицу времени, тем точнее управление.

Схема подключения:
Не изменяйте подключение.

Тестовый код:

//*****************************************************************
/*
4wd BT Car
lesson 2.1
PWM
https://alash-electronics.kz/blogs/wiki
*/
int ledPin = 9; // Определение пина светодиода на D9
int value;
void setup () {
  pinMode (ledPin, OUTPUT); // инициализация пина светодиода как выхода.
}
void loop () {
  for (value = 0; value <255; value = value + 1)
  {
    analogWrite (ledPin, value); // Светодиод постепенно зажигается
    delay (5); // задержка 5 мс
  }
  for (value = 255; value> 0; value = value-1)
  {
    analogWrite (ledPin, value); // Светодиод постепенно гаснет
    delay (5); // задержка 5 мс
  }
}
//*****************************************************************

Результат теста:

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

Объяснение кода:
Если нам нужно повторить определенное утверждение, мы можем использовать оператор for. Формат оператора for показан ниже:

FOR циклическая последовательность:
Круг 1:    1 → 2 → 3 → ... → 253 → 254
Круг 2:    2 → 3 → ... → 253 → 254
Круг 3:    3 → ... → 253 → 254

Пока не установлено число 255, цикл "for" не закончится. Зная этот порядок, вернемся к коду:

for (int value = 0; value < 255; value=value+1){
...}
for (int value = 255; value >0; value=value-1){
...}

Два оператора "for" заставляют значение увеличиваться от 0 до 255, затем уменьшаться от 255 до 0, затем увеличиваться до 255.... бесконечный цикл.

Практика расширения:

Давайте изменим значение задержки, оставив пин неизменным, и посмотрим, как изменится светодиод.

//*****************************************************************
/*
4wd BT Car
lesson 2.2
PWM
https://alash-electronics.kz/blogs/wiki
*/
int ledPin = 9; // Определение пина светодиода на D9
void setup () {
  pinMode(ledPin, OUTPUT); // инициализация пина светодиода как выхода.
}
void loop () {
  for (int value = 0; value <255; value = value + 1) 
  {
    analogWrite (ledPin, value); // Светодиод постепенно зажигается
    delay (30); // задержка 30 мс
  }
  for (int value = 255; value> 0; value = value-1) 
  {
    analogWrite (ledPin, value); // Светодиод постепенно гаснет
    delay (30); // задержка 30 мс
  }
}
//*****************************************************************
Загрузите код на плату разработки, и светодиод будет мигать медленнее.

Комментарии
Отзывов еще никто не оставлял
Товары упомянутые в статье
Нет в наличии
Предзаказ
арт.
Светофор, LED индикатор для Arduino, напряжение питания 5В.
250 тг
Нет в наличии
Предзаказ
арт.
Платформа построена на микроконтроллере ATmega328P. Arduino LilyPad была создана Leah...
90 тг
Предзаказ
Предзаказ успешно отправлен!
Имя *
Телефон *
Добавить в корзину
Название товара
100 тг
1 шт.
Перейти в корзину
Обратный звонок
Запрос успешно отправлен!
Имя *
Телефон *
Заказ в один клик
С помощью уведомлений о заказе можно не только получать актуальную информацию по заказу, но и иметь быстрый канал связи с магазином