Программирование аналогового ввода-вывода

Среда разработки Energia и язык Arduino предоставляют следующие функции для программирования аналогового ввода и вывода.

Функция int analogRead().

Описание.Читает значение определенного аналогового вывода. Микроконтроллеры MSP430, входящие в комплект отладочного модуля LaunchPad, имеют 10-битный АЦП. Это означает, что входные напряжения в диапазоне между 0В и +5В переводятся в цифровые значения от 0 до 1023. Дискретность преобразования в таком случае составляет 5/1024 = 0,0049В.
Выполнение преобразования занимает порядка 100мкс, т.е. максимальная скорость считывания составляет 10 000 раз в секунду.

Синтаксис:analogRead(pin).

Параметры:pin - номер контакта микроконтроллера, с которого следует прочесть значение входного аналогового сигнала (обычно от 0В до +5В). Доступные контакты для аналогового ввода показаны на рис. 1.9 и 1.10.

Возвращает:значение целого типа в диапазоне от 0 до 1023.

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

Функция analogWrite().

Описание: Пишет аналоговое значение (заполнение ШИМ) в порт. Может использоваться, например, для установки различной яркости свечения светодиодов, регулирования скорости двигателей. После вызова этой функции на выводе будет присутсвовать меандр с определенным коэффициентом заполнения импульсов до нового вызова этой или другой функции в применении к этому порту. Частота сигнала ШИМ состовляет примерно 490Гц.

Синтаксис:analogWrite(pin, value).

Параметры:

pin - номер контакта микроконтроллера, на который нужно выдать аналоговый сигнал. Доступные контакты для аналогового ввода показаны на рис. 1.9 и 1.10.;

value - коэффициент заполнения ШИМ-сигнала: между 0 (всегда низкий уровень) и 255 (всегда высокий уровень).

Примечание: функцияanalogWrite не имеет никакого отношения к портам АЦП и функции analogRead. Перед использованием функции analogWrite() не нужно вызывать pinMode() для установки вывода как выходного.

  1. Меры безопасности

Во время выполнения лабораторной работы необходимо:

· соблюдать правила включения и выключения вычислительной техники;

· не подключать кабели, разъемы и другую аппаратуру к компьютеру, не относящиеся к лабораторной установке;

· при включенном напряжении сети не отключать, не подключать и не трогать кабели, соединяющие различные устройства компьютера;

· в случае обнаруженной неисправности в работе оборудования или нарушения правил техники безопасности сообщить руководителю лабораторной работы;

· не пытаться самостоятельно устранить неисправности в работе аппаратуры;

· по окончании работы привести в порядок рабочее место.

ВНИМАНИЕ!При работе за компьютером необходимо помнить: к каждому рабочему месту подведено опасное для жизни напряжение. Поэтому во время работы надо быть предельно внимательным и соблюдать все требования техники безопасности!

  1. Описание лабораторной установки

Лабораторная установка состоит из:

· платы отладочного модуля MSP430 LaunchPad (MSP-EXP430G2),

· платы расширения с набором внешних устройств.

Плата LaunchPad подключается к порту USB компьютера с помощью прилагаемого кабеля.

Плата расширения подключается к разъему платы LaunchPad (выводы 11… 20). Питание +5В на плату расширения подается от другого свободного порта USB компьютера с помощью кабеля. Питание на плату расширения следует подавать после того, как она подключена к плате LaunchPad. Принципиальная электрическая схема платы расширения приведена на рис. 3.4.

Программирование аналогового ввода-вывода - student2.ru
Рис. 3.4. Принципиальная электрическая схема платы расширения

Разъем X1 подключается к плате LaunchPad. Разъем X2, распаянный на кабеле, подключается к свободному USB-порту компьютера. Инвертор на транзисторе VT1, выполненный по схеме с общим эмиттером, получает входной сигнал с вывода 11 микроконтроллера (линия порта P2.3). Светодиод VD1 в цепи коллектора транзистора служит для индикации состояния инвертора. Выходное напряжение инвертора, снимаемое с коллектора транзистора VT1, подается на вход фильтра низкой частоты – интегрирующей цепочки R4C1. Выходное напряжение фильтра, снимаемое с конденсатора C1, подается на вывод 15 микроконтроллера (линия порта P1.7, аналоговый вход A7). Напряжение с движка потенциометра R6 подается на вывод 14 микроконтроллера (линия порта P1.6, аналоговый вход A6). Резисторы R5 и R7 предназначены для защиты линий портов. На плате LaunchPad к линии порта P1.6 подключены зеленый светодиод и балластный резистор, они образуют вместе с резисторами R6, R7 делитель напряжения, из-за чего максимальное напряжение на линии P1.6 будет отличаться от напряжения питания 5В. Для устранения влияния цепи зеленого светодиода следует удалить его перемычку J5-1, рис. 1.9, оставив ее на одном контакте.

  1. Описание используемых программных комплексов

Для программирования отладочного модуля MSP430 LaunchPad (MSP-EXP430G2) в лабораторной работе используется среда разработки Energia. Для поддержки операций с последовательным интерфейсом в составе среды Energia имеется специализированный модуль Serial Monitor. Вызов окна Serial Monitor производится либо из меню Tools/Serial Monitor, либо с помощью кнопки Serial Monitor на панели инструментов.

  1. Задание

7.1. Подключить отладочный модуль MSP430 LaunchPad с установленным в DIP-гнездо микроконтроллером MSP430G2452 при помощи кабеля к разъему порта USB компьютера. Запустить среду разработки Energia. Произвести настройку связи среды разработки Energia с отладочным модулем LaunchPad.

7.2. Написать, отладить и протестировать программу управления яркостью свечения зеленого светодиода. Переключение яркости на следующий уровень должно происходить при нажатии кнопки. Количество уровней яркости – не менее четырех. Для каждой градации яркости с помощью вольтметра измерить напряжение на соответствующем выводе микроконтроллера. Результаты измерений свести в таблицу.

7.3. Подключить плату расширения к плате LaunchPad. Подключить плату расширения к свободному порту USB компьютера.

7.4. Написать, отладить и протестировать программу управления частотой мигания красного светодиода. Управление осуществить с помощью потенциометра R6 (рис. 3.4): положение движка потенциометра должно управлять частотой мигания.

7.5. Написать, отладить и протестировать программу чтения значения аналогового сигнала с движка потенциометра R6. Интервал времени между двумя последовательными чтениями:

· вариант 1 – 200 мс,

· вариант 2 – 300 мс,

· вариант 3 – 400 мс,

· вариант 4 – 500 мс.

Считанное значение сигнала должно передаваться в последовательный порт в двух видах:

· в виде значения выходного кода АЦП,

· в виде значения напряжения, с двумя знаками в дробной части числа, единица измерения [В].

7.6. Написать, отладить и протестировать программу измерения меняющегося во времени аналогового сигнала и передачи измеренных значений в последовательный порт. Измеряемый сигнал – выходной сигнал фильтра низкой частоты R4C1 (рис. 3.4). Период измерения сигнала – 50 мс. Входной сигнал для фильтра формировать последовательностью импульсов, подаваемых на вход инвертора на транзисторе VT1. Параметры импульсов:

· вариант 1 – период 5с, коэффициент заполнения 0.5, количество импульсов 5;

· вариант 2 – период 6с, коэффициент заполнения 0.3, количество импульсов 4;

· вариант 2 – период 7с, коэффициент заполнения 0.7, количество импульсов 3;

· вариант 2 – период 8с, коэффициент заполнения 0.4, количество импульсов 5.

В последовательный порт передавать значения:

· время от момента старта программы, единица измерения – миллисекунда;

· напряжение на выходе фильтра, 2 знака в дробной части числа, единица измерения – В.

После отработки заданного количества импульсов остановить последовательный порт. Скопировать таблицу значений из окна Serial Monitor, вставить скопированные данные в лист Microsoft Excel и средствами Microsoft Excel построить график изменения выходного напряжения фильтра во времени.

  1. Методика выполнения задания

8.1. Настройку программной среды Energia производить в соответствии с указаниями раздела 5 Лабораторной работы № 1.

8.2. Изучить примеры Examples/Basics/Fade, Examples/Analog/Fading. Прошить примеры в микроконтроллер и проверить их работу. Для управления уровнем выходного сигнала использовать функцию analogWrite().

8.3. Плата расширения подключается к разъему J2 платы LaunchPad. Вывод 20 (GND) разъема J2 должен совпасть с широкой общей шиной на плате расширения.

8.4. Изучить пример Examples/Analog/AnalogInput. Для чтения значения аналогового сигнала с движка потенциометра использовать функцию analogRead(), аналоговый вход A6.

8.5. Изучить примеры Examples/Basics/AnalogReadSerial, Examples/Basics/ReadAnalogVoltage. Использовать функции analogRead(), Serial.print(), Serial.println(). Использовать аналоговый вход A6 микроконтроллера. Для вычисления значения напряжения измерить вольтметром напряжение питания платы расширения. Снятия показаний АЦП произвести:

· при удаленной перемычке J5 зеленого светодиода LED2;

· при установленной перемычке.

8.6. Использовать цифровой выход 11 и аналоговый вход A7 микроконтроллера. Длительность импульса и паузы рассчитать по варианту задания. Для управления длительностью импульса и паузы использовать функцию millis(). Для выдачи импульсного сигнала в плату расширения, чтения аналогового сигнала и передачи данных в последовательный порт использовать функции digitalWrite(), analogRead(), Serial.print(), Serial.println().

  1. Требования к содержанию и оформлению отчета

Отчет по лабораторной работе должен содержать:

· краткие теоретические сведения;

· формулировку задания на лабораторную работу;

· описание последовательности выполнения работы;

· изображения рабочих окон с текстами программ;

· тексты программ, не помещающихся в рабочем окне;

· выводы по лабораторной работе.

  1. Контрольные вопросы

10.1. Какие модули микроконтроллеров MSP430 используются для ввода и вывода аналоговых сигналов?

10.2. Каково назначение и режимы работы модуля операционного усилителя в микроконтроллерах MSP430?

10.3. Каково назначение модуля аналогового компаратора в микроконтроллерах MSP430?

10.4. Каково назначение и режимы работы модулей аналого-цифровых преобразователей в микроконтроллерах MSP430?

10.5. Каково назначение и режимы работы модулей цифро-аналоговых преобразователей в микроконтроллерах MSP430?

10.6. Как осуществляется программирование операций аналогового ввода-вывода для микроконтроллеров MSP430?

  1. Критерии оценки выполнения лабораторной работы

Лабораторная работа считается выполненной в том случае, если:

  • студент выполнил все задания в соответствии с представленной методикой;
  • результаты выполнения работы, представленные в виде отчета, соответствуют предъявленным к ним требованиям;
  • студент правильно ответил на все контрольные вопросы и может интерпретировать полученные результаты.

Наши рекомендации