Программирование аналогового ввода-вывода
Среда разработки 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() для установки вывода как выходного.
- Меры безопасности
Во время выполнения лабораторной работы необходимо:
· соблюдать правила включения и выключения вычислительной техники;
· не подключать кабели, разъемы и другую аппаратуру к компьютеру, не относящиеся к лабораторной установке;
· при включенном напряжении сети не отключать, не подключать и не трогать кабели, соединяющие различные устройства компьютера;
· в случае обнаруженной неисправности в работе оборудования или нарушения правил техники безопасности сообщить руководителю лабораторной работы;
· не пытаться самостоятельно устранить неисправности в работе аппаратуры;
· по окончании работы привести в порядок рабочее место.
ВНИМАНИЕ!При работе за компьютером необходимо помнить: к каждому рабочему месту подведено опасное для жизни напряжение. Поэтому во время работы надо быть предельно внимательным и соблюдать все требования техники безопасности!
- Описание лабораторной установки
Лабораторная установка состоит из:
· платы отладочного модуля MSP430 LaunchPad (MSP-EXP430G2),
· платы расширения с набором внешних устройств.
Плата LaunchPad подключается к порту USB компьютера с помощью прилагаемого кабеля.
Плата расширения подключается к разъему платы LaunchPad (выводы 11… 20). Питание +5В на плату расширения подается от другого свободного порта USB компьютера с помощью кабеля. Питание на плату расширения следует подавать после того, как она подключена к плате LaunchPad. Принципиальная электрическая схема платы расширения приведена на рис. 3.4.
Рис. 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, оставив ее на одном контакте.
- Описание используемых программных комплексов
Для программирования отладочного модуля MSP430 LaunchPad (MSP-EXP430G2) в лабораторной работе используется среда разработки Energia. Для поддержки операций с последовательным интерфейсом в составе среды Energia имеется специализированный модуль Serial Monitor. Вызов окна Serial Monitor производится либо из меню Tools/Serial Monitor, либо с помощью кнопки Serial Monitor на панели инструментов.
- Задание
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 построить график изменения выходного напряжения фильтра во времени.
- Методика выполнения задания
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().
- Требования к содержанию и оформлению отчета
Отчет по лабораторной работе должен содержать:
· краткие теоретические сведения;
· формулировку задания на лабораторную работу;
· описание последовательности выполнения работы;
· изображения рабочих окон с текстами программ;
· тексты программ, не помещающихся в рабочем окне;
· выводы по лабораторной работе.
- Контрольные вопросы
10.1. Какие модули микроконтроллеров MSP430 используются для ввода и вывода аналоговых сигналов?
10.2. Каково назначение и режимы работы модуля операционного усилителя в микроконтроллерах MSP430?
10.3. Каково назначение модуля аналогового компаратора в микроконтроллерах MSP430?
10.4. Каково назначение и режимы работы модулей аналого-цифровых преобразователей в микроконтроллерах MSP430?
10.5. Каково назначение и режимы работы модулей цифро-аналоговых преобразователей в микроконтроллерах MSP430?
10.6. Как осуществляется программирование операций аналогового ввода-вывода для микроконтроллеров MSP430?
- Критерии оценки выполнения лабораторной работы
Лабораторная работа считается выполненной в том случае, если:
- студент выполнил все задания в соответствии с представленной методикой;
- результаты выполнения работы, представленные в виде отчета, соответствуют предъявленным к ним требованиям;
- студент правильно ответил на все контрольные вопросы и может интерпретировать полученные результаты.