Sw-motors.ru

Автомобильный журнал
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое avr двигатель

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

  • Вычислительная техника
    • Микроконтроллеры микропроцессоры
    • ПЛИС
    • Мини-ПК
  • Силовая электроника
  • Датчики
  • Интерфейсы
  • Теория
    • Программирование
    • ТАУ и ЦОС
  • Перспективные технологии
    • 3D печать
    • Робототехника
    • Искусственный интеллект
    • Криптовалюты

Чтение RSS

Как управлять двигателем постоянного тока с помощью микроконтроллера AVR ATmega

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

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

Двигатель постоянного тока – это устройство, которое преобразует электрическую энергию в механическую. В частности, двигатель постоянного тока использует постоянный ток для преобразования электрической энергии в механическую энергию. Основным принципом двигателя является взаимодействие между магнитным полем и током для создания силы внутри двигателя, которая помогает двигателю вращаться. Поэтому, когда электрический ток проходит через катушку в магнитном поле, генерируется магнитная сила, которая создает крутящий момент, приводящий к движению двигателя. Направление двигателя контролируется путем изменения направления тока. Также его скорость можно варьировать, изменяя подаваемое напряжение. Поскольку микроконтроллеры имеют выводы ШИМ, это можно использовать для управления скоростью двигателя.

В этом проекте работа двигателя постоянного тока будет продемонстрирована с помощью микроконтроллера Atmega16. Драйвер двигателя L293D будет использоваться для изменения направления тока и направления движения. Драйвер двигателя L293D использует конфигурацию цепи H-мост, которая выводит необходимый ток на двигатель. Две кнопки используются для выбора направления двигателя. Одна кнопка используется для выбора вращения по часовой стрелке, а другая – для выбора режима против часовой стрелки.

Схема подключения микроконтроллера ATmega, драйвера L293D и двигателя постоянного тока следующая.

Теперь перейдем к программированию микроконтроллера. В данном случае Atmega16 программировался с использованием USBASP и Atmel Studio7.0.

Двигатель постоянного тока подключается через драйвер двигателя L293D. Двигатель постоянного тока будет вращаться в двух направлениях при нажатии соответствующей кнопки. Одна кнопка будет использоваться для вращения двигателя постоянного тока в направлении по часовой стрелке, а другая кнопка будет использоваться для вращения двигателя постоянного тока в направлении против часовой стрелки. В данном случае у нас используются две библиотеки io.h и delay.h.

Полный код программы приводится далее, просто загрузите программу в Atmega16 и используйте две кнопки для вращения двигателя постоянного тока по часовой стрелке и против часовой стрелки.

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

Введение

Для грамотного использования микроконтроллера необходимо иметь представление об электрических характеристиках его выводов. Эти характеристики определяют максимально допустимый втекающий/вытекающий ток и уровни входных/выходных напряжений. От них зависит что и как можно подключать к микроконтроллеру, и к чему это приведет.
Сегодняшний материал посвящен как раз этой теме. Данные, приведенные ниже, взяты из описания на микроконтроллер Atmega16 в разделах Electrical Characteristics и Typical Characteristics. Для более детального изучения этого вопроса, рекомендую обязательно их посмотреть.

Схема

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

Схема ограничивает величину входных напряжений в диапазоне от -Vd до Vcc+Vd В, где Vd — прямое падение напряжения на диоде (обычно принимается 0,7 В), Vcc — напряжение питания микроконтроллера. Это защищает цепи микроконтроллера от перенапряжений и пробоя статическим электричеством. Однако, эти защитные диоды довольно хиленькие и выдерживают ток в единицы миллиампер.

Несмотря на свою полезную функцию, схема может доставить ряд неприятностей. Если подать входные сигналы на выводы выключенного микроконтроллера, то они через защитный диод запитают микроконтроллер и все остальную схему. Это явление называют паразитным питаниям. Как при этом поведет себя микроконтроллер, сложно предсказать, поэтому такой режим нежелателен.
По хорошему, нужно сначала подавать питание, а потом входные сигналы. При выключении же наоборот – снимать входные сигналы, затем отключать питание.
Также на схеме ты можешь видеть подтягивающий резистор Rpu (pull up) и паразитную емкость Cp. Номинал подтягивающего резистора

20 — 50 кОм, паразитная емкость имеет величину несколько пФ.
Выводы микроконтроллеров AVR могут работать или в режиме входа, или в режиме выхода. Рассмотрим эти режимы.

Режим выхода

Данный режим используется, когда микроконтроллер управляет или передает данные какому-нибудь внешнему устройству. Например, управляет светодиодом, сдвиговым регистром, внешним АЦП и т. д.
Подключая к микроконтроллеру внешние микросхемы, ты всегда должен проверять, согласуются ли уровни ее входных напряжений с выходными напряжениями микроконтроллера.
Для этого в описании на микроконтроллер ATmega16 в разделе электрических характеристик приведены значения выходных напряжений логического нуля Vol (output low voltage) и единицы Voh (output high voltage). Обрати внимание, данные приведены для определенного напряжения питания и токов, даны минимальные и максимальные значения. Уровни напряжений для других условий можно оценить по графикам «I/O Pin Current vs Output Voltage».

Читать еще:  Что такое онв в двигателе

В режиме выхода вывод микроконтроллера может быть или источником или потребителем тока (то есть ток или вытекает из него или втекает). Это зависит от того, какой логический уровень установлен на выводе – ноль или единица (то есть это зависит от содержимого регистра PORTх). Если на выводе логический ноль, то любое положительное напряжение, приложенное к выводу, вызовет втекающий ток. Если на выводе логическая единица, то любое внешнее напряжение, меньше напряжения питания микроконтроллера, вызовет вытекающий ток.
Протекание тока сопровождается падением напряжения на внутренних цепях вывода микроконтроллера. Величину падения можно оценить по тем же графикам «I/O Pin Current vs Output Voltage».

Зависимость выходного напряжения от втекающего тока.
Вывод микроконтроллера в режиме выхода, установлен логический ноль, напряжение питания 5В.

Зависимость выходного напряжения от вытекающего тока.
Вывод микроконтроллера в режиме выхода, установлена логическая единица, напряжение питания 5В.

Как ты можешь видеть, графики приведены для диапазона токов от 0 до 70 мА (для температуры +25 С), но это вовсе не означает, что через каждый из выводов микроконтроллера AVR может протекать такой ток. Таблица Аbsolute Maximum Ratings в разделе электрических характеристик говорит нам о том, что максимальный ток через один вывод микроконтроллера AVR не должен превышать 40 мА, а ток через выводы VCC и GND не должен превышать 200 мА для PDIP и 400 мА для корпусов TQFP/MLF.

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

0.5 В) на выходе микроконтроллера.

8 * 20 мА = 160 мА
+ 10 мА собственное потребление
итого 170 мА Зависимость тока потребления от тактовой частоты и напряжения питания микроконтроллера в активном режиме.

Режим входа

Режим входа используется для приема или ввода данных в микроконтроллер. Например, для получения данных с цифрового датчика или определения состояния тактовой кнопки.
В режиме входа вывод микроконтроллера может быть или в высокоимпедансном состоянии (Hi-Z) или подтянут к плюсу питания через встроенный резистор (20 — 50 кОм). Спалить вывод в режиме входа замыканием на землю или плюс питания нельзя, в отличии от режима выхода. Но можно спалить внутренние цепи вывода, подав чрезмерно большое напряжение. Конечно, если бросок напряжения на входе микроконтроллера будет кратковременным, защитные диоды предохранят его.
Подключая к микроконтроллеру внешние микросхемы, с которых принимаются данные, нужно всегда проверять, согласуются ли выходные уровни микросхемы с входными уровнями микроконтроллера.
В разделе типичных электрических характеристик приведены графики «Pin Thresholds And Hysteresis», по которым можно оценить уровни входных напряжений в зависимости от напряжения питания микроконтроллера AVR.

Зависимость порогового напряжения от напряжения питания микроконтроллера. Любое напряжение выше графика, воспринимается микроконтроллером как логическая единица.

Как можно видеть из рисунка, при напряжении 5 В входное напряжение > 2 В будет восприниматься микроконтроллером как логическая единица.

Аналогичный график представлен и для логического нуля.

Зависимость порогового напряжения от напряжения питания микроконтроллера. Любое напряжение ниже графика, воспринимается микроконтроллером как логический ноль.

При питании 5 В, входное напряжение меньше

1.4, воспринимается микроконтроллером как логический ноль.

Думаю ты заметил, что между пороговыми уровнями логического нуля и единицы разница 2 — 1.4 = 0.6 В. Как микроконтроллер воспринимает напряжение попавшее в этот диапазон? Никак. Благодаря наличию гистерезиса, внутренняя логика вывода микроконтроллера не реагирует на эти значения. И только в случае превышения порогов, переключается в одно из состояний. Про гистерезис ты можешь немного почитать в статье «Компаратор на операционном усилителе».

Зависимость гистерезиса от напряжения питания микроконтроллера

Итак, что еще можно сказать про режим входа. Не следует оставлять выводы микроконтроллера в высокоимпедансном состоянии. Они будут «ловить» помехи и без конца переключаться из логической единицы в логический ноль и наоборот, увеличивая потребление микроконтроллера. Для снижения энергопотребления рекомендуется конфигурировать неиспользуемые выводы на вход с включенными подтягивающими резисторами.

Заключение

Подводя итог выше сказанному, сформулирую несколько правил:

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

Кстати, недавно я наступил на грабли, связанные с согласованием уровней. В одной из схем я применил 5-ти вольтовый сторожевой таймер и 3-х вольтовую ПЛИС. Выход таймера согласовал со входом ПЛИС, а про согласование входа сброса таймера с выходом ПЛИС забыл. Когда плата пришла с завода, я обнаружил, что уровня выходного напряжения ПЛИС не хватает для перезагрузки сторожевого таймера и тот постоянно ее сбрасывает. Из положения пришлось выходить, используя 5-ти вольтовую логическую микросхему на плате. У нее оставалось 2 незадействованных логических элемента и она «нормально воспринимала» логические уровни ПЛИС. Так что будьте аккуратнее, такой момент можно случайно проглядеть, особенно, если в схеме много микросхем.

Читать еще:  Гудит двигатель на малых оборотах

Что такое avr двигатель

Здесь приведен перевод апноута [1], описывающего реализацию компактного, высокоскоростного, управляемого прерываниями контроллера шагового мотора. Шаговые двигатели (ШД) обычно используются для приложений наподобие управления фокусом камеры, привода ленты, перемещения печатающей головки, управления движением механики в факсах, принтерах, копировальных аппаратах, 3D-принтерах, станках с ЧПУ, жестких дисках, приводах DVD-ROM и т. п. Высокое быстродействие микроконтроллеров AVR позволяет разработчику реализовать высокоскоростные приложения для управления ШД, причем вычислительное ядро процессора остается слабо нагруженным. Особенности описываемого контроллера:

• Высокоскоростной контроллер ШД
• Применяются прерывания
• Компактный код (в обработчике прерывания используется около 10 байт)
• Низкие требования к вычислительным ресурсам
• Можно реализовать на всех микроконтроллерах семейства AVR

[Немного теории: как это работает]

Шаговый мотор (шаговый двигатель, ШД) постоянного тока преобразует импульсы тока во вращение своего ротора. Типичный ШД содержит в своем составе 4 силовые обмотки, на которые подаются эти импульсы тока. Обмотки часто помечены разными цветами как red (красный), yellow/white (желтый/белый), red/white (красный/белый) и yellow (желтый), но могут использоваться и другие цвета. Приложенное напряжение к этим обмоткам приводит к выполнению мотором одного шага.

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

Скорость вращения управляется частотой импульсов переключения фаз ШД. С каждым импульсом (с каждым шагом ШД) ротор поворачивается на фиксированный угол. Обычный угол поворота составляет 1.8 градуса. С таким углом поворота на шаг полный оборот ротора (360 градусов) потребует 200 шагов (циклов переключения фаз).

Путем изменения интервала между прерываниями таймера можно регулировать скорость вращения ШД, а путем подсчета количества шагов можно управлять углом поворота. На рис. 1 показаны диаграммы переключения фаз ШД. В таблице 1 показано соответствие шагов мотора значениям, записываемым в выводы порта микроконтроллера.

Рис. 1. Последовательность переключения фаз.

Таблица 1. Значения фаз ШД.

ШагYellowRed/WhiteYellow/WhiteRedЗначение (HEX)
119
1111C
2116
3113

[Описание программного обеспечения]

Программа микроконтроллера использует 16-разрядный таймер с функцией захвата для генерирования прерывания каждые 100 мкс. Когда выполняется обработчик прерывания, новое значение для формирования фаз выводится в выходные разряды порта PORTB (они управляют силовыми ключами, которые подают напряжения на обмотки ШД).

Значения для фаз шагового двигателя записаны в память программ (FLASH) микроконтроллера. При включении питания или сбросе эти значения копируются в SRAM, чтобы ускорить к ним доступ со стороны кода программы — этим достигается максимальное быстродействие. В этой реализации подпрограмма обработчика прерывания (interrupt service routine, ISR) занимает 7 циклов процессорного времени + 4 цикла на вход в ISR и 4 цикла на выход из ISR. Всего получается 15 тактовых циклов. Таким образом, на рабочей тактовой частоте 8 МГц один шаг мотора займет меньше 2 мкс. Если запуск ISR потребуется каждые 100 мкс, то обработка управления фазами ШД займет примерно 2% вычислительных ресурсов ядра микроконтроллера.

В этой программе значения для формирования фаз ШД сохраняются в по адресу 0x0100 в памяти RAM. Старший байт адреса RAM всегда постоянный, и используется только младший ниббл младшего байта адреса для получения доступа доступа к значениям (см. рис. 2). Младший ниббл в ячейке памяти (4 бита) содержат действительное значение для управления фазами ШД, старший ниббл содержит адрес следующего значения.

Рис. 2. Использование адресов и значений из таблицы переключения фаз.

При использовании такого метода можно достичь максимальной скорости работы кода и минимального расхода процессорного времени микроконтроллера. В таблицах 2 и 3 показано использование ресурсов микроконтроллера.

Таблица 2. Использование вычислительных ресурсов и памяти.

ФункцияРазмер кодаЦикловИспользование регистровПрерываниеОписание
Main38 словR16, XL, XH, ZL, ZHИнициализация и пример основной программы.
OC1A10 слов13 + возвратR16, XL, XHTimer1 Output Compare AФормирование шагов мотора путем вывода очередных значений в порты управления фазами. Вычисление адреса для следующего значения фаз.
Всего48 словR16, XL, XH, ZL, ZH

Таблица 3. Использование периферийных устройств.

Объявления

Если вы интересуетесь релейной защитой и реле, то подписывайтесь на мой канал

АВР 10кВ,2 ввода + секционник, есть асинхронные двигатели (Страница 1 из 2)

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений с 1 по 20 из 30

1 Тема от sovethanov86 2016-05-16 10:00:13

  • sovethanov86
  • Пользователь
  • Неактивен
  • Зарегистрирован: 2013-12-02
  • Сообщений: 7
  • Репутация : [ 0 | 0 ]
Тема: АВР 10кВ,2 ввода + секционник, есть асинхронные двигатели

Приветстсвую всех форумчан!
Это тему создаю в первые.
Нужен Ваш совет по реализации АВР, два ввода + секционник, есть еще и ВНР. Вопрос в следующем на секциях первом и втором есть асинхронные двигатели по 2 на секцию, мощность 6МВА,так же есть конденсаторные ячейки, при исчезновении или при срабатывании уставки минимального напряжения на вводе 1 отключается ввод 1, а вот секционник включается только после того как сработает уставка на ячейке ТН понижение остаточного напряжения поддерживаемого от двигателей.Так написано в алгоритме АВР в проекте. Насколько это критично? Можно ли упростить алгоритм до стандартного, или все таки где есть такие двигатели должно быть так?Что произойдет страшного если включится секционник, при работающих двигателей в режиме генератора?

Читать еще:  Что такое отключение автозапуска двигателя

2 Ответ от Novik 2016-05-16 13:23:44

  • Novik
  • Пользователь
  • Неактивен
  • Зарегистрирован: 2011-02-14
  • Сообщений: 412
  • Репутация : [ 0 | 0 ]
Re: АВР 10кВ,2 ввода + секционник, есть асинхронные двигатели

При включенных батареях после отключения напряжения асинхронные двигатели переходят в режим генераторов (в отличии от синхронных ненадолго). При классической схеме АВР с включением СВ блок-контактами вводов секционник включится на короткое со всеми вытекающими последствиями. Затухание напряжения на выводах двигателя происходит за 1-2сек. Если Вам хочется побыстрее, то вместе с вводом отключите и батареи.

3 Ответ от sovethanov86 2016-05-16 14:16:17

  • sovethanov86
  • Пользователь
  • Неактивен
  • Зарегистрирован: 2013-12-02
  • Сообщений: 7
  • Репутация : [ 0 | 0 ]
Re: АВР 10кВ,2 ввода + секционник, есть асинхронные двигатели

Получается именно с конденсаторами двигатели входят режим генератора? Если так, то думаю лучше оставить все как в проекте. Кстати уставка остаточного напряжения 0,2 от номинального, как на Ваш взгляд допустимо?

4 Ответ от Уставкин 2016-05-16 17:30:21

  • Уставкин
  • Пользователь
  • Неактивен
  • Зарегистрирован: 2014-01-30
  • Сообщений: 928
  • Репутация : [ 0 | 0 ]
Re: АВР 10кВ,2 ввода + секционник, есть асинхронные двигатели

Если Вам хочется побыстрее, то вместе с вводом отключите и батареи.

А при самозапуске двигателей снова включить.
Рацпредложение :0)

5 Ответ от matu 2016-05-16 18:37:25

  • matu
  • Пользователь
  • Неактивен
  • Зарегистрирован: 2013-02-21
  • Сообщений: 716
  • Репутация : [ 0 | 0 ]
Re: АВР 10кВ,2 ввода + секционник, есть асинхронные двигатели

sovethanov86, ЭДС одиночного двигателя затухает по экспоненте. Постоянная времени определяется параметрами ветви намагничивания. Можете выполнить эксперимент индивидуального выбега. Выполнял такой опыт, в итоге за 1 сек. ЭДС затухает до 0,48 о.е., за 2 сек. до 0,17 о.е. Если двигатели разнотипные, то одни выступают как генераторы, другие как двигатели.
Идея отсрочки включения АВР по затуханию ЭДС в том, чтобы не включить ЭДС резервного источника на ЭДС двигателя. При неудачном соотношении фаз можно получить близкий к двойному пусковому ток. Тут могут и ложно отключиться токовой отсечкой двигателя, это и электродинамические усилия на двигатель (тряска в прямом смысле слова). Но это не к.з.
С батареями конденсаторов еще интересней. Их время индивидуального разряда определяется параметрами изоляции диэлектрика. Среди трех фаз БК после отключения одна всегда будет иметь напряжение порядка 0,85 о.е. И опять возникает проблема включения АВР ввиду возникновения переходного тока. Оставив параллельно АД и БК без питания мы получаем диссипативную систему, в которой все затухает. Но самое главное — до какого скольжения затормозятся АД при такой длительности перерыва электроснабжения? Какие опытные данные есть?

6 Ответ от vorobev_ia 2016-05-17 08:09:52

  • vorobev_ia
  • Пользователь
  • Неактивен
  • Откуда: г.Чебоксары, ООО НПП «ЭКРА»
  • Зарегистрирован: 2015-04-28
  • Сообщений: 7
  • Репутация : [ 0 | 0 ]
Re: АВР 10кВ,2 ввода + секционник, есть асинхронные двигатели

Если ваши ЭД участвуют в режиме самозапуска, то при расчете уставок СВ должен был учитываться этот режим (у ставка загрубляется на коэф. 1,4, учитывающий не синхронное включение). См. БЭМ Байтер или Зельбирман по собств. нуждам ТЭЦ, АЭС, там все расписано с учетом большого количества двигателей

7 Ответ от sovethanov86 2016-05-17 14:15:32

  • sovethanov86
  • Пользователь
  • Неактивен
  • Зарегистрирован: 2013-12-02
  • Сообщений: 7
  • Репутация : [ 0 | 0 ]
Re: АВР 10кВ,2 ввода + секционник, есть асинхронные двигатели

Принимая такой факт, думаю разумно будет настроить уставку ЗМН (для АВР) на вводе как можно больше, чтобы при к.з. до ввода (рассматривая случай работы АВР при к.з. до ввода, и аварийного отключения питающей линии), этот ввод отключился как можно быстрее (питание точки к.з. до ввода при генераторном режиме двигателей), а уставку на ячейке ТН как можно меньше, который даст разрешение на включение секционного выключателя после отключения ввода. Как считаете?

sovethanov86, ЭДС одиночного двигателя затухает по экспоненте. Постоянная времени определяется параметрами ветви намагничивания. Можете выполнить эксперимент индивидуального выбега. Выполнял такой опыт, в итоге за 1 сек. ЭДС затухает до 0,48 о.е., за 2 сек. до 0,17 о.е. Если двигатели разнотипные, то одни выступают как генераторы, другие как двигатели.
Идея отсрочки включения АВР по затуханию ЭДС в том, чтобы не включить ЭДС резервного источника на ЭДС двигателя. При неудачном соотношении фаз можно получить близкий к двойному пусковому ток. Тут могут и ложно отключиться токовой отсечкой двигателя, это и электродинамические усилия на двигатель (тряска в прямом смысле слова). Но это не к.з.
С батареями конденсаторов еще интересней. Их время индивидуального разряда определяется параметрами изоляции диэлектрика. Среди трех фаз БК после отключения одна всегда будет иметь напряжение порядка 0,85 о.е. И опять возникает проблема включения АВР ввиду возникновения переходного тока. Оставив параллельно АД и БК без питания мы получаем диссипативную систему, в которой все затухает. Но самое главное — до какого скольжения затормозятся АД при такой длительности перерыва электроснабжения? Какие опытные данные есть?

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector