Лабораторная работа 3. управляемый «вручную» Светодиод
Цель работы:
Знакомство с принципом работы потенциометра, а также применение полученных навыков для создания программы управления яркостью светодиода «вручную», используя значение напряжения, выставляемое потенциометром.
Теоретическая часть
Переписывать код для того, чтобы поменять яркость свечения свето- диода не всегда уместно. Чтобы получать для элемента электрической цепи нужное напряжение, не меняя при этом выходное напряжение, обычно подключают резисторы. Обыкновенные резисторы предоставляют нужное напряжение, но изменить его, не подключая новые резисторы, невозможно. В случае, если значение напряжения элемента цепи нужно менять в реальном времени, используют особый тип резисторов - переменные резисторы, или потенциометры. Потенциометры позволяют механически (вручную) изменять напряжение на элементе.
Потенциометры различают на классические, которые чаще всего являются резисторами с подвижным отводным контактом, и цифровые, которые являются интегральными схемами, не имеющими подвижных частей, способными регулировать напряжение с определенным шагом.
Потенциометр – это делитель напряжения из двух последовательно соединенных резисторов в одном корпусе. Устройство имеет три контакта: питание, земля и выход (Рисунок 3.1). Поскольку резисторы соединены последовательно, то через них проходит одинаковый ток. Поворотом ручки потенциометра меняется соотношение сопротивлений R1 и R2, благодаря чему изменяются напряжения каждого из резисторов. Рассмотрим подробнее этот принцип ниже.
Воспользовавшись законом Ома \((U = I * R)\) для описания напряжений каждого из резисторов, имеем:
Сложив оба выражения, получаем:
Рисунок 3.1. Потенциометр и его принципиальная схема
Подставив полученное выражение силы тока в систему выше, получим следующие значения выходных напряжений потенциометра:
Практическая часть
В данной лабораторной работе необходимо разработать программу, которая будет управлять яркостью лампочки (светодиода). Прежде чем приступить к написанию программы, необходимо рассмотреть работу основных частей её кода.
Функция для приема аналогового сигнала analogRead.
Описание:
Данная функция считывает значение напряжения на аналоговом входе и преобразует в значение от 0 (0 В) до 1023 (5 В), 1024 шага по 0,0049 В. Работает функция с помощью аналого-цифрового преобразователя (АЦП).
Синтаксис:
analogRead ( pin );
Параметры:
pin – номер пина. Возвращаемое значение:
int (от 0 до 1023)
Схема подключения:
При выполнении данной лабораторной работы используется следующая схема подключения (Рисунок 3.2). Для реализации проекта потребуются следующие компоненты: макетная плата, светодиод (1 шт), резистор на 220 Ом (1 шт), потенциометр и провода.
Рисунок 3.2. Схема подключения
После сборки cхема имеет следующий вид (Рисунок 3.3):
Рисунок 3.3. Внешний вид схемы после сборки
Рабочая программа:
// Объявление переменной led_pin и pot_pin, пин светодиода
// и потенциометра соответственно.
// Запись значения номера для каждого пина.
int led_pin = 12;
int pot_pin = A0;
void setup()
{ // Настройка пина светодиода на режим выхода,
pinMode ( led_pin, OUTPUT );
// а пина потенциометра на режим входа
pinMode ( pot_pin, INPUT );}
void loop()
{// Объявление местных переменных rotation (поворот) и brightness (яр- кость).
// При объявлении переменных одного типа не обязательно
// каждый раз заново писать int, а можно написать через запятую.
int rotation, brightness;
// Считывание в rotation значения напряжения с потенциометра
// пропорционально углу поворота ручки, запись в rotation
// значения от 0 до 1023.
rotation = analogRead ( pot_pin );
// Присваивание значению яркости значения с rotation,
// деленное на 4, так как в rotation значения от функции
// analogRead меняются от 0 до 1023, а в brightness от analogWrite
// будут записаны значения от 0 до 255, так что 1/4 можно назвать
// поправочным коэффициентом.
brightness = rotation / 4;
// Выдача значения яркости с переменной brightness на светодиод.
analogWrite ( led_pin, brightness );
}
Также микроконтроллер позволяет воспользоваться уже встроенным в плату потенциометром. Всего на плате имеется шесть потенциометров. В коде рабочей программы идёт обращение к первому встроенному потенциометру, он подключен к А10 пину.
Схема подключения:
Для реализации данной рабочей программы используется следующая схема подключения (Рисунок 3.4) и следующие компоненты: макетная плата, светодиод (1 шт), резистор на 220 Ом (1 шт), провода.
Рисунок 3.4. Cхема подключения
После сборки схема имеет следующий вид (Рисунок 3.5):
Рисунок 3.5. Внешний вид схемы после сборки
Рабочая программа:
// Объявление переменной led_pin и pot_pin, пин светодиода
// и потенциометра соответственно.
// Запись значения номера для каждого пина.
int led_pin = 12;
int pot_pin = A10; void setup()
{
// Настройка пина светодиода на режим выхода,
pinMode ( led_pin, OUTPUT );
// а пина потенциометра на режим входа
pinMode ( pot_pin, INPUT );
}
void loop()
{
// Объявление местных переменных rotation (поворот) и brightness (яр- кость).
// При объявлении переменных одного типа не обязательно
// каждый раз заново писать int, а можно написать через запятую
int rotation, brightness;
// Считывание в rotation значения напряжения с потенциометра
// пропорционально углу поворота ручки, запись в rotation
// значения от 0 до 1023.
rotation = analogRead ( pot_pin );
// Присваивание значению яркости значения с rotation,
// деленное на 4, так как в rotation значения от функции
// analogRead меняются от 0 до 1023, а в brightness от analogWrite
// будут записаны значения от 0 до 255, так что 1/4 можно назвать
// поправочным коэффициентом
brightness = rotation / 4;
// Выдача значения яркости с переменной brightness на светодиод.
analogWrite ( led_pin, brightness );
}
Список контрольных вопросов:
- Чем отличается потенциометр от обыкновенного резистора?
- Что такое и как работает цифровые потенциометры?
- Как работает классический потенциометр?
- Какие выходы имеет потенциометр?
- Как работает функция analogRead?
- Как расшифровывается аббревиатура АЦП?
- Какие значения возвращает функция analogRead?
- Какие параметры имеет функция analogRead?
Список дополнительных задач:
- Использовать большее количество светодиодов.
- Объединить эту лабораторную работу с предыдущей таким образом, чтобы регулировать свечение светодиода можно было и программным способом, и вручную.
Center-nav