1.03. Лабораторная работа №1.3.md
Плавное управление светом
Тема работы
В предыдущей работе мы научились просто включать и выключать светодиоды. А что, если заставить их светиться не резко, а плавно, как будто они «дышат»? В этой лабораторной работе вы напишете программу, которая будет плавно увеличивать и уменьшать яркость встроенных светодиодов L1
и L2
. Когда один разгорается, другой затухает, создавая красивый, завораживающий эффект. Это ваш первый шаг к управлению не только состоянием (вкл/выкл), но и интенсивностью сигнала!
Цель
Научиться плавно управлять яркостью светодиодов с помощью готовой программы и закрепить навыки загрузки кода на плату Рудирон
.
Оборудование и материалы
- Отладочная плата
Рудирон
. - USB-кабель (тип USB-A на USB-B) для подключения
Рудирона
к компьютеру. - Компьютер с установленной средой разработки
Arduino IDE
.
Ход работы
-
Подготовка и подключение платы
Для этого проекта нам не понадобятся внешние компоненты — всё уже есть на плате! Нам нужно лишь правильно её настроить и подключить.
- Установите перемычку
PRG | RUN
в положениеPRG
. Это режим для загрузки новой программы. - Подключите плату
Рудирон
к компьютеру с помощью USB-кабеля. Убедитесь, что загорелся светодиод питания. - Откройте
Arduino IDE
и выберите вашу плату (Rudiron_Buterbrod_R10_20MHz
) и правильный COM-порт в меню Tools.
- Установите перемычку
-
Написание и загрузка кода
Теперь напишем код, который создаст эффект плавного перетекания света между светодиодами
L1
иL2
.- В
Arduino IDE
создайте новый скетч (File → New
). -
Полностью сотрите в нём весь шаблонный текст и вставьте следующий код:
// Объявляем константы для пинов светодиодов const int L1Pin = 5; // Светодиод L1 const int L2Pin = 7; // Светодиод L2 void setup() { // Настраивать пины с помощью pinMode() pinMode(L1Pin, OUTPUT); pinMode(L2Pin, OUTPUT); } void loop() { // Этот цикл заставляет L1 плавно разгораться, а L2 - плавно затухать for (int brightness = 0; brightness <= 255; brightness++) { analogWrite(L1Pin, brightness); analogWrite(L2Pin, 255 - brightness); delay(10); // Небольшая пауза для плавности } // Этот цикл делает то же самое, но наоборот for (int brightness = 255; brightness >= 0; brightness--) { analogWrite(L1Pin, brightness); analogWrite(L2Pin, 255 - brightness); delay(10); // Небольшая пауза } }
- Нажмите кнопку «Upload» (стрелка вправо), чтобы загрузить код на плату.
- В
-
Наблюдение за результатом
Сразу после загрузки посмотрите на светодиоды
L1
иL2
. Вы увидите, как один из них плавно разгорается, пока другой так же плавно гаснет, и наоборот. Это создаёт красивый, непрерывный эффект «дыхания». -
Задание для самостоятельной работы
Попробуйте изменить значение в
delay(10)
. Что произойдёт, если установить его на1
? А если на50
? Поэкспериментируйте со скоростью «дыхания» светодиодов, чтобы понять, как небольшая пауза влияет на плавность эффекта.
Результаты
После выполнения работы вы загрузили на плату Рудирон
программу, которая плавно управляет яркостью встроенных светодиодов L1
и L2
, создавая эффект перетекающего света.
Анализ результатов
В этой работе мы использовали команду analogWrite()
. В отличие от digitalWrite()
, которая может только включать и выключать, analogWrite()
позволяет задавать яркость светодиода числом от 0 (погас) до 255 (максимальная яркость). Программа, которую мы загрузили, просто плавно перебирает эти числа для обоих светодиодов в противофазе, заставляя их то разгораться, то затухать.
Выводы
Вы научились загружать на плату код для управления яркостью светодиодов. Вы увидели, как с помощью программирования можно создавать не только простые включения, но и красивые, плавные эффекты.
Вопросы для самопроверки
- Какая команда используется для плавного управления яркостью?
- Какое число нужно передать в эту команду, чтобы светодиод горел на максимальной яркости? А чтобы он полностью погас?
- Какой пин на плате
Рудирон
соответствует светодиодуL1
? А какой —L2
? - Что делает выражение
255 - brightness
в коде? - Как изменить код, чтобы оба светодиода «дышали» синхронно (одновременно разгорались и затухали)?
- Что произойдёт, если в
delay()
поставить значение0
?
Вы освоили плавное управление светом и создали свой первый динамический эффект! Теперь вы готовы к более сложным проектам. Переходите к следующей лабораторной работе, чтобы научиться передавать секретные сообщения с помощью азбуки Морзе.
- Страницы
- 1. Введение
- 1.01. Лабораторная работа №1.1
- 1.02. Лабораторная работа №1.2
- 1.03. Лабораторная работа №1.3
- 1.04. Лабораторная работа №1.4
- 1.05. Лабораторная работа №1.5
- 2. Основы электроники
- 2.01. Электрический ток и параметры цепи
- 2.01.1. Лабораторная работа №2.1.1
- 2.01.2. Лабораторная работа №2.1.2
- 2.02. Сопротивление в цепи
- 2.02.1. Лабораторная работа №2.2.1
- 2.02.2. Лабораторная работа №2.2.2
- 2.03. Полупроводники
- 2.03.1. Лабораторная работа №2.3.1
- 2.03.2. Лабораторная работа №2.3.2
- 3. Основы программирование на C++
- 3.01. Типы данных и переменные
- 3.01.1. Практикум
- 3.02. Операторы в C++
- 3.02.1. Практикум
- 3.03. Структуры ветвления
- 3.03.1. Практикум
- 3.04. Структуры повторения
- 3.04.1. Практикум
- 3.05. Массивы
- 3.05.1. Практикум
- 3.06. Функции
- 3.06.1. Практикум
- 3.07. Решения задач
- 4. Программирование микроконтроллеров
- 4.01. Цифровые сигналы и GPIO
- 4.01.1. Лабораторная работа №4.1.1
- 4.01.2. Лабораторная работа №4.1.2
- 4.01.3. Лабораторная работа №4.1.3
- 4.01.4. Лабораторная работа №4.1.4
- 4.01.5. Лабораторная работа №4.1.5
- 4.01.6. Лабораторная работа №4.1.6
- 4.01.7. Лабораторная работа №4.1.7
- 4.01.8. Лабораторная работа №4.1.8
- 4.02. Аналоговые сигналы и ШИМ
- 4.02.1. Лабораторная работа №4.2.1
- 4.02.2. Лабораторная работа №4.2.2
- 4.02.3. Лабораторная работа №4.2.3
- 4.02.4. Лабораторная работа №4.2.4
- 4.02.5. Лабораторная работа №4.2.5
- 4.03. Аналоговый сигнал и АЦП
- 4.03.1. Лабораторная работа №4.3.1
- 4.03.2. Лабораторная работа №4.3.2
- 4.03.3. Лабораторная работа №4.3.3
- 4.03.4. Лабораторная работа №4.3.4
- 4.03.5. Лабораторная работа №4.3.5
- 4.04. Аналоговый сигнал и ЦАП
- 4.04.1. Лабораторная работа №4.4.1
- 4.04.2. Лабораторная работа №4.4.2
- 4.05. Генерация и измерение импульсов
- 4.05.1. Лабораторная работа №4.5.1
- 4.05.2. Лабораторная работа №4.5.2
- 4.06. Аппаратные прерывания
- 4.06.1. Лабораторная работа №4.6.1
- 4.06.2. Лабораторная работа №4.6.2
- 4.07. Псевдопараллелизм
- 4.07.1. Лабораторная работа №4.7.1
- 4.07.2. Лабораторная работа №4.7.2
- 4.08. Интерфейсы связи - UART
- 4.08.1. Лабораторная работа №4.8.1
- 4.09. Интерфейсы связи - I2C
- 4.09.1. Лабораторная работа №4.9.1
- 4.10. Интерфейсы связи - SPI
- 4.10.1. Лабораторная работа №4.10.1
- home
-
imgs
- 1. Введение
- 1.01. Лабораторная работа №1.1
- 1.02. Лабораторная работа №1.2
- 1.03. Лабораторная работа №1.3
- 1.04. Лабораторная работа №1.4
- 1.05. Лабораторная работа №1.5
- 2. Основы электроники
- 2.01. Электрический ток и параметры цепи
- 2.01.1. Лабораторная работа №2.1.1
- 2.01.2. Лабораторная работа №2.1.2
- 2.02. Сопротивление в цепи
- 2.02.1. Лабораторная работа №2.2.1
- 2.02.2. Лабораторная работа №2.2.2
- 2.03. Полупроводники
- 2.03.1. Лабораторная работа №2.3.1
- 2.03.2. Лабораторная работа №2.3.2
- 3. Основы программирование на C++
- 3.01. Типы данных и переменные
- 3.01.1. Практикум
- 3.02. Операторы в C++
- 3.02.1. Практикум
- 3.03. Структуры ветвления
- 3.03.1. Практикум
- 3.04. Структуры повторения
- 3.04.1. Практикум
- 3.05. Массивы
- 3.05.1. Практикум
- 3.06. Функции
- 3.06.1. Практикум
- 3.07. Решения задач
- 4. Программирование микроконтроллеров
- 4.01. Цифровые сигналы и GPIO
- 4.01.1. Лабораторная работа №4.1.1
- 4.01.2. Лабораторная работа №4.1.2
- 4.01.3. Лабораторная работа №4.1.3
- 4.01.4. Лабораторная работа №4.1.4
- 4.01.5. Лабораторная работа №4.1.5
- 4.01.6. Лабораторная работа №4.1.6
- 4.01.7. Лабораторная работа №4.1.7
- 4.01.8. Лабораторная работа №4.1.8
- 4.02. Аналоговые сигналы и ШИМ
- 4.02.1. Лабораторная работа №4.2.1
- 4.02.2. Лабораторная работа №4.2.2
- 4.02.3. Лабораторная работа №4.2.3
- 4.02.4. Лабораторная работа №4.2.4
- 4.02.5. Лабораторная работа №4.2.5
- 4.03. Аналоговый сигнал и АЦП
- 4.03.1. Лабораторная работа №4.3.1
- 4.03.2. Лабораторная работа №4.3.2
- 4.03.3. Лабораторная работа №4.3.3
- 4.03.4. Лабораторная работа №4.3.4
- 4.03.5. Лабораторная работа №4.3.5
- 4.04. Аналоговый сигнал и ЦАП
- 4.04.1. Лабораторная работа №4.4.1
- 4.04.2. Лабораторная работа №4.4.2
- 4.05. Генерация и измерение импульсов
- 4.05.1. Лабораторная работа №4.5.1
- 4.05.2. Лабораторная работа №4.5.2
- 4.06. Аппаратные прерывания
- 4.06.1. Лабораторная работа №4.6.1
- 4.06.2. Лабораторная работа №4.6.2
- 4.07. Псевдопараллелизм
- 4.07.1. Лабораторная работа №4.7.1
- 4.07.2. Лабораторная работа №4.7.2
- 4.08. Интерфейсы связи - UART
- 4.08.1. Лабораторная работа №4.8.1
- 4.09. Интерфейсы связи - I2C
- 4.09.1. Лабораторная работа №4.9.1
- 4.10. Интерфейсы связи - SPI
- 4.10.1. Лабораторная работа №4.10.1
- home