Реализация системы управления на базе Arduino для настройки резонансной колебательной цепи

Упрощенная модель системы регулировки. Стандартный конструктив Ардуино с платами расширения. Внешний вид Ардуино Uno. Среда разработки Arduino. Встроенный текстовый редактор программного кода. Программа управления шаговым двигателем в однофазном режиме.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык русский
Дата добавления 02.06.2015
Размер файла 4,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ РАДИОФИЗИКИ И КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ

Кафедра информатики и компьютерных систем

Курсовая работа

Реализации системы управления на базе Arduino для настройки резонансной колебательной цепи

Выполнил:

студент 4 курса 4 группы

Цед Александр Дмитриевич

Научный руководитель:

Семенович Сергей Николаевич

Минск 2015

СОДЕРЖАНИЕ

arduino резонансная колебательная цепь

ВВЕДЕНИЕ

1. ПОСТАНОВКА ЗАДАЧИ

1.1 LC- Колебательный контур

1.2 Упрощенная модель системы регулировки

2. ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ARDUINO

2.1 Аппаратная часть

2.2 Среда разработки Arduino

3. РЕАЛИЗАЦИЯ СИСТЕМЫ УПРАВЛЕНИЯ РЕЗОНАНСНЫМ LC-КОНТУРОМ

3.1 Реализация модуля управления шаговым двигателем

3.2 Реализация модуля генератора синуса

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЯ

ВВЕДЕНИЕ

Целью данного курсового проекта была реализация управляющей системы для резонансного LC контура с вынужденными колебаниями.

Система реализована на базе отладочного комплекта аппаратно-программного комплекса Arduino.

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

В качестве задающего генератора - ЦАП, реализованный по схеме R-2R на базе микроконтроллера ATmega328. Генератор подключен к первичной обмотке трансформатора.

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

1.ПОСТАНОВКА ЗАДАЧИ

1.1 LC- Колебательный контур

Колебательный контур -- электрическая цепь, в которой могут возникать колебания с частотой, определяемой параметрами цепи.

Простейший колебательный контур состоит из конденсатора и катушки индуктивности, соединенных параллельно или последовательно.

- Конденсатор C - реактивный элемент. Обладает способностью накапливать и отдавать электрическую энергию. - Катушка индуктивности L - реактивный элемент. Обладает способностью накапливать и отдавать магнитную энергию.

Схема эксперимента.

Рисунок 1.1

На схеме эксперимента изображены основные элементы:

Трансформатор

Колебательный контур

Двухполупериодный выпрямитель

Модуль генератора синуса

Модуль управления шаговым двигателем

Arduino Uno

Рисунок контура, резонансная частота

Если конденсатор ёмкостью C заряжен до напряжения U, то потенциальная энергия его заряда составит. Если параллельно заряженному конденсатору подключить катушку индуктивности L, в цепи пойдёт ток его разряда, создавая магнитное поле в катушке.

Рисунок 1.2 Колебательный контур

Магнитный поток, увеличиваясь от нуля, создаст ЭДС в направлении противоположном току в катушке, что будет препятствовать нарастанию тока в цепи, поэтому конденсатор разрядится не мгновенно, а через время t1, которое определяется индуктивностью катушки и ёмкостью конденсатора из расчёта t1 = . По истечении времени t1, когда конденсатор разрядится до нуля, ток в катушке и магнитная энергия будут максимальны. Накопленная катушкой магнитная энергия в этот момент составит. В идеальном рассмотрении, при полном отсутствии потерь в контуре, EC будет равна EL. Таким образом, электрическая энергия конденсатора перейдёт в магнитную энергию катушки.

Рисунок 1.3 График параметров контура

Изменение (уменьшение) магнитного потока накопленной энергии катушки создаст в ней ЭДС, которая продолжит ток в том же направлении и начнётся процесс заряда конденсатора индукционным током. Уменьшаясь от максимума до нуля в течении времени t2 = t1, он перезарядит конденсатор от нуля до максимального отрицательного значения (-U). Так магнитная энергия катушки перейдёт в электрическую энергию конденсатора.

Описанные интервалы t1 и t2 составят половину периода полного колебания в контуре. Во второй половине процессы аналогичны, только конденсатор будет разряжаться от отрицательного значения, а ток и магнитный поток сменят направление. Магнитная энергия вновь будет накапливаться в катушке в течении времени t3, сменив полярность полюсов.

В течении заключительного этапа колебания (t4), накопленная магнитная энергия катушки зарядит конденсатор до первоначального значения U (в случае отсутствия потерь) и процесс колебания повторится.

В реальности, при наличии потерь энергии на активном сопротивлении проводников, фазовых и магнитных потерь, колебания будут затухающими по амплитуде. Время t1 + t2 + t3 + t4 составит период колебаний .

Частота свободных колебаний контура ѓ = 1 / T

Рисунок 1.4 Колебательный контур и построечный конденсатор

Частота свободных колебаний является частотой резонанса контура, на которой реактивное сопротивление индуктивности XL=2рfL равно реактивному сопротивлению ёмкости XC=1/(2рfC).

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

Подстроенные конденсаторы (рисунок 1.5) применяются для точной подстройки емкостей колебательных контуров. Обычно эти конденсаторы включаются параллельно основным контурным конденсаторам большой емкости. Конструктивно они состоят из двух керамических элементов: неподвижного основания (статора) и подвижного диска (ротора).

Рисунок1.5 Подстроечный конденсатор

На ротор и статор методом выжигания нанесены тончайшие серебряные обкладки в виде секторов. Диэлектриком между обкладками служит керамический материал ротора. Ротор жестко закреплен на оси. При вращении ротора изменяется взаимное положение обкладок статора и ротора, что приводит к изменению емкости конденсатора. Когда сектор или капля припоя на роторе расположены против вывода на статоре, то емкость будет максимальной, а при повороте на 180° относительно указанного положения -- минимальной.

Конденсаторы переменной емкости (КПЕ) применяются в радиоприемных устройствах для плавной настройки колебательных контуров в диапазонах длинных, средних, коротких и ультракоротких волн.

В зависимости от характера изменения емкости с поворотом оси ротора на угол 1° различают следующие виды конденсаторов: прямоемкостный -- с линейной зависимостью между углом поворота и емкостью; прямоволновый -- с линейной зависимостью между углом поворота и резонансной длиной волны; прямочастотный -- с линейной зависимостью между углом поворота ротора и резонансной частотой; логарифмический (средневолновый) -- с постоянным по всей шкале изменением емкости, приходящейся на 1° угла поворота ротора.

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

Упрощенная модель системы регулировки

Реализуем генератор синуса для вынужденных колебаний на базе ЦАП R-2R и Arduino.

Рисунок 1.6Генератор синуса

Рисунок 1.7 ЦАП R-2R

Своё название (R-2R) данный ЦАП получил из-за номиналов применяемых в нём резисторов с сопротивлениями R и 2*R. Сопротивления по идее могут быть любыми (1k-2k; 10k-20k и т.д). [5]

B7..B0 -- это цифровые управляющие сигналы с выхода ARDUINO, биты формирующие цифровой код ЦАП , B7 -- старший, B0 -- младший.

Используем шаговый двигатель для изменения параметров емкости

Шамговый электродвимгатель -- это синхронный бесщёточный электродвигатель с несколькими обмотками, в котором ток, подаваемый в одну из обмоток статора, вызывает фиксацию ротора. Последовательная активация обмоток двигателя вызывает дискретные угловые перемещения (шаги) ротора.

Рисунок 1.8 Современный шаговый двигатель

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

Гибридные двигатели сочетают в себе лучшие черты двигателей с переменным магнитным сопротивлением и двигателей с постоянными магнитами.

Статор гибридного двигателя также имеет зубцы, обеспечивая большое количество эквивалентных полюсов, в отличие от основных полюсов, на которых расположены обмотки. Обычно используются 4 основных полюса для 3.6 град. двигателей и 8 основных полюсов для 1.8 -- 0.9 град. двигателей. Зубцы ротора обеспечивают меньшее сопротивление магнитной цепи в определенных положениях ротора, что улучшает статический и динамический момент. Это обеспечивается соответствующим расположением зубцов, когда часть зубцов ротора находится строго напротив зубцов статора, а часть между ними.

Ротор гибридного двигателя имеет зубцы, расположенные в осевом направлении. Ротор разделен на две части, между которыми расположен цилиндрический постоянный магнит. Таким образом, зубцы верхней половинки ротора являются северными полюсами, а зубцы нижней половинки -- южными. Кроме того, верхняя и нижняя половинки ротора повернуты друг относительно друга на половину угла шага зубцов. Число пар полюсов ротора равно количеству зубцов на одной из его половинок. Зубчатые полюсные наконечники ротора, как и статор, набраны из отдельных пластин для уменьшения потерь на вихревые токи.[2]

Используем двухполупериодный выпрямитель для анализа напряжения в контуре.

Рисунок 1,9

Диодный мост

Выпрямители бывают однополупериодными или двухполупериодными в зависимости от того, сколько полупериодов переменного тока используется - один или два. По однополупериодной схеме выполняют выпрямители, от которых требуется небольшой ток. Такую схему используют редко.[3]

В нашей системе используется двухполупериодный выпрямитель. Во время положительного полупериода ток проходит от плюса вторичной обмотки трансформатора через диод V2, сопротивление нагрузки Rн, диод V3 на минус вторичной обмотки. В это время ко второй паре диодов V1, V4 приложено обратное напряжение. Они закрыты. Во время отрицательного полупериода ток протекает от плюса обмотки (знаки в скобках) через диод V4, нагрузку Rн, диод V1 на минус вторичной обмотки.[4]

2. ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ARDUINO

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

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

В концепцию Ардуино не входит корпусной или монтажный конструктив. Разработчик выбирает метод установки и механической защиты плат самостоятельно. Сторонними производителями выпускаются наборы робототехнической электромеханики, ориентированной на работу совместно с платами Ардуино.

2.1 Аппаратная часть

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

Рисунок 2.1 Стандартный конструктив Ардуино с платами расширения

Существует несколько версий платформ Arduino. Последняя версия Leonardo базируется на микроконтроллере ATmega32u4. Uno, как и предыдущая версия Duemilanove построены на микроконтроллере Atmel ATmega328 (техническое описание). Старые версии платформы Diecimila и первая рабочая Duemilanoves были разработаны на основе Atmel ATmega168 (техническое описание), более ранние версии использовали ATmega8 (техническое описание). Arduino Mega2560, в свою очередь, построена на микроконтроллере ATmega2560 (техническое описание).

Конструктив

Ардуино и Ардуино-совместимые платы спроектированы таким образом, чтобы их можно было при необходимости расширять, добавляя в устройство новые компоненты. Эти платы расширений подключаются к Ардуино посредством установленных на них штыревых разъёмов. Существует ряд плат с унифицированным конструктивом, допускающим конструктивно жесткое соединение процессорной платы и плат расширения в стопку через штыревые линейки. Кроме того, выпускаются платы уменьшенных габаритов (например, Nano, Lilypad) и специальных конструктивов для задач робототехники. Независимыми производителями также выпускается большая гамма всевозможных датчиков и исполнительных устройств, в той или иной степени совместимых с базовым конструктивом Ардуино.

Arduino Uno

Arduino Uno контроллер построен на ATmega328 . Платформа имеет 14 цифровых вход/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи.

Рисунок 2.2 Внешний вид Ардуино Uno

В отличие от всех предыдущих плат, использовавших FTDI USB микроконтроллер для связи по USB, новый Ардуино Uno использует микроконтроллер ATmega8U2.

"Uno" переводится как один с итальянского и разработчики тем самым намекают на грядущий выход Arduino 1.0. Новая плата стала флагманом линейки плат Ардуино.

Характеристики

 Микроконтроллер

ATmega328

Рабочее напряжение

5 В

Входное напряжение (рекомендуемое)

7-12 В

Входное напряжение (предельное)

6-20 В

Цифровые Входы/Выходы

14 (6 из которых могут использоваться как выходы ШИМ)

Аналоговые входы

6

Постоянный ток через вход/выход

40 мА

Постоянный ток для вывода 3.3 В

50 мА

Флеш-память

32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика

ОЗУ

2 Кб (ATmega328)

EEPROM

1 Кб (ATmega328)

Тактовая частота

16 МГц

Память

Микроконтроллер ATmega328 располагает 32 кБ флэш памяти, из которых 0.5 кБ используется для хранения загрузчика, а также 2 кБ ОЗУ (SRAM) и 1 Кб EEPROM.(которая читается и записывается с помощью библиотеки EEPROM).

2.2 Среда разработки Arduino

Рисунок 2.3 Встроенный текстовый редактор программного кода

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

Программа, написанная в среде Arduino, называется скетч. Скетч пишется в текстовом редакторе, имеющем инструменты вырезки/вставки, поиска/замены текста. Во время сохранения и экспорта проекта в области сообщений появляются пояснения, также могут отображаться возникшие ошибки. Окно вывода текста(консоль) показывает сообщения Arduino, включающие полные отчеты об ошибках и другую информацию. Кнопки панели инструментов позволяют проверить и записать программу, создать, открыть и сохранить скетч, открыть мониторинг последовательной шины

Блокнот (Sketchbook)

Средой Arduino используется принцип блокнота: стандартное место для хранения программ (скетчей). Скетчи из блокнота открываются через меню File > Sketchbook или кнопкой Open на панели инструментов. При первом запуске программы Arduino автоматически создается директория для блокнота. Расположение блокнота меняется через диалоговое окно Preferences.

Загрузка скетча в Arduino. Перед загрузкой скетча требуется задать необходимые параметры в меню Tools > Board и Tools > Serial Port. Платформы описываются далее по тексту. В ОС Mac последовательный порт может обозначаться как dev/tty.usbserial-1B1 (для платы USB) или /dev/tty.USA19QW1b1P1.1 (для платы последовательной шины, подключенной через адаптер Keyspan USB-to-Serial). В ОС Windows порты могут обозначаться как COM1 или COM2 (для платы последовательной шины) или COM4, COM5, COM7 и выше (для платы USB). Определение порта USB производится в поле Последовательной шины USB Диспетчера устройств Windows. В ОС Linux порты могут обозначаться как /dev/ttyUSB0, /dev/ttyUSB1.

После выбора порта и платформы необходимо нажать кнопку загрузки на панели инструментов или выбрать пункт меню File > Upload to I/O Board. Современные платформы Arduino перезагружаются автоматически перед загрузкой. На старых платформах необходимо нажать кнопку перезагрузки. На большинстве плат во время процесса будут мигать светодиоды RX и TX. Среда разработки Arduino выведет сообщение об окончании загрузки или об ошибках.

При загрузке скетча используется Загрузчик (Bootloader) Arduino, небольшая программа, загружаемая в микроконтроллер на плате. Она позволяет загружать программный код без использования дополнительных аппаратных средств. Загрузчик (Bootloader) активен в течении нескольких секунд при перезагрузке платформы и при загрузке любого из скетчей в микроконтроллер. Работа Загрузчика (Bootloader) распознается по миганию светодиода (13 пин) (напр.: при перезагрузке платы).[1]

3. РЕАЛИЗАЦИЯ СИСТЕМЫ УПРАВЛЕНИЯ РЕЗОНАНСНЫМ LC-КОНТУРОМ

3.1 Реализация модуля управления шаговым двигателем

Рисунок 3.1Шаговый двигатель и драйвер

Для реализации своей системы я использовал однополярный шаговый двигателель 28-BYJ48.

Этот шаговый двигатель относится к однополярным. Имеет четыре обмотки, представляющие собой две обмотки с отводами от середины. Отводы соединены вместе, к ним подключается один из полюсов питания двигателя. На валу двигателя 28BYJ-48 расположен ротор, состоящий из множества магнитов. Поочередная подача тока на катушки создает магнитное поле, притягивающее или отталкивающее магниты. Такая конструкция позволяет снизить затраты энергии на питание двигателя.

Существуют два (всего их 3, в приложении Б содержится программа для реализации метода WAVE DRIVE) основных метода управления с помощью 4-ступенчатой последовательности импульсов и 8-ступенчатой. В 4-ступенчатой последовательности всегда подключены к питанию две из четырех обмоток двигателя. Для совершения поворота на некоторый угол - шаг, одна из включенных обмоток меняется на следующую. Если обмоткам присвоить наименования А, В, С, D, то их поочередное включение можно представить в виде последовательной смены сочетаний включенных обмоток AB-BC-CD-DA-AB(FULL STEP).

Рисунок 3.2 Основные методы управления

Программная реализация этого метода представлена в приложении А.

В 8-ступенчатой последовательности используется сначала одна обмотка потом две, потом опять одна следующая, снова две и так далее. Управление двигателем происходит в соответствии с последовательностью: A-AB-B-BC-C-CD-D-DA-A(HALF STEP). Программная реализация этого метода представлена в приложении В.

Количество фаз: 4

Потребляемый ток: каждая обмотка 160 мА, в 4-шаговом режиме 320 мА, при быстром вращении 200 мА.

Сопротивление обмотки: 50 Ом ± 7%

Количество шагов ротора: 64

Коэффициент редукции: 1/64 (при точном исследовании 1/63,68395)

Угол шага двигателя без учета редуктора:

при 4-ступенчатой последовательности 11,25 ° (32 шага на оборот)

при 8-ступенчатой последовательности 5,625 ° (64 шага на оборот)

Количество шагов вала прибора 28BYJ-48 на один оборот:

В 4-ступенчатой последовательности 32 Х 64 = 2048 шагов

В 8-ступенчатой последовательности 64 Х 64 = 4096 шагов

Изоляция класса А

Диаметр 28 мм

Высота 32 мм

Вес 30 г

Назначение выводов: А синий, B розовый, C желтый, D оранжевый, общий красный.

Программная библиотека Arduino ориентирована на 4-ступенчатый режим.

Модуль ULN2003 

На плате модуля расположена микросхема ULN2003 управляющая двигателем под действием сигналов модуля МК. Микросхема содержит составные транзисторы, обеспечивающие требуемый двигателю ток и диоды для защиты от обратной ЭДС, возникающей в отмотках. На плате установлены светодиоды для наблюдения переключения фаз двигателя. Модуль ULN2003 содержит перемычку, подающую питание на светодиоды. Если модуль питается напряжением 12 В или требуется экономить потребляемый ток или наладка системы закончена - перемычку снимают.

Размеры 28 x 28 x 20 мм[2]

Реализация модуля генератора синуса

Из двух методов(ЦАП R-2R; интегрирующая цепочка с использованием ШИМ Arduino) был выбран метод ЦАП R-2R, так как он обеспечивал наилучшую синусоиду с шагом 20 милливольт.

Каждый вход ЦАПа вносит свою лепту в выходной сигнал пропорционально своей «значимости». Т.е. левый вход оказывает самое большое влияние на выходной сигнал (половина опорного напряжения), следующий за ним ј, следующий - 1/8 и т.д. Ну а самый последний (правый) вход изменяет выходной сигнал на ничтожные милливольты. Подставляя значение битов на входе ЦАП выходное напряжение можно рассчитать так:

Uвых=Uпит * (B7 * 1/2 + B6 * 1/4 + B5 *1/8+ B4*1/16+B3*1/32+B2*1/64+B1*1/128+B0*1/256).

Если выставить на вход ЦАП-а значение 255 (бинарное 11111111), то получаем самый высокий выходной сигнал. Если же 00000000 -- ноль.

Uпит - напряжение питания микроконтроллера. Таким образом, наш восьмибитный ЦАП способен выдать 256 различных напряжений с шагом около 20 милливольт, при опорном напряжении 5 Вольт.

Желательно чтобы ЦАП (8-ми разрядный, как у нас) был подключен к целому порту. Тогда выводить любое значение в ЦАП -- будет очень просто:

Теперь математическая составляющая. Адаптируем к нашим условиям. ЦАП может выдавать значения от 0 до 255. Причем, за нулевое значение (мы будем оперировать только целыми положительными числами) примем 127. Длительность волны примем 255 шажков (опять же для удобства).

Т.е., для одного периода значение функции поменяется 255 раз. Естественно, чем больше «шажков» мы уместим в этот период, тем точнее получим синусоиду. Синим цветом я постарался обозначить значения напряжения, получаемые на выходе ЦАП, при «контрольных» значениях точек на оси Х.

Общая формула синусоиды:

Y=a+b*SIN(c*X)

Синусоида стартует со значением 127 (для ЦАП) и заканчивается этим значением. Для этого, вводим значение смещения по оси У а=127. a характеризует сдвиг графика по оси Oy. Чем больше a, тем выше поднимается график.

Значение синуса может меняться от -1 до 1 . Чтобы растянуть график по вертикали, вводим второе значение b, характеризующее растяжение графика по оси Oy. Чем больше увеличивается b, тем сильнее возрастает амплитуда колебаний; Ну, тут тоже понятно, что при максимальном значении в (254-127) b=127 характеризует растяжение графика по оси Ox.

Длина периода =2*Pi. Мы условились, что этот период мы делим на 255 «шагов». Т.е., 255-ый шаг должен иметь значение 2*Pi. Для нашего случая С=2*Pi*(1/255) или 2*Pi*0.0392 или Pi*0.007843

Окончательно получаем следующую формулу расчета: Y=127+127*SIN(Pi*X*0.007843).

Расчет таблицы для значений синусоиды, с выводов в монитор ком-порта представлен в приложении Г[5]

Скетч для вывода значений таблицы в ЦАП представлен в приложении Г

Скетч для генерации синусоиды представлен в приложении Д.

ЗАКЛЮЧЕНИЕ

В ходе выполнения данного курсового проекта была создана упрощенная модель схемы управления резонансным колебательным контуром. Основные узлы которой:

Шаговый двигатель

Arduino

Генератор синуса на основе Arduino и цепи R-2R

Колебательный контур представленный трансформатором и подстроечным конденсатором.

Модель обратной связи

В качестве управляющего процессора выбрана программно-аппаратная платформа ARDUINO

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Портал arduino.ru [Электронный ресурс]. Arduino- Режим доступа: http://arduino.ru/Hardware/ArduinoBoardUno. - Дата доступа : 07.06.2015.

2. Портал darxton.ru [Электронный ресурс]. Управление шаговым двигателем - Режим доступа: http://darxton.ru/wiki-article/shagovye-dvigateli-printsip-raboty-i-upravlenie/. - Дата доступа : 17.06.2015.

3. Портал wikipedia.org [Электронный ресурс]. Выпрямитель- Режим доступа: https://ru.wikipedia.org/wiki/%C2%FB%EF%F0%FF%EC%E8%F2%E5%EB%FC. - Дата доступа : 05.06.2015.

4. Портал konspektiruem.ru [Электронный ресурс]. Выпрямитель- Режим доступа: http://konspektiruem.ru/articles/electronics/Vyprjamiteli/. - Дата доступа : 01.06.2015.

5 Портал robocraft.ru [Электронный ресурс].Генератор синусоиды - Режим доступа: http://robocraft.ru/blog/2911.html. - Дата доступа : 27.06.2015.

ПРИЛОЖЕНИЕ А

Программа для управления шаговым двигателем в однофазном режиме(WAVE DRIVE)

/*

v.01 вправо влево Arduino Шаговый двигатель 28BYJ-48 - 5V Stepper Motor

*/

// declare variables for the motor pins

int motorPin1 = 8; // Blue / Синий - 28BYJ48 pin 1

int motorPin2 = 9; // Pink / Розовый - 28BYJ48 pin 2

int motorPin3 = 10; // Yellow / Желтый - 28BYJ48 pin 3

int motorPin4 = 11; // Orange / Оранжевый - 28BYJ48 pin 4

// установить скорость шагового двигателя.

//variable to set stepper speed.

int motorSpeed = 3000; //2050--

// Кол-во сделанных шагов.

// count of steps made.

int count = 0;

// Необходимое количество шагов, для одного полного оборота, на (360 градусов).

// number of steps per full revolution.

int countsperrev = 512;

int lookup[8] = {

B00001, B00010, B00100, B01000, B00001, B00010, B00100, B01000};

//////////////////////////////////////////////////////////////////////////////

void setup() {

// declare the motor pins as outputs.

pinMode(motorPin1, OUTPUT);

pinMode(motorPin2, OUTPUT);

pinMode(motorPin3, OUTPUT);

pinMode(motorPin4, OUTPUT);

//Serial.begin(9600);

}

void loop(){

//delay(1000);

//delayMicroseconds(motorSpeed);

//motorSpeed=motorSpeed-10;

//Serial.println(motorSpeed);

if(count < countsperrev )

clockwise();

else if (count == countsperrev * 2)

count = 0;

else

anticlockwise();

count++;

}

//set pins to ULN2003 high in sequence from 1 to 4

//delay "motorSpeed" between each pin setting (to determine speed)

// функция поворачивает мотор против часовой стрелки.

void anticlockwise()

{

for(int i = 0; i <=7; i++)

{

setOutput(i);

//delay(motorSpeed);

delayMicroseconds(motorSpeed);

}

}

// функция поворачивает мотор по часовой стрелке.

void clockwise()

{

for(int i = 7; i >= 0; i--)

{

setOutput(i);

// delay(motorSpeed);

delayMicroseconds(motorSpeed);

}

}

void setOutput(int out)

{

digitalWrite(motorPin1, bitRead(lookup[out], 0));

digitalWrite(motorPin2, bitRead(lookup[out], 1));

digitalWrite(motorPin3, bitRead(lookup[out], 2));

digitalWrite(motorPin4, bitRead(lookup[out], 3));

}

ПРИЛОЖЕНИЕ Б

Программа для управления шаговым двигателем в двухфазном режиме(ПОЛНЫЙ ШАГ)

// declare variables for the motor pins

int motorPin1 = 8; // Blue /- 28BYJ48 pin 1

int motorPin2 = 9; // Pink / 28BYJ48 pin 2

int motorPin3 = 10; // Yellow / 28BYJ48 pin 3

int motorPin4 = 11; // Orange / - 28BYJ48 pin 4

//variable to set stepper speed.

int motorSpeed = 666;//450-500 10000

// count of steps made.

int count = 0;

// number of steps per full revolution.

int countsperrev = 512;

int lookup[8] = {

B01001, B00011, B00110, B01100, B01001, B00011, B00110, B01100};

//////////////////////////////////////////////////////////////////////////////

void setup() {

// declare the motor pins as outputs.

pinMode(motorPin1, OUTPUT);

pinMode(motorPin2, OUTPUT);

pinMode(motorPin3, OUTPUT);

pinMode(motorPin4, OUTPUT);

Serial.begin(9600);

}

void loop(){

// delayMicroseconds(1000);

if(count < countsperrev )

{clockwise();/*motorSpeed=motorSpeed-10;*/}

else if (count == countsperrev * 2)

{ count = 0;/*motorSpeed=motorSpeed-10;*/}

else

{anticlockwise();/*motorSpeed=motorSpeed-10;*/}

count++;

// motorSpeed=motorSpeed-10;

// Serial.println(motorSpeed);

}

//set pins to ULN2003 high in sequence from 1 to 4

void anticlockwise()

{

for(int i = 0; i < 8; i++)

{

setOutput(i);

// delayMicroseconds(motorSpeed);

// delay(motorSpeed);

}

}

void clockwise()

{

for(int i = 7; i >= 0; i--)

{

setOutput(i);

//delay(motorSpeed);

//delayMicroseconds(motorSpeed);

}

}

void setOutput(int out)

{

digitalWrite(motorPin1, bitRead(lookup[out], 0));

delayMicroseconds(motorSpeed);

digitalWrite(motorPin2, bitRead(lookup[out], 1));

delayMicroseconds(motorSpeed);

digitalWrite(motorPin3, bitRead(lookup[out], 2));

delayMicroseconds(motorSpeed);

digitalWrite(motorPin4, bitRead(lookup[out], 3));

delayMicroseconds(motorSpeed);

}

ПРИЛОЖЕНИЕ В

Программа для управления шаговым двигателем в двухфазном режиме(ПОЛ ШАГА)

// declare variables for the motor pins

int motorPin1 = 8; // Blue /- 28BYJ48 pin 1

int motorPin2 = 9; // Pink / 28BYJ48 pin 2

int motorPin3 = 10; // Yellow / 28BYJ48 pin 3

int motorPin4 = 11; // Orange / - 28BYJ48 pin 4

//variable to set stepper speed.

int motorSpeed = 777;//450-500 10000

// count of steps made.

int count = 0;

// number of steps per full revolution.

int countsperrev = 512;

int lookup[8] = {

B01000, B01100, B00100, B00110, B00010, B00011, B00001, B00001};

//////////////////////////////////////////////////////////////////////////////

void setup() {

// declare the motor pins as outputs.

pinMode(motorPin1, OUTPUT);

pinMode(motorPin2, OUTPUT);

pinMode(motorPin3, OUTPUT);

pinMode(motorPin4, OUTPUT);

}

void loop(){

// delayMicroseconds(1000);

if(count < countsperrev )

{clockwise();/*motorSpeed=motorSpeed-10;*/}

else if (count == countsperrev * 2)

{ count = 0;/*motorSpeed=motorSpeed-10;*/}

else

{anticlockwise();/*motorSpeed=motorSpeed-10;*/}

count++;

}

//set pins to ULN2003 high in sequence from 1 to 4

void anticlockwise()

{

for(int i = 0; i < 8; i++)

{

setOutput(i);

}

}

void clockwise()

{

for(int i = 7; i >= 0; i--)

{

setOutput(i);

}

}

void setOutput(int out)

{

digitalWrite(motorPin1, bitRead(lookup[out], 0));

delayMicroseconds(motorSpeed);

digitalWrite(motorPin2, bitRead(lookup[out], 1));

delayMicroseconds(motorSpeed);

digitalWrite(motorPin3, bitRead(lookup[out], 2));

delayMicroseconds(motorSpeed);

digitalWrite(motorPin4, bitRead(lookup[out], 3));

delayMicroseconds(motorSpeed);

ПРИЛОЖЕНИЕ Г

void setup(){

Serial.begin(9600);

}

void loop(){

for (int i=0;i<256;i++) {

Serial.print(byte(127+(127*sin(PI*i*0.007843))));

Serial.print(", ");

}

delay(10000); // Задержка, чтобы успеть скопировать :)

}

Вот наша таблица значений:

127, 130, 133, 136, 139, 142, 145, 148, 151, 154, 157, 161, 164, 166, 169, 172, 175, 178, 181, 184, 187, 189, 192, 195, 197, 200, 202, 205, 207, 210, 212, 214, 217, 219, 221, 223, 225, 227, 229, 231, 232, 234, 236, 237, 239, 240, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 251, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 251, 251, 250, 249, 249, 248, 247, 246, 245, 243, 242, 241, 239, 238, 236, 235, 233, 231, 230, 228, 226, 224, 222, 220, 218, 215, 213, 211, 209, 206, 204, 201, 199, 196, 193, 191, 188, 185, 182, 180, 177, 174, 171, 168, 165, 162, 159, 156, 153, 150, 147, 144, 141, 137, 134, 131, 128, 125, 122, 119, 116, 112, 109, 106, 103, 100, 97, 94, 91, 88, 85, 82, 79, 76, 73, 71, 68, 65, 62, 60, 57, 54, 52, 49, 47, 44, 42, 40, 38, 35, 33, 31, 29, 27, 25, 23, 22, 20, 18, 17, 15, 14, 12, 11, 10, 8, 7, 6, 5, 4, 4, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 17, 19, 21, 22, 24, 26, 28, 30, 32, 34, 36, 39, 41, 43, 46, 48, 51, 53, 56, 58, 61, 64, 66, 69, 72, 75, 78, 81, 84, 86, 89, 92, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126,

ПРИЛОЖЕНИЕ Д

/*DAC R/2R

Это генератор синусоиды с частотой400Гц*/

unsigned char sin_tab [256] = {

127,130,133,136,139,142,145,148,151,154,157,160,164,166,169,172,175,178,181,184,187,189,192,195,197,200,202,205,207,210,212,214,217,219,221,223,225,227,229,231,232,234,236,237,239,240,242,243,244,245,246,247,248,249, 250,251,251,252,252,253,253,253,253,253,254,253,253,253,253,252,252,251,251,250,249,249,248,247,246,245,243,242,241,239,238,236,235,233,231,230, 228,226,224,222,220,218,215,213,211,209,206,204,201,199,196,193,191,188,185,182,180,177,174,171,168,165,162,159,156,153,150,147,144,141,137,134,131,128,125,122,119,116,112,109,106,103,100,97,94,91,88,85,82,79,76, 73,71,68,65,62,60,57,54,52,49,47,44,42,40,38,35,33,31,29,27,25,23,22,20,18,17,15,14,12,11,10,8,7,6,5,4,4,3,2,2,1,1,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,22,24,26,28,30,32,34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,81,84,87,89,93,96,99,102,105,108,111,114,117,120,123,127};

void setup() { DDRD =0xFF;}

void loop() {

for (int i=0;i<256;i++) {

PORTD=sin_tab[i];

delayMicroseconds(9);

}

Размещено на Allbest.ru


Подобные документы

  • Аппаратные средства с возможностью расширения и открытыми принципиальными схемами. Процесс работы с микроконтроллерами. Теоретические сведения о платформе Arduino. Установка драйверов для Arduino Duemilanove, Nano или Diecimila в Windows 7, Vista или XP.

    курсовая работа [3,3 M], добавлен 26.09.2014

  • Назначение и описание принципа работы шагового двигателя. Структурная блок-схема прибора. Диаграмма подачи импульсов на обмотки в полношаговом режиме. Реализация схемы и модели в программной среде Proteus. Модель устройства управления шаговым двигателем.

    курсовая работа [1,6 M], добавлен 16.02.2013

  • Структурная и функциональная схема управления исполнительными устройствами на базе шагового двигателя. Проектирование принципиальной схемы управления шаговым двигателем, описание ее работы и входящих в нее устройств. Составление алгоритма работы системы.

    курсовая работа [613,8 K], добавлен 22.09.2012

  • Принципы работы цифрового компаса HMC5883L, платы Arduino UNO. Особенности шины I2C, ее недостатки и преимущества. Программа Fritzing, ее значение для построения схемы подключения цифрового компаса к Arduino UNO. Согласование уровней выхода со входом.

    курсовая работа [1,4 M], добавлен 30.03.2014

  • Разработка устройства-системы автоматического управления, которая отвечает за безопасность движения транспорта через железнодорожный переезд. Разработка схемы системы управления, описание программного кода, использование микроконтроллера PIC16F84A.

    курсовая работа [1,3 M], добавлен 10.12.2012

  • Разработка энергосберегающей системы управления трехфазным асинхронным двигателем главного движения токарного станка. Блок системы управления и датчик скорости в составе устройства. Анализ структуры микропроцессорной системы. Выбор конструкции устройства.

    дипломная работа [2,2 M], добавлен 20.07.2014

  • Структурная схема устройства. Выбор элементной базы и электрической схемы. Использование многоуровневой конвейерной обработки. Последовательность выполнения программы. Команды условного и безусловного перехода. Пространство регистров ввода-вывода.

    контрольная работа [308,2 K], добавлен 07.07.2013

  • Кустовая насосная станция как объект программного управления. Основные характеристики микросхем и режимы их работы. Разработка структурной и принципиальной схем микропроцессорной системы программного управления на основе микропроцессора К1821ВМ85.

    курсовая работа [124,1 K], добавлен 03.05.2012

  • Общая характеристика электроэрозионного оборудования. Описание существующего проволочного станка AC Classic V2. Разработка структурной схемы автоматизированной системы управления. Техническая реализация проекта системы управления и диагностики параметров.

    дипломная работа [7,1 M], добавлен 05.04.2012

  • Основные характеристики технологического объекта управления. Выбор средств автоматизации для подсистемы вывода командной информации. Моделирование системы автоматического регулирования в динамическом режиме. Выбор параметров настройки контроллера.

    курсовая работа [1,2 M], добавлен 08.03.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.