4.03.1. Лабораторная работа №4.3.1.md


Потенциометр

Тема работы

В предыдущих параграфах мы научились отправлять сигналы, а теперь пора научиться их получать, причём не просто «вкл/выкл», а в виде плавных значений. В этой лабораторной работе мы подключим потенциометр к аналоговому входу Рудирона и напишем программу, которая будет считывать его положение и выводить данные в монитор порта. Вы своими глазами увидите, как микроконтроллер «оцифровывает» реальный мир.

Цель

  • Научиться подключать аналоговые компоненты (потенциометр) к аналоговым входам Рудирона.
  • На практике освоить команду analogRead() для считывания аналогового напряжения.
  • Научиться использовать монитор последовательного порта для отладки и просмотра данных с микроконтроллера.

Оборудование и материалы

  • Отладочная плата Рудирон.
  • Макетная плата.
  • 1 потенциометр (любого номинала, например, 10 кОм).
  • 3 соединительных провода.
  • USB-кабель для подключения Рудирона к компьютеру.
  • Компьютер с настроенной средой Arduino IDE.

Ход работы

  1. Как работает потенциометр?

    Потенциометр — это, по сути, регулируемый делитель напряжения. У него три вывод - два крайних и один центральный (ползунок).

    • На крайние выводы мы подаём питание - один на 3.3V, другой на GND.
    • Когда мы вращаем ручку, ползунок перемещается по резистивному слою внутри. Напряжение на центральном выводе плавно меняется от 0 В (когда ползунок у вывода, подключённого к GND) до 3.3 В (когда ползунок у вывода, подключённого к 3.3V).

    Именно это плавно меняющееся напряжение мы и будем измерять с помощью АЦП.

  2. Сборка схемы

    Схема подключения очень проста.

    • Вставьте потенциометр в макетную плату.
    • Соедините с Рудироном:
      • Один крайний вывод потенциометра подключите к пину 3.3V на Рудироне.
      • Другой крайний вывод подключите к пину GND.
      • Центральный вывод (ползунок) подключите к одному из аналоговых входов Рудирона, например, к пину A0.
  3. Написание и загрузка кода

    • Установите перемычку 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», чтобы загрузить код на плату.
  4. Проверка работы

    • После загрузки кода откройте Монитор последовательного порта. Для этого в Arduino IDE нажмите на иконку с лупой в правом верхнем углу или выберите в меню Tools → Serial Monitor.
    • В открывшемся окне убедитесь, что в правом нижнем углу выбрана скорость 9600 бод.
    • Теперь начните медленно вращать ручку потенциометра. Вы увидите, как в мониторе порта числа плавно меняются: от значений, близких к 0, до значений, близких к 4095.

Результаты

Вы успешно считали аналоговый сигнал! Вы наглядно увидели, как АЦП преобразует физическое действие (поворот ручки) и соответствующее ему напряжение в цифровое значение, которое может использовать ваша программа.

Анализ результатов

  • analogRead(potPin). Эта команда запускает АЦП, который измеряет напряжение на пине A0 и возвращает число от 0 до 4095.
  • Serial.begin(9600). Инициализирует UART — интерфейс для связи с компьютером. Число 9600 — это скорость передачи данных (бит в секунду). Важно, чтобы она совпадала со скоростью, установленной в мониторе порта.
  • Serial.println(potValue). Отправляет значение переменной potValue на компьютер, чтобы мы могли его увидеть. println также добавляет символ новой строки, поэтому каждое новое значение выводится с новой строчки.

Выводы

В этой лабораторной работе вы научились:

  • Подключать аналоговые датчики к микроконтроллеру.
  • Считывать аналоговые сигналы с помощью команды analogRead().
  • Использовать монитор последовательного порта — важнейший инструмент для отладки и получения данных от ваших устройств.

Вопросы для самопроверки

  1. Какая команда используется для чтения аналогового сигнала?
  2. В каком диапазоне Рудирон возвращает значения после чтения аналогового сигнала? С чем это связано?
  3. Зачем нужна команда Serial.begin()?
  4. Что произойдёт, если поменять местами провода, подключённые к 3.3V и GND на потенциометре?
  5. Как изменить код, чтобы он выводил не «сырые» значения (0-4095), а напряжение в вольтах (0-3.3 В)? (Подсказка, используйте математические операции и знания о шаге квантования).

Вы научились «слушать» аналоговый мир! В следующей лабораторной работе мы применим эти знания для управления яркостью RGB-светодиода с помощью потенциометра, создав таким образом цифровой диммер и переключатель цветов.