4.03.1. Лабораторная работа №4.3.1.md
Потенциометр
Тема работы
В предыдущих параграфах мы научились отправлять сигналы, а теперь пора научиться их получать, причём не просто «вкл/выкл», а в виде плавных значений. В этой лабораторной работе мы подключим потенциометр к аналоговому входу Рудирона
и напишем программу, которая будет считывать его положение и выводить данные в монитор порта. Вы своими глазами увидите, как микроконтроллер «оцифровывает» реальный мир.
Цель
- Научиться подключать аналоговые компоненты (потенциометр) к аналоговым входам
Рудирона
. - На практике освоить команду
analogRead()
для считывания аналогового напряжения. - Научиться использовать монитор последовательного порта для отладки и просмотра данных с микроконтроллера.
Оборудование и материалы
- Отладочная плата
Рудирон
. - Макетная плата.
- 1 потенциометр (любого номинала, например, 10 кОм).
- 3 соединительных провода.
- USB-кабель для подключения
Рудирона
к компьютеру. - Компьютер с настроенной средой
Arduino IDE
.
Ход работы
-
Как работает потенциометр?
Потенциометр — это, по сути, регулируемый делитель напряжения. У него три вывод - два крайних и один центральный (ползунок).
- На крайние выводы мы подаём питание - один на
3.3V
, другой наGND
. - Когда мы вращаем ручку, ползунок перемещается по резистивному слою внутри. Напряжение на центральном выводе плавно меняется от 0 В (когда ползунок у вывода, подключённого к
GND
) до 3.3 В (когда ползунок у вывода, подключённого к3.3V
).
Именно это плавно меняющееся напряжение мы и будем измерять с помощью АЦП.
- На крайние выводы мы подаём питание - один на
-
Сборка схемы
Схема подключения очень проста.
- Вставьте потенциометр в макетную плату.
- Соедините с
Рудироном
:- Один крайний вывод потенциометра подключите к пину
3.3V
наРудироне
. - Другой крайний вывод подключите к пину
GND
. - Центральный вывод (ползунок) подключите к одному из аналоговых входов
Рудирона
, например, к пинуA0
.
- Один крайний вывод потенциометра подключите к пину
-
Написание и загрузка кода
- Установите перемычку
PRG | RUN
в положениеPRG
. -
Откройте
Arduino IDE
и введите следующий код:// Указываем, к какому аналоговому пину подключен потенциометр const int potPin = A0; void setup() { // Инициализируем последовательную связь для вывода данных // Скорость 9600 бод — стандарт для таких задач Serial.begin(9600); } void loop() { // Считываем аналоговое значение с пина A0 // Результат будет в диапазоне от 0 до 4095 int potValue = analogRead(potPin); // Выводим полученное значение в монитор порта Serial.print("Значение с потенциометра: "); Serial.println(potValue); // Небольшая задержка, чтобы не перегружать монитор данными delay(100); }
- Нажмите кнопку «Upload», чтобы загрузить код на плату.
- Установите перемычку
-
Проверка работы
- После загрузки кода откройте Монитор последовательного порта. Для этого в
Arduino IDE
нажмите на иконку с лупой в правом верхнем углу или выберите в меню Tools → Serial Monitor. - В открывшемся окне убедитесь, что в правом нижнем углу выбрана скорость 9600 бод.
- Теперь начните медленно вращать ручку потенциометра. Вы увидите, как в мониторе порта числа плавно меняются: от значений, близких к 0, до значений, близких к 4095.
- После загрузки кода откройте Монитор последовательного порта. Для этого в
Результаты
Вы успешно считали аналоговый сигнал! Вы наглядно увидели, как АЦП преобразует физическое действие (поворот ручки) и соответствующее ему напряжение в цифровое значение, которое может использовать ваша программа.
Анализ результатов
analogRead(potPin)
. Эта команда запускает АЦП, который измеряет напряжение на пинеA0
и возвращает число от 0 до 4095.Serial.begin(9600)
. ИнициализируетUART
— интерфейс для связи с компьютером. Число 9600 — это скорость передачи данных (бит в секунду). Важно, чтобы она совпадала со скоростью, установленной в мониторе порта.Serial.println(potValue)
. Отправляет значение переменнойpotValue
на компьютер, чтобы мы могли его увидеть.println
также добавляет символ новой строки, поэтому каждое новое значение выводится с новой строчки.
Выводы
В этой лабораторной работе вы научились:
- Подключать аналоговые датчики к микроконтроллеру.
- Считывать аналоговые сигналы с помощью команды
analogRead()
. - Использовать монитор последовательного порта — важнейший инструмент для отладки и получения данных от ваших устройств.
Вопросы для самопроверки
- Какая команда используется для чтения аналогового сигнала?
- В каком диапазоне
Рудирон
возвращает значения после чтения аналогового сигнала? С чем это связано? - Зачем нужна команда
Serial.begin()
? - Что произойдёт, если поменять местами провода, подключённые к
3.3V
иGND
на потенциометре? - Как изменить код, чтобы он выводил не «сырые» значения (0-4095), а напряжение в вольтах (0-3.3 В)? (Подсказка, используйте математические операции и знания о шаге квантования).
Вы научились «слушать» аналоговый мир! В следующей лабораторной работе мы применим эти знания для управления яркостью RGB-светодиода
с помощью потенциометра, создав таким образом цифровой диммер и переключатель цветов.
- Страницы
- 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