Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Лабораторная работа 7: Обработка аналоговых сигналов с помощью микро-ЭВМ Freeduino



 

Цель работы: научиться работать с аналоговыми сигналами

 

Описание работы с АЦП

Многие микроконтроллеры AVR, в том числе и AtMega16, имеют на борту АЦП последовательного приближения.

АЦП это десятиразрядное, однако при точности +/- 2 минимально значащих разрядов обычно его считают восьмиразрядным, так как в младших двух разрядах обычно отсутствует полезный сигнал. Тем не менее, это неплохой инструмент для контроля напряжения, в восьмиразрядном режиме имеющий 256 отсчетов и выдающее частоту дискретизации до 15кГц (15 тысяч выборок в секунду).

Конфигурация источника

Сигнал в АЦП подается через мультиплексор, с одного из восьми (в лучшем случае, часто бывает меньше) входов. Выбор входа осуществляется регистром ADMUX, а точнее его битами MUX3…MUX0. Записанное туда число определяет выбраный вход. Например, если MUX3..0 = 0100, то подключен вывод ADC4.

Кроме того, существует несколько служебных комбинаций битов MUX, использующихся для калибровки. Например, 1110 подключает к АЦП внутренний источник опорного напряжения на 1.22 вольта. Если записать в MUX3..0 все единицы, то АЦП будет подключено на землю. Это полезно для выявления различных шумов и помех.

У старших AVR семейства Mega (8535, 16, 32, 128) есть возможность включить АЦП в режиме дифференциального входа. Это когда на два входа приходят разные напряжения. Одно вычитается из другого, и может умножаться на коэффициент усиления.

Мультиплексирование каналов осуществляется только после того, как завершится преобразование, поэтому можно запускать АЦП на обсчет входных значений, записывать в MUX3..0 параметры другого входа, и готовится снимать данные уже оттуда.

Выбор опорного сигнала

Это максимальное напряжение, которое будет взято за максимум при измерениях. Опорное напряжение должно быть как можно стабильней, без помех и колебаний — от этого кардинальным образом зависит точность работы АЦП. Задается он в битах REFS1..0 регистра ADMUX.

По умолчанию там стоит REFS1..0 = 00 — внешний ИОН, подключенный к входу AREF. Это может быть напряжение со специальной микросхемы опорного напряжения.

REFS1..0 = 01 - просто берется напряжение питания.

REFS1..0 = 11 - внутренний источник опорного напряжения на 2.56 вольт.

Скорость работы АЦП

Частота выборки АЦП задается в битах предделителя ADPS2…0 регистра ADCSR. Таблицу можно найти в даташите на соответствующий МК, однако оптимальная точность работы модуля АЦП находится в пределах 50…200кГц, поэтому предделитель стоит настраивать исходя из этих соображений. С повышением частоты точность падает.

 

Описание стенда

На стенде для изучения методов обработки аналоговых сигналов (рис.1) закреплена плата Freeduino, датчик давления, прижимной винт, с помощью которого создается усилие, два ограничителя, один неподвижный, другой подвижный, между ними устанавливается упругий элемент. С помощью прижимного регулировочного винта можно перемещать ограничитель, тем самым изменяя усилие и придавая деформацию упругому элементу. Регулировочный винт упирается в измерительный элемент датчика.

Рис. 1. Стенд для изучения методов обработки аналоговых сигналов

 

 

Описание датчика

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

Интегрированная среда разработки Arduino это кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату. Среда разработки основана на языке программирования Processing и спроектирована для программирования новичками, не знакомыми близко с разработкой программного обеспечения

Среда разработки Arduino состоит из встроенного текстового редактора программного кода, области сообщений, окна вывода текста(консоли), панели инструментов с кнопками часто используемых команд и нескольких меню. Для загрузки программ и связи среда разработки подключается к аппаратной части Arduino.

 

Выполнение работы

В ходе данной работы проведем обработку аналоговых сигналов с использованием модуля Freeduino. У модуля Freeduino есть 6 аналоговых портов. Мы будем использовать 0 и 1. Поэтому в программе необходимо инициализировать их.

 

const int analogInPin0=A0

const int analogInPin1=A1

 

А0 и А1 соответственно 0 и 1 аналоговые порты.

В основном цикле происходит обработка сигналов с датчика. Для чтения сигнала с датчика существует команда AnalogRead. Далее присваиваем переменным значения сигналов с A0 и A1 переменным ValuePin 2 и ValuePin 4 соответственно.

Чтение сигнала с датчика происходит 100 раз внутри цикла, сигналы суммируются.

 

for (i=0; i=100; i++)

ValuePin2=analogRead(analogInPin1)

Sum1=sum1+ ValuePin2

ValuePin4=analogRead(analogInPin0)

Sum2=sum2+ ValuePin4

 

В программе предусмотрена задержка в 1мс.

 

delay(1)

 

 После выхода из цикла получившуюся сумму сигналов делим на 100, чтобы найти среднее.

 

ValuePin2=sum1/100;

ValuePin4=sum2/100;

 

Это позволяет сгладить вылеты, шумы сигнала.

Далее находим разницу между двумя средними значениями.

 

value=valuePin2-ValuePin4

 

 И непосредственно в порт выдается уже значение разности между сигналами.

Подключим питание и начнем изменять положение ограничителя, показания датчика начнут изменяться.

Необходимо отметить, что разрядность АЦП составляет 1024, т.е. АЦП 10-битное. Формально значения, которые поступают непосредственно в результате выполнения команды AnalogRead меняются от 0, что соответствует 0 Вольт, до 1023, что соответствует 5 Вольтам.

Получим графики при различных усилиях:

 

1) При плавном нажатии получили график зашумленный, но с тенденцией нарастания

 

 

2)  При точечном нажатии получили график периодического усилия

 

 

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

9. Что такое АЦП?

10. Как подается сигнал на АЦП?

11. Назовите основные компоненты стенда.

12. Что в данной работе используется в качестве источника аналогового сигнала?

13. Зачем нужна задержка в 1 мс в программе?


 

Учебная литература по курсу

1. Поляков К.Ю. Основы теории цифровых систем управления: учеб. пособие; СПбГМТУ. – СПб.: 2006. 161 с.

2. Г. Олссон, Д. Пиани. Цифровые системы автоматизации и управления. – СПб.: Невский диалект, 2001. – 557с, илл.

3. Николайчук О.И. Современные средства оптимизации.М.: Солон-Пресс, 2006. 256 с.

4. Музылева И.В. Элементная база для построения цифровых систем управления. М.: Техносфера, 2006. 144с.

5. Денисенко В.В. Компьютерное управление технологическим процессом, экспериментов, оборудованием. М.: Горячая линия – Телеком, 2009. 608 с., ил.

6. Левин Л. М. Введение в цифровую электронику. М.: Высшая школа, 1999 г. - 430 с.

7. Яцун С.Ф., Галицына Т.В. Аналого-цифровые системы автоматического управления: Учеб. пособие/ Курск. гос. техн. ун.-т, Курск, 2006. - 187с.

8. Голубцов М. С., Кириченкова А.В.. Микроконтроллеры AVR: от простого к сложному. – М.: СОЛОН-Пресс, 2005. 304с.

9. Воротников С. А. Информационные устройства робототехнических систем: Учеб. пособие – М.: Изд-во МГТУ им. Н. Э. Баумана, 2005.- 384с.

10. www.pcports.ru

11. www.easyelectronics.ru

12. www.avr123.ru

 

 


Поделиться:



Последнее изменение этой страницы: 2019-03-20; Просмотров: 273; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь