Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Схема управления нагрузкой на основе мощных оптодинисторовСтр 1 из 11Следующая ⇒
Управление тиристором Автор Белов А. В. 29.04.2008 г.
В данной статье приводится несколько схемных решений и описываются алгоритмы позволяющие микропроцессору управлять внешней нагрузкой при помощи тиристорных ключей.
Иногда необходимо, что бы микропроцессорное устройство управляло мощными электроприборами, получающими питание от сети переменного напряжения 220В. Например, нагревательными элементами, моторами, соленоидами, лампами уличного освещения и т.д. Для решения подобной задачи необходимо создать мощную схему управления, преобразующие сигналы стандартных логических уровней в сигналы управления цепями высокой мощности. Вторая проблема, которую нужно решить при создании подобных схем: это гальваническая развязка цепей микроконтроллера и управляемых им цепей 220В. Без такой развязки эксплуатация подобного устройства станет слишком небезопасной. Решение проблемы зависит от того, каким способом необходимо управлять нагрузкой. Если требуется просто ее включать и выключать, то с задачей может справиться небольшой транзисторный ключ, управляющий обмоткой электромагнитного реле. Если же нужно не просто включать и выключать, а еще и регулировать мощность, то без тиристорного ключа тут не обойтись. Ключевые схемы
Рассмотрим несколько вариантов возможных решений. Один из таких вариантов приведен на рисунке 1.
В схеме используется даже не тиристор, а мощный симистор TC106-10. Этот симистор позволяет коммутировать нагрузку до 10 ампер. Для справки: симистор отличается от тиристора тем, что он работает с обоими полупериодами переменного напряжения, то есть, в открытом состоянии он пропускает как положительную, так и отрицательную полуволны. Для гальванической развязки цепей микроконтроллера и силовых цепей нагрузки используется оптодинистор АОУ103Б. Для того, что бы не создавать лишней нагрузки на выход микроконтроллера для управления светодиодом фотодинистора используется ключ на транзисторе КТ361. Что бы отключить нагрузку от источника питания 220В микроконтроллер должен выставить на своем выходе (в данном случае на выходе PB4 сигнал логической единицы. При этом ключ VT1 закрывается, ток через светодиод фотодинистора не течет, и симистор тоже закрыт. Когда нужно включить нагрузку, микроконтроллер устанавливает на своем выходе логический ноль. Транзистор VT1 открывается, светодиод фотодинистора зажигается и освещает динистор. Динистор начинает открываться в каждом полупериоде напряжения. Через диодный мостик, обозначенный, как VD1 динистор подключен к управляющему электроду симистора VS1. Поэтому в каждом полупериоде семистор тоже открывается и на нагрузку поступает полное напряжение питания. Диодный мостик VD1 необходим потому, что динистр может работать лишь в одном направлении. Он открывается только тогда, когда на его верхнем по схеме выводе плюс а на нижнем минус. В обратном направление динистор не открывается. Если подключить динистор к симистору напрямую, то и симистор тоже сможет пропускать лишь одну из полуволн питающего напряжения. В качестве мостика VD1 можно применить любой маломощный мостик либо составить его из четырех диодов КД522Б. Светодиод HL1 служит просто для индикации включения нагрузки.
На рисунке 2 приведен второй вариант схемы управления тиристором. Эта схема отличается от предыдущей отсутствием диодного мостика. Вместо этого в схеме используются сразу два оптосимистора U1 и U2. Светодиоды обеих фотодинисторов включены последовательно и управляются от микроконтроллера через эмиттерный повторитель на транзисторе VT1. Динисторы же включены встречно параллельно. При этом один из них работает при положительной полуволне, а второй при отрицательной. В остальном работа схемы аналогична предыдущему примеру. Отличие лишь в том, что для включения нагрузки микроконтроллер должен установить на своем выходе высокий логический уровень, а для выключения низкий. То есть, можно сказать, что схема на рис. 1 инвертирующая, а схема на рис. 2 неинвертирующая.
В заключении нужно сказать, что развитие элементной базы дает нам новые возможности в постороении схем управления мощной нагрузкой в сети 220В. Теперь разработчик имеет в своем распоряжении такой новый элемент, как мощный оптодинистор, который с успехом заменяет пару: тиристор-оптодинистор и позволяет построить более простые и надежные схемы. Подробнее об этом читайте в статье " Управление оптодинистором".
Плавная регулировка мощности
Если необходимо не просто включить или выключить нагрузку, а плавно регулировать ее мощность, то приведенные так же подойдут для этого. Нужно только изменить алгоритм управления. Существует два метода плавной регулировки. Мы опишем их чуть ниже. Оба метода используют синхронизацию микроконтроллера с фазой колебаний переменного напряжения сети. Для синхронизации нам необходимо сформировать и подать на микроконтроллер сигнал, по которому он сможет определять начало и конец каждого полупериода. Схема блока питания, имеющего цепи формирующие подобный сигнал приведена в статье " Схема блока питания". Сигналы " +" и " -" сформированные этими цепями необходимо подать на вход встроенного компаратора. В нашем случае это выводы 12 и 13 (AIN0, AIN1).
Метод фазового регулирования Это стандартный способ управления тиристором. Состоит он в выборе момента открытия тиристора относительно начала фазы текущего полупериода питающего напряжения. Этот процесс иллюстрирует следующий рисунок:
Фазовый метод регулирования
На рисунке приведена форма сигнала на нагрузке при разных значениях времени задержки. Алгоритмм регулирования состоит в том, что сначала контроллер ожидает начала очередного полупериода. Обнаружив начало полупериода, контроллер запускает внутренний таймер. По окончании задержки, формируемой таймером контроллер выдает запускающий сигнал на выход, управляющий тиристорным регулятором. Тиристор открывается и напряжение поступает на нагрузку. Важно, что бы управляющее напряжение было снято с тиристора до окончания текущего полупериода. В этом случае, как только сетевое напряжение достигнет нуля, тиристор закроется а с началом следующего полупериода процесс отсчета времени повторится снова. В зависимости от выбранной длительности задержки отдаваемая в нагрузку мощность будет различной. Так при малом времени задержки (t1) мощность максимальна. При t2 в нагрузку отдается ровно половина возможной мощности, а при t3 мощность минимальна.
Метод исключения отдельных полупериодов Главным недостатком предыдущего метода является большой уровень электромагнитных помех, излучаемых тиристорным ключем в процессе работы. Подобная схема будет сильно мешать рядом работающему телевизору или радиоприемнику, создавая помехи на экране и по звуку. Большой уровень помех обусловлен тем, что включение тиристора происходит в момент, когда мгновенное значение сетевого напряжения находится вблизи его амплитуды. Крутые фронты достаточно большого уровня напряжения и создают большое количество помех. Выходом является второй метод регулирования. Он состоит в том, что включение тиристора всегда происходит в самом начале полупериода, когда напряжение переходит через ноль и, если полупериод пропускается в нагрузку, то весь полностью. Регулировка же мощности производится путем исключения отдельных полупериодов. Этот процесс показан на следующем рисунке:
Метод исключения полупериода
На рисунке мы видим, что все полупериоды с первого по пятый тиристор беспрепятственно открывается. Затем, во время прохождения шестого полупериода сигнал управления с тиристора снимается и напряжение на выход не поступает. В начале седьмого полупериода сигнал управления опять включается. Для реализации подобного метода разрабатываются целые схемы исключения полупериодов. Например, берется последовательность из десяти полупериодов. Для того, что бы получить мощность в 50%, пять полупериодов пропускают в нагрузку, а остальные пять не пропускают. Затем все повторяется, каждые 10 полупериодов. Причем не обязательно исключать полупериоды подряд. Можно разбросать включенные полупериоды по всему этому отрезку. Для получения 10% мощности из 10 придется оставить только один полупериод. А для 70% нужно оставить 7 а исключить три. Ну и так далее...
Недостатком такого способа является то, что подобным образом затруднительно регулировать мощность свечения электрической лампы. Лампа будет заметно мерцать. Но для регулировки мощности нагревательного элемента этот способ является самым оптимальным.
Последнее обновление ( 30.04.2008 г. )
Управление оптодинистором Автор Белов А. В. 30.04.2008 г. В этой статье описывается схема электронного ключа на оптодинисторе, позволяющая микроконтроллеру управлять мощной нагрузкой, питающейся от сети 220В.
Данная схема является альтернативой схеме описанной в статье " Управление тиристором". В старом варианте схемы для коммутации нагрузки использовался мощный симистор, а для развязки управляемых цепей 220В и низковольтных цепей микроконтроллера использовался маломощный оптодинистор. В новом варианте схемы для управления нагрузкой используется мощный оптодинистор, который заменяет оба перечисленные выше устройства. Ниже приведена схема такого устройства:
Схема блока питания
Автор Белов А. В. 30.04.2008 г.
В этой статье рассматривается схема стабилизированного блока питания, которая может использоваться для питания простого микропроцессорного устройства.
Как известно, для питания цифровых микросхем необходимо стабилизированное напряжения 5В. Заметим, что современные микроконтроллеры способны работать в широком диапазоне питающих напряжений. Обычно от 3 до 6 вольт. Главное требование, что бы напряжение было стабилизированное. То есть не менялось при изменении нагрузки. Однако, обычно любое микропроцессорное устройство кроме cамого микроконтроллера содержит ряд других микросхем, которые обычно более требовательны к напряжению питания. Поэтому правильнее всего, если нет каких нибудь специальных причин, выбирать напряжение питания +5В. Такое напряжение питания широко используется в электронной технике. Поэтому промышленность давно уже наладила производство специальных микросхем - стабилизаторов напряжения. Для большинства применений подойдет микросхема 7905 или ее отечественный аналог КРЕН5. Ниже на рисунке приведена схема блока питания, который расчитан на питание практически любого устройства на микроконтроллерах.
Схема блока питания
Трансформатор T1 понижает сетевое напряжение до требуемой величины (примерно 8...9 вольт). Выпрямитель VD1 выпрямляет его. Предварительный фильтр C1 сглаживает пульсации выпрямленного напряжения и в результате на вход стабилизатора DA1 поступает постоянное нестабилизированное напряжение примерно равное 12 В. С выхода стабилизатора стабилизированное напряжение 5В поступает на выход (на питание цифровых цепей микроконтроллерного устройства. Нестабилизированное напряжение +12В так же поступает для питания некоторых цепей микроконтроллерного устройства. Обычно это силовые цепи, не требующие стабилизации напряжения: светодиоды, реле и т.п. Подключение таких цепей до стабилизатора существенно разгружает микросхему DA1 облегчает ее тепловой режим, повышает надежность и увеличивает КПД. Дополнительный фильтр С2, С3 служит для подавления помех по питанию. Причем электролит C3 служит для подавления низкочастотных помех, а керамический конденсатор C2 подавляет высочастотные помехи.
Кроме собственно цепей питания приведенная схема содержит специальные цепи, позволяющие получать сигнал, синхронный с частотой сетевого напряжения. Такой сигнал может подаваться на компаратор, входящий в состав многих микроконтроллеров и позволяет реализовать алгоритмы управления тиристорными либо оптодинисторными ключами для плавной регулировки мощности на нагрузке. В таких алгоритмах процессор отсчитывает необходимую задержку от начала текущего полупериода сетевого напряжения и по истечении этой задержки включает тиристор. В конце полупериода, когда мгновенное напряженияе переходит через ноль, тиристор закрывается и микроконтроллер отсчитывает очередную задержку. Изменяя время задержки можно изменять длительность импульсов, поступающих на нагрузку и тем самым изменять мощность, отдаваемую в эту нагрузку.
Подробнее об этом можно прочитать в статье " Управление тиристором" и в статье " Управление оптодинистором".
Подключение светодиодов Автор Белов А. В. 01.05.2008 г.
В этой статье рассказывается, как подключать индикаторы на одиночных светодиодах к микроконтроллеру.
Ни одно устройство на основе микроконтроллера не обходится без световых индикаторов. В качестве одиночных светоизлучателей удобнее всего использовать светодиоды. Современные микроконтроллеры (в частности микроконтроллеры серии AVR) имеют достаточно мощные выходные схемы. Они рассчитаны на выходной ток до 40 мА. Этого вполне достаточно для непосредственного подключения одного маломощного светодиода. На следующем рисунке показано, как можно подключить светодиод к выходу микроконтроллеру.
Непосредственное подключение светодиода
Простой маломощный светодиодный индикатор - это самый распространенный способ индицирования. Именно такие индикаторы мы видим на подавляющем большинстве конструкций. Однако, иногда к микроконтроллеру необходимо подключить более мощные светодиоды. Это светодиоды повышенной яркости свечения или светодиоды большой площади излучения. В том случае, когда ток потребления светодиода превышает 40 мА, применяется электронный ключ на транзисторе. Ниже приводится схема подобного подключения.
Подключение при помощи электронного ключа
При использовании транзистора КТ315 можно подключать светодиод с током потребления до 100 мА. Если нужно подключить светодиод с еще большим током потребления, то необходимо подобрать другой, более мощный транзистор.
Подключение кнопок Автор Белов А. В. 01.05.2008 г.
В данной статье освещаются вопросы подключения к микроконтроллеру различных кнопок и клавиш.
Рис. 1.
Практически ни одна микропроцессорная система не обходится без кнопок, клавиш, концевых контактов и тому подобных элементов коммутации. Любое подобное коммутационное устройство - это просто пара контактов, которые замыкаются при нажатии на клавишу (кнопку) или при другом механическом воздействии. Например, при срабатывании концевого выключателя управляемого механизма. Поэтому подключение любого вышеописанного устройства сводится к подключению к микроконтроллеру пары контактов. Микроконтроллеры серии AVR довольно неплохо приспособлены для работы именно с кнопками. Каждый из выводов каждого порта имеет специальные средства, облегчающие подключение внешних контактов.
На рисунке 1 показан типовой способ подключение пары контактов к порту микроконтроллера. Рассмотрим подробнее принцип работы этой схемы. Но прежде мы должны вспомнить, что любой из выводов любого порта может работать в одном из двух режимов: либо как вход, либо как выход. Естественно, в нашем случае соответствующий вывод должен быть переведен в режим входа. В этом режиме имеется возможность программным путем при необходимости подключать к любой внешней линии внутренний резистор нагрузки. На рисунке 1 этот резистор обозначен R. Этот резистор специально введен для того, что бы работать с внешними контактами. При создании программы для всех входов, к которым подключены контакты, не забудьте предусмотреть команды, включающие этот резистор. Если же вход предназначен для других целей, то скорее всего резистор необходимо отключить. Электронный ключ, который программно включает и отключает внутренний резистор нагрузки условно показан на рисунке 1 и обозначен как K.
И так, вывод порта запрограммирован как вход, внутренний резистор нагрузки включен. Если внешние контакты K1 разомкнуты, то на входе присутствует напряжение, близкое к напряжению питания, которое поступает через резистор R. При считывании информации из порта в данном разряде будет логическая единица. Если же контакты замкнуть, то линия порта будет замкнута на общий провод. Напряжение на входе станет равным нулю. При считывании информации в данном разряде порта появится ноль. Таким образом считывая информацию из порта и анализируя значение соответствующего разряда микроконтроллер всегда может определить, замкнуты контакты или нет. Если разряд равен нулю - контакты замкнуты, единице - разомкнуты.
Указанным выше образом можно подключить отдельную пару контактов при желании ко всем выводам всех портов. Однако такой подход не назовешь рациональным. Кроме клавиш к портам микроконтроллера должны подключаться и другие устройства: индикаторы, реле, датчики, последовательные каналы связи и многое другое. Поэтому, для экономии выводов и для упрощения схемы применяют матрицы клавиш. Схема типичной матрицы из 16 клавиш приведена на рисунке 2.
Рис. 2.
Для подключения матрицы используется весь порт PB микроконтроллера и еще две линии порта PD. Как видно из схемы каждый из выводов порта PB подключен сразу к двум кнопкам. Например, вывод PB0 подключен к кнопке S1 и S9. Вывод PB1 к S2 и S10 и так далее. Второй контакт каждой кнопки подключен к одной из линий PD5 или PD6. В результате образуется матрица. Она напоминает решетку. Два вертикальных провода и восемь горизонтальных. В каждом пересечении этих проводов вставлено по кнопке.
Как же работает эта матрица. Для правильной работы необходимо все выводы порта PB перевести в режим входов и включить для каждого из этих входов внутренний нагрузочный резистор. А два вывода порта PD (PD5 и PD6) нужно перевести в режим выходов. Для того, что бы считать состояние кнопок микроконтроллер должен сначала подать на выход PD6 сигнал логического нуля, а на выход PD5 сигнал логической единицы. Затем он должен прочитать байт из порта PB. Этот байт будет содержать информацию о состоянии кнопок S1...S8. Каждый бит будет отвечать за свою кнопку. Нулевой бит (PB0) за кнопку S1, первый бит (PB1) за кнопку S2 и т.д. Если кнопка нажата, то в соответствующем разряде будет ноль, если не нажата - единица. После анализа нажатия первой половины кнопок, микроконтроллер должен установить на выходе PD5 логический ноль, а на выходе PD6 - единицу. И опять считать байт из порта PB. Теперь этот байт будет содержать информацию о состоянии кнопок S9...S16. Опрашивая таким образом то первую то вторую половину кнопок, микроконтроллер может реагировать на нажатие каждой из кнопок отдельно.
Описанная выше матрица может быть легко расширена. Можно взять не две вертикальные линии, а три, четыре и так далее. Для данного микроконтроллера максимально возможная матрица имеет размеры 7X8. Так как порт PD имеет лишь семь линий. Общее количество кнопок при этом будет равно 56. Последнее обновление ( 01.05.2008 г. )
Управление ЖКИ (LCD) индикаторами Автор Белов А. В. 02.05.2008 г. В данной статье рассматривается пример подключения жидкокристаллического индикатора (сокращенно ЖКИ или LCD) к микроконтроллеру.
Сегодня на рынке электронных компонентов можно найти огромное количество индикаторов разных фирм и модификаций. Каждый индикатор имеет свои особенности, свою внутреннюю архитектуру и свой интерфейс для подключения к микроконтроллеру. Однако общие принципы подключения примерно одинаковы. Сразу отметим, что все ЖКИ можно разделить на индикаторы со встроенным контроллером и простые индикаторы без микроконтроллера. Индикаторы с микроконтроллером более предпочтительны для самостоятельного применения. Встроенный микроконтроллер уже содержит в себе сложные программы, выполняющие большинство операций по выводу изображения на индикатор и учитывающий все специфические особенности именно этой индикаторной панели. А интерфейс связи встроенного контроллера обычно совсем не сложный и позволяет легко подключить его к любому универсальному контроллеру. Возмем для примера микроконтроллер Российского производства МТ-10Т7-7. Это простой индикатор, дисплей которого представляет собой строку из десяти семисегментных знакомест. Напряжение питания такого индикатора от 3 до 5 вольт. Ток потребления 30 мкА. Габаритные размеры 66 X 31, 5 X 9, 5 мм. Схема подключения такого индикатора к микроконтроллеру приведена на рисунке 1.
Рис. 1. Подключение ЖКИ к микроконтроллеру Для управления индикатором используется порт PB. Линии PB0...PB3 образуют шину данных/адреса. А линия PB4 используется для передачи на индикатор сигнала записи. Выход PB6 используется для выбора адрес/данные. Команды управления передаются на индикатор следующим образом. Сначала необходимо передать адрес разряда, куда мы хотим записать код очередного выводимого символа. Адрес состоит из одного четырехбитного двоичного числа. Нумерация разрядов ведется слева на право. Самый левый (старший) разряд имеет адрес 0 (00002). Следующий разряд имеет адрес 1 (00012). Последний, самый правый, десятый разряд имеет адрес 9 (10012). Для того, что бы записать адрес в контроллер индикатора необходимо, что бы на его A0 присутствовал сигнал логического нуля. Значение адреса выставляется на выходах PB0...PB3. А затем на выход PB4 кратковременно подается единичный сигнал, который поступает на вход WR1 индикатора. По фронту этого импульса адрес записывается в индикатор и запоминается в его внутренней памяти. Теперь, если в индикатор будет записан байт данных, он поступит именно по этому адресу.
Байт данных определяет изображение знака, которое высветится в соответствующем разряде индикатора. Каждый бит этого байта отвечает за свой сегмент в семисегментном поле. Восьмой бит отвечает за высвечивание десятичной точки. Для передачи байта данных на входе A0, а значит и на выходе PB6 должен присутствовать сигнал логической единицы. Байт данных передается в индикатор за два приема. Сначала на выводах PB0...PB3 выставляется младший полубайт. По сигналу на WR1 он записывается в память индикатора. Затем, на тех же выходах (PB0...PB3) выставляется старший полубайт и тоже записывается по сигналу на WR1. После записи второго (старшего) полубайта изображение появляется в соответствующем разряде индикатора, а адрес во внутренней памяти индикатора автоматически увеличивается на единицу. Таким образом, для записи данных в следующий разряд индикатора уже не надо передавать в него адрес. Весь процесс записи адреса и данных в индикатор изображен на рисунке 2.
Рис. 2. Диаграмма работы интерфейса индикатора
На этом рисунке представлены два варианта работы с индикатором. Запись одного знакоместа и запись нескольких знакомест подряд. Переменный резистор R1 (см. схему на рис. 1) предназначен для регулировки контрастности дисплея. Для того, что бы изображение на индикаторе было хорошо видно, нужно выставить самую подходящую контрастность наблюдая изображение на экране индикатора. Для разной освещенности и разного угла зрения ручку регулятора придется выставлять в разные положения. Хорошо видное изображение в других при изменившихся условиях наблюдения может стать абсолютно не видимым. Что бы увидеть его нужно покрутить ручку регулятора в разные стороны.
В заключении хочу отметить, что именно эти выводы порта для управления индикатором выбраны абсолютно произвольно. В данном случае автор руководствовался удобством разводки печатной платы. Вы же можете выбрать любые другие выводы и даже другой порт ввода вывода микроконтроллера. Последнее обновление ( 01.05.2008 г. )
Подключение энкодера Автор Белов А. В. 04.05.2008 г.
Из этой статьи вы узнаете, что такое энкодер, чем он отличается от переменного резистора и как он помогает при помощи простого поворота ручки вводить информацию в микроконтроллер.
В связи с тотальным переходом к микропроцессорному управлению бытовыми и другими электронными приборами изменились и органы регулировки, применяемые в этих приборах. Если раньше для того, что бы отрегулировать громкость радиоприемника или телевизора вы должны были просто покрутить соответствующую ручку, то теперь вы зачастую вынуждены пользоваться двумя кнопками: " Громкость +" и " Громкость -". А если нужно регулировать не только громкость? Для многих пользователей это просто не удобно. К тому же страдает оперативность регулировки. Нажав кнопку уменьшения громкости нужно еще подождать какое то время, пока громкость доползет до нужного уровня. И все это время приходится страдать от громкого звука. Совместить преимущества традиционных регуляторов и при этом не потерять новые возможности, которые нам дают микроконтроллеры призвано новое устройство ввода информации, которое получило название энкодер. По внешнему виду и установочным размерам энкодер очень похож на обычный переменный резистор, который использовался в традиционных аналоговых устройствах. Но по внутреннему устройству он кардинально отличается. Энкодер так же, как и резистор имеет выступающую вперед ось, на которую можно надеть такую же самую ручку, какую обычно одевают на резистор. Вращение рукоятки энкодера приводит к вырабатыванию им последовательности импульсов, которые затем поступают на микроконтроллер и дают ему информацию о том, на сколько нужно уменьшить либо увеличить то либо иное значение. Например, насколько нужно увеличить или уменьшить громкость сигнала и т.п. Причем устройство энкодера таково, что микроконтроллер может различать не только величину, на которую нужно изменить параметр, но и направление этого изменения. Это позволяет, например, при вращении оси энкодера в одну сторону увеличивать громкость, а при вращении в другую - уменьшать.
Рис. 1. Принцип работы энкодера
Рассмотрим, как же устроен энкодер. На рисунке 1 показано устройство простого механического энкодера. Как видно из рисунка, основой энкодера является диск из изоляционного материалла закрепленный на оси, на которую и насаживается рукоятка для ее вращения. По периметру диска равномерно расположены специальные прорези. Прорези делят всю окружность на несколько (обысно 6-8) равных секторов. Причем ширина прорезей равна ширине промежутков между ними. Кроме того, имеется две группы контактов, которые установлены таким образом, что при вращении диска они то замыкаются попав в прорезь, то размыкаются в промежутке между прорезями. Очень важно расположение этих пар контактов относительно прорезей. Контакты расположены таким образом, что в тот момент, когда одна пара находится на краю какой либо прорези, вторая пара контактов находится ровно посредине между двумя соседними прорезями. Именно такое расположение и показано на рисунке. В результате реализуется следующий порядок замыкания/размыкания контактов: Замыкается первая группа контактов Замыкается вторая группа контактов Размыкается первая группа контактов Размыкается вторая группа контактов 5. Все повторяется сначала.
Рис. 2. Схема энкодера Рис. 3. Диаграмма работы
На рисунке 2 приведена внутренняя электрическая схема простого механического энкодера. Энкодер имеет всего три вывода (что делает его еще больше похожим на переменный резистор). Нижний по схеме вывод - общий для обеих пар контактов. В результате, при вращении рукоятки энкодера на выходе мы получим две последовательности импульсов. При равномерном вращении в одну сторону это будут два меандра, сдвинутых по фазе на 90 градусов. Для наглядности этот процесс показан на рисунке 3. Как микроконтроллер определяет угол поворота оси энкодера надеюсь понятно. Он просто подсчитывает число импульсов. Причем можно считать импульсы приходящие от любой из группы контактов. Основной фокус - как определить направления вращения. Как раз тут и помогает последовательность замыкания и размыкания контактов. При вращении оси энкодера в одну из сторон каждый раз, когда первая группа контактов переходит из замкнутого состояния в разомкнутое, вторая группа контактов оказывается замкнута. Причем момент перехода первой группы приходится как раз на середину отрезка времени, когда вторая группа замкнута. То есть, дребезг уже закончился и все переходные процессы улеглись. При вращении в другую сторону порядок размыканий и замыканий сменяется на обратный. Поэтому в момент, когда первая группа контактов переходит из замкнутого состояния в разомкнутое, вторая группа всегда оказывается разомкнута. Именно по этому факту микроконтроллер и определяет направление вращения.
Рис. 4. Схема подключения энкодера к микроконтроллеру
На рисунке 4 показана схема подключения энкодера к микроконтроллеру. Контакты энкодера подключаются таким же образом, как подключается простая отдельная кнопка (см. статью " Подключение кнопок" ). Линии порта PD2 и PD3 должны быть настроены как входы и внутренний нагрузочный резистор на обоих входах должен быть включен. Подробнее о настройке линий порта и внутренних нагрузочных резисторах читайте в упомянутой выше статье " Подключение кнопок". Общий вывод энкодера, как видно из схемы, подключается к общему проводу всего устройства.
Программа обработки сигнала от энкодера предельно проста. Обратите внимание, что на схеме (рис. 4) для подключения энкодера выбраны линии PD2 и PD3. И это не случайно. В микроконтроллере ATtiny2313 альтернативной функцией этих выводов является функция входов внешнего прерывания INT0 и INT1. Для работы с энкодером как раз и используется одно из этиз прерываний. Например, можно использовать прерывание по внешнему входу INT0. То есть по входу PD2 (вывод 6). Из чего же состоит программа? Ну, во первых, сначала нужно разрешить прерывание по INT0. Причем необходимо выбрать такой режим, когда прерывание происходит по фрону (или спаду) импульса на этом входе. Ну а затем еще нужна простейшая подпрограммка обработки этого прерывания. Эта подпрограммка должна просто проверять значение линии порта PD3 и в зависимости от того, равно оно нули либо единице уменьшать либо увеличивать регулируемое значение.
Рассмотрим это подробнее. Допустим, что мы выбрали режим прерывания по фронту импульса. Представим, что контроллер выполняет основную программу, не связанную с энкодером. В какой то момент пользователь вращает рукоятку энкодера, например, влево. Контакты начинают замыкаться и размыкаться. По фронту импульса на входе INT0 в микроконтроллере происходит вызов прерывания. Это значит, что работа основной программы временно прерывается и контроллер переходит к подпрограмме обработки прерывания. Эта подпрограмма читает информацию из порта PD и оценивает содержимое разряда PD3. Так как рукоятка энкодера была повернута (мы договорились) вправо, то в этом разряде микроконтроллер обнаружит логическую единицу. Обнаружив единицу подпрограмма обработки прерывания увеличивает значение специальной ячейки, где хранится код, соответствующий текущей громкости. Код увеличивается на единицу. После этого подпрограмма заканчивает свою работу. Микроконтроллер снова переходит к выполнению своей основной программы. Если вращение в ту же сторону продолжается, то по фронту следующего импульса на INT0 опять будет вызвано прерывание и значение громкости снова увеличится на единицу. И так до тех пор, пока не прикратится вращение рукоятки энкодера либо не переполнится значение громкости. Подпрограмма должна проверять это значение и не увеличивать громкость, если она достигла максимума.
Если же ротор энкодера вращать в другую сторону, то та же процедура обработки прерывания, вызванная по фронту сигнала на входе NT0 обнаружит на входе PD3 значение логического нуля. Обнаружив этот ноль, подпрограмма должна уменьшить значение кода в ячейке громкости на единицу. Если вращение продолжается, то по фронту каждого импульса на входе INT0 будет вызываться это прерывание и каждый раз значение громкости будет уменьшаться. И в этом случае, программа должна контроллировать теперь уже минимальное значение громкости. И по достижении нуля, программа больше не должна производить процедуру вычитания.
До сих пор мы говорили о простом механическом энкодере. Но наличие механических контактов всегда связано с такими явлениями, как дребезг, а так же помехи, вызванные плохим контактом в связи с засорением или износом. Все это приводит к низкой надежности работы механического энкодера. Поэтому в последнее время получают все болшее распространение оптоэлектрические энкодеры. В оптоэлектрическом энкодере вместо механических контактов используются оптопары: светодиод-фотодиод. Такой энкодер требует дополнительного внешнего питания, поэтому он имеет еще один вывод - вывод питания. Питаются такие энкодеры обычно от стабилизированного источника +5В и выдают на выходе сигналы, близкие к стандартным логическим уровням. В связи с этим, отпадает необходимость включать внутренние резисторы нагрузки для тех входов микроконтроллера, к которым подключен такой энкодер. В остальном, работа с оптоэлектронными энкодерами аналогична работе с простыми механическими моделями. К сожалению, использование оптоэлектронных энкодеров ограничено их высокой стоимостью.
Последнее обновление (04.05.2008 г.)
Практические примеры применения USB-AVR
Проект USB-AVR пришелся по вкусу многим самодеятельным конструкторам из самых разных стран мира. Компания Objective development на своем сайте призывает всех, кто разработал свою собственную конструкция с использованием их технологии, присылать ее описание или ссылку на сайт с таким описанием и охотно размещает все эти ссылки на своем сайте.
ТО. что проекте участвуют представители разных стран, привело к тому, что разные описания приводятся на разных языках. В основном на английском, немецком, итальянском. К сожалению, пока ни одного проекта на русском. Однако наш сайт планирует перевести описания самых интересных проектов.
Список проектов, выполненных с применением USB-AVR находится по адресу http: //www.obdev.at/products/avrusb/projects.html Список разделен на категории:
Интерфейсы и адаптеры
В этом разделе перечислены примеры адаптеров, преобразовывающих стандарт USB в другие стандартные виды интерфейсов. Приводятся следующие примеры: Преобразователь USB – uDMX. Стандарт uDMX является расширением стандарта DMX и отличается от последнего наличием питания. Канал DMX предназначен для управления световыми устройствами и различными сценическими эффектами. Популярное:
|
Последнее изменение этой страницы: 2016-06-05; Просмотров: 4568; Нарушение авторского права страницы