Двутональный многочастотный (dtmf) генератор на avr

Двутональный многочастотный (dtmf) генератор на avr

Каравкин В.
Двухтональная система частотного кодирования (DTMF) широко применяется в технике связи, в телефонии (тональный набор номера), и при желании сделать систему радиоуправления без сложной логики или микроконтроллеров, это будет оптимальным вариантом, потому что микросхем кодера и декодера DTMF выпускается множество различных типов и они достаточно доступны в продаже. Но, двухтональный сигнал предназначен для передачи по аналоговому каналу связи, такому как для передачи речи или музыки. То есть, можно использовать кабель, радиоканал, предназначенный для передачи речи, или же оптическую связь (динамик – микрофон). В то же время, в продаже имеются интегральные цифровые фотоприемники ИК-сигнала, предназначенные для систем дистанционного управления бытовой радиоэлектронной аппаратурой. Если не нужна большая дальность, и не желательно создание лишних радиопомех, инфакрасный канал связи – то, что надо. Однако, возникает вопрос как согласовать аналоговые входы и выходы декодера и кодера DTMF с ИК-каналом, рассчитанным на логические импульсы. Первая проблема в том, что ИК-сигнал для приема его стандартным ИК-фото-приемником должен быть промодулирован частотой около 30-40 кГц (в данном случае 38 кГц). На рисунке 1 показано каким способом можно решить эту проблему.


Принципиальная схема кодера показана на рисунке 1. Он выполнен на микросхеме UM95089, содержащей кодер 16-ти команд по системе DTMF. Клавиатура состоит из 16-ти кнопок, включенных по координатной схеме. Кнопки подписаны, соответственно, от «0» до «15». Нажатие любой из кнопок приводит к формированию двухтонального сигнала на выходе микросхемы (вывод 16). Выход сделан по схеме с открытым эмиттером. В типовой схеме «Бипера» между этим выводом и общим минусом включают малогабаритный динамик. В данном случае роль нагрузки выходного эмиттерного повторителя выполняет резистор R2, с движка которого двухтональный сигнал поступает на транзисторный ключ VT1, формирующий импульсы логического уровня, которые управляют мультивибратором на микросхеме D1.
Мультивибратор настроен цепью R5C3 на генерацию импульсов частотой 38 кГц (точнее при налаживании частота устанавливается подбором сопротивления R5). Когда на выводе 6 D1.2 логическая единица мультивибратор заблокирован и импульсы частотой 38 кГц не генерирует. При логическом нуле генератор запускается и генерирует импульсы 38 кГц которые поступают на ИК-светодиод HL1 через промежуточный ключ на транзисторе VT2.
Таким образом, получается сигнал, подходящий для приема стандартным интегральным фотоприемником.
Резистор R7 ограничивает ток через ИК-светодиод. Питается схема пульта управления от источника, состоящего из трех гальванических элементов «ААА», общее напряжение 4,5V. Выключателя питания нет, потому что тональный сигнал есть на выводе 16 D2 только при нажатой одной из кнопок управления. Если кнопки не нажаты на выводе 16 сигнала нет. Транзистор VT1 закрыт, на его коллекторе логическая единица, – мультивибратор заблокирован, и ток потребления мизерный.

Схема приемного узла (рис.2.) в основном взята из статьи автора «Автоматический лектор» (Л.1). Главное отличие во входе. Здесь на входе стоит стандартный интегральный фотоприемник от систем дистанционного управления, в данном случае, SFH506-38. Он принимает сигналы пульта, и на его выходе формируется двухчастотная импульсная последовательность логического уровня. Как показали эксперименты, чтобы стандартная микросхема DTMF-декодера воспринимала их, их нужно ограничить по амплитуде, хотя бы слегка сгладить RC-цепью.
Сглаживает фронты импульсов цепь R2-С1, а уровень устанавливают подстроечным резистором R3 в процессе налаживания, так чтобы была четкая реакция на сигналы пульта.
Далее все как обычно в таких схемах. Микросхема MV8870 декодирует DTMF сигнал. После приема команды DTMF сигнала на выходе микросхемы устанавливается двоичный четырехразрядный код, в данном случае, численно соответствующий номеру нажатой на клавиатуре кодера кнопки. При этом, установленный на выходе микросхемы код сохраняется до поступления следующей команды, поэтому нет необходимости передавать код команды в течение всего времени её действия. Достаточно в начальный момент нажать кнопку команды, а в конечный либо нажать кнопку «О» (все выходные реле выключены) либо кнопку другой команды.
Выход четырехразрядный и поэтому организовано управление четырьмя нагрузками, включаемыми посредством электромагнитных реле К1-К4.

Оставлять комментарии могут только зарегистрированные пользователи

SIU – устройство сигнализации

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

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

В базовой конфигурации модуль SIU является составной частью сервисного блока SU и поэтому устанавливается в полке общего управления (вариант Х).

При установке другого встроенного программного обеспечения модуль начинает выполнять функции устройства расширения. В такой конфигурации он может использоваться в качестве приемника DTMF/MFC в любом периферийном гнезде коммутационного устройства SWU.

Функции модуля SIU в базовой конфигурации приведены ниже.

Генерация тональных сигналов.
Приемники звуковых тональных сигналов.
Приемники сигналов DTMF.
Голосовые оповещения.
Музыкальное сопровождение вызовов на удержании.
Тестовый генератор/тестовый приемник.

В конфигурации расширения для SWU модуль SIU предлагает:.

8 приемников тональных сигналов DTMF (вариант X1);
8 приемников/передатчиков тональных сигналов MFC (вариант X2).

Варианты исполнения модуля

Базовый модуль управления генерацией сигналов
Q2031-X
Q2031-X10 (ЮАР, Великобритания, Италия, Китай, Бразилия)
Q2031-X11 (Франция)
Q2031-X12 (Нидерланды, Испания, Португалия)
Q2031-X3 (США, µ-Law)
Приемник тональных сигналов DTMF
Q2031-X1
Q2031-X21 (Франция)
Q2031-X4 (США, µ-Law)
Приемник/генератор тональных сигналов MFC
Q2031-X2
Q2031-X22 (Бразилия)

1.Генератор тональных сигналов
Звуковые сигналы генерируются устройством сигнализации.

Цифровой генератор тональных сигналов создает звуковые сигналы различной частоты и громкости.

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

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

Уровень тонального сигнала, измеренный на кроссе, составляет -8 дБм +/- 3 дБ, а уровень звуковых сигналов в активной телефонной линии – от 30 мВ до 100 мВ.

2.Оповещения
Голосовые оповещения делятся на стандартные приветствия абонентов, сообщения для операторов и подсказки по работе с голосовой почтой.
1.Передача оповещений в каналы производится через коммутационное поле.
2.Оповещения имеют такой же уровень громкости, что и звуковые тональные сигналы.
3.Оцифрованные оповещения имеют небольшую длительность, поэтому их можно воспроизводить “бесконечной петлей”.
4.Сообщения для операторов генерируются локально специальным устройством на терминале оператора..
В цифровом виде генерируются следующие шесть оповещений:
>Please hold the line Пожалуйста, подождите Not available Недоступен Function not possible Функция невозможна Not authorized Нет разрешения Currently in use В данный момент занят You have a message Вам сообщение Пожалуйста, подождите
1.Режим 1
Непрерывного тонального сигнала (внешнего сигнала готовности линии).
Прерывистого сигнала (сигнала “занято”).
2.Режим 2
Прерывистого тонального сигнала 1 (внутреннего сигнала готовности линии).
Прерывистого тонального сигнала 2 (сигнала “занято”).
3.Режим 3
Прерывистого акустического сигнала со специальным таймером (Бельгия)
5.Приемники сигналов DTMF
Приемники сигналов тонального набора номера (DTMF) используются для приема тональных частотных сигналов на станционных линиях. Каждый такой сигнал содержит две частоты, одна из которых входит в нижнюю группу частот, а другая – в верхнюю.
Сигналы набора номера поступают на приемники DTMF через коммутационное поле, после чего модуль SIU передает полученные и дешифрованные цифры номера по каналу сигнализации на соответствующий контроллер.

Тестирование сигналов DTMF/MFC модуля SIU

В описанных ниже тестах все сигналы DTMF/MFC проверяются на главном кроссе MDF. Проводить такие проверки в масштабах всей сети нельзя, так как станция и телефонная линия должны находиться на одном узле сети.

Проверка сигналов DTMF для SIU TYPE2 производится во время телефонного разговора. Если нужно быстро (то есть, без набора номера, переключить канал в этот режим, это можно сделать с помощью соответствующей установки параметра FDGT команды AMO COP. Проверка сигналов MFC (для SIU TYPE3) при исходящей сигнализации (MFC прямые) в целом проводится так же, как и проверка сигналов DTMF.
При проверке входящих сигналов (MFC обратные) для перевода вызова в требуемое состояние нужно набрать DIGIT.

Создать новый пучок соединительных линий для проверки:
AD-BUEND:NO=номер.
Задать номер вызова для выхода на линию:
CHA-TACSU:PEN=gg-u-sss-cc,TGRP=номер.
Задать номер выбора устройства на линии:
AD-WABE:CD=key-num,DAR=CO.
Задать результаты анализа цифр для проверки частот:
AD-WABE:CD=key-num,DAR=FREQTEST;
Задать направление проверки:
ADD-RICHT:CD=key-num,SVC=VCE,TRGRPNO1= номер; (до SP300-V3.2)
ADD-RICHT:TYPE= CD,CD=key-num,SVC= VCE,TRGRPNO1=номер; (начиная с SP300-V3.3)
С помощью тестера установить входящее соединение с терминалом (через канал цифрового тракта).
Перейти в режим разговора (снять трубку).
Набрать на терминале код “проверки передатчиков DTMF и MFC”.
Начинается поиск соответствующего модуля SIU в устройстве управления, который затем занимается.
Для каждой набираемой на терминале цифры модуль SIU посылает соответствующий сигнал DTMF в тракт, и делает это до тех пор, пока не будет нажата другая кнопки или не будет освобождено соединение.

Таблица 132. Соответствие набираемых цифр и сигналов SIU

00Контрольная частота–01A/B 11022203330444055506660777088809991011–*12–#13–A14–B15–C16–D

Каждый номер от 00 до 16, если он используется в данном коде сигнализации (см. таблицу), анализируется и выводится на дисплей.
Если набрана цифра больше 16, вместо нее на DIGITE выводится сообщение “NOT POSSIBLE” (Недопустимо) или “INCORRECT INPUT” (Ошибка ввода). Если выбран ошибочный сигнал (например 16 для сигнализации Socotel), ввод предыдущего сигнала отменяется, и новый сигнал не передается. При проверке DTMF/MFC остаются доступными только цифровые кнопки и датчик положения телефонной трубки (кнопки памяти, функция отбоя и т.д. отключаются).

Восстановление линии после проверки

Удалить маршрут проверки линии
DEL-RICHT:CD=key-num,SERVICE=VOICE,TYPE= ALL; (до SP300-V3.2)
DEL-RICHT:TYPE=CD,CD=key-num,SERVICE=VOICE,TYPE=ALL;(начиная с SP300-V3.3)
Удалить код DAR= FREQTEST
DEL-WABE:TYPE=CD,CD=key-num,DAR=FREQTEST;

Вернуть проверенный канал в его прежний пучок соединительных линий.
CHANGE-TACSU:PEN=gg-u-sss-cc,TGRP=номер;

Бюджетная радиосвязь для микроконтроллеров AVR

Здравствуйте. Задался я недавно целью организовать радиосвязь между контроллерами AVR, бюджет был очень ограничен и поэтому в качестве контроллеров для теста были выбраны два Atmega8 давно валявшиеся без дела. Когда же начался поиск подопытного трансивера я был неприятно удивлен ценами на готовые радио модули, короче на те деньги что я рассчитывал в Украине можно было купить только пару «плата приемника — плата передатчика» на 433 мгц (такая китайская там еще катушки проволочные на плате). Но хотелось то полноценный двусторонний линк и поэтому я начал искать в инете подходящий вариант. Им оказался радиомодуль на 2,4 Ггц. NRF24L01 привлек конечно ценой.

В базовой версии без усилителя и с антенной выполненной на печатной плате. На момент написания статьи пару таких модулей на ebay можно было купить по $3.23

Есть еще версия подороже с усилителем и мощностью в 10dBm и заявленной дальностью в 260 метров.

Но сие чудо дороже и одна шт. уже стоит $13.89
Я остановился на первом варианте. И так что же у него внутри пройдемся бегло по характеристикам.

Тарансивер выполнен в виде единого чипа.
Режим передачи ShockBurst™ (ефективный быстрый режим передачи данных).
Aвтоматический ACK (подтверждение получения пакета) и настройки повторной передачи пакета если до кого то в сети не дошло.
Автоматический контроль CRC.
RF передача по 125 возможным каналам.
Интерфейс (SPI) со скоростью 0-8 Mbps.
Быстрое переключение возможен режим frequency hopping
5V tolerant входы.
Режимы Standby Modes и Power Down Mode.
Вывод прерывания по событиям (можно настраивать в спец. регистре)

Ну и табличка из даташита на случай если что пропустил

Еще в процессе копания в инфе на чип была мной была обнаружена интересная фишка
Приемник чипа NRF24L01 одновременно может принимать данные по шести каналам. То есть принимать данные от шести разных передатчиков.

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

Ладно вернемся к Atmega8. Разработку Устройства начал с обзора существующих решений. И нашел проект заграничного колеги Davide Gironi
вобщем его проект соответствовал моим задумкам. Поэтому я взял за основу его схему и код за что ему спасибо и уважуха. Слегка модифицировав схему вышло следующее.

Схема.

Плата.

Ну и готовый девайс.

Ну и принцип работы на видео. Когда есть связь мигают желтые светодиоды при нажати кнопки на передатчике зажигаются зеленые.

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

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

Функциональный генератор НЧ сигналов на основе DDS с применением контроллера AVR ATMega16

В последнее время получили широкое распространение методы цифрового синтеза частоты(DDS), причем методы реализации очень многообразны. Способ и метод реализации зависит от требований к генератору.

    У меня к генератору были основные требования:
  • 1. Частота в диапазоне от 0.01Гц – 50000Гц с шагом 0.01Гц
  • 2. Максимальная, по возможности, линейность на протяжении всего диапазона.
  • 3. Работа на низкоомную нагрузку(для проверки динамиков и УЗ магнитострикционных излучателей)
  • 4. Удобство и быстрота перестройки «на горячую».
  • 5. Сканирование заданного диапазона с заданным шагом (удобно для определения частоты резонанса чего угодно)
  • 6. Большое количество форм сигналов, и постоянное напряжение для калибровки.
  • 7. Информативность отображения.

Поскольку я часто сталкивался с написанием программ на контроллеры AVR и Microchip – я выбирал между ними… Но дешевле и функциональнее оказался AVR. По быстродействию и нужному количеству выводов подошел ATMega16. Теперь о расчетах…
F max = 16000000Hz(Частота атмеги)
15 циклов берем на изменение аккумулятора фазы, выборку из LUT и вывод.
Итого Fclk=16000000Hz/15=1066666,6667Hz
Для необходимой точности выбрал 32-битный аккумулятор фазы.
Теперь вычислим минимальный шаг:
Step(Hz)= 1066666,6667Hz/(2^32)= 0,0002483526865641276041667(Hz)
Код самого генератора:

При 50000Гц сигнал за период будет образовываться

21 сменой напряжений на выходе ЦАПа.
В качестве ЦАП я выбрал обычную R-2R матрицу – она не требует стробов и 8 бит вполне удовлетворяют условиям. Т.е. (|12|+|-12|) / 2^8 = 0,09375

0,1V

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

Чтобы предотвратить ложные срабатывания от валкодера – контроллер несколько раз проверяет направления при шагах и только тогда фиксирует изменения.
Остальные параметры задаются 4-мя кнопками.

    Генератор имеет возможность воспроизводить следующие формы сигналов:
  • 1. Синусоида
  • 2. Меандр
  • 3. H-wave
  • 4. Лестница симметричная
  • 5. Трапеция
  • 6. Пила
  • 7. Прямоугольник симметричный
  • 8. Лестница асимметричная
  • 9. Прямоугольник асимметричный
  • 10. Постоянный “+”
  • 11. Постоянный “-“

Видео с работой
Так же добавил функцию сканирования заданного диапазона частот с регулируемым шагом.
Шаг устанавливается 0,01Гц-0.1Гц-1Гц-10Гц-100Гц и обратно. Для удобства отображения и простоты написания программы использовал LCD от Nokia 3310(84×48). В качестве самого валкодера использовал биполярный шаговый двигатель от старого винчестера. Все устройство и программу просимулировал в Proteus.

Аналоговая часть генератора


Поскольку ЦАП выдает сигнал однополярный а задумка была зделать именно двухполярный генератор то необходимо использовать смещение на усилителе. В качестве источника опорного напряжения я выбрал TL431. Сам усилитель я реализовал на 2-х каскадах. Для усиления нагрузочной способности я применил повторитель напряжения на микросхеме TDA2030A.

Сигнал на выходе устройства U3 повторяет по форме и амплитуде входной, но имеет большую мощность, т.е. схема может работать на низкоомную нагрузку. Повторитель использован для увеличения выходной мощности низкочастотного генератора (чтобы можно было непосредственно испытывать головки громкоговорителей или акустические системы). Полоса рабочих частот повторителя линейна от постоянного тока до 0,5. 1 МГц, что более чем достаточно для генератора НЧ.

Источник питания — любой(импульсный или линейный), желательно стабилизированный с питаниями +5,+12/-12V.

О сборке

При сборке проблем особых не возникло, настройка заключается в подстройке аналоговой части симметричности и амплитуды выходного сигнала. Смещение настраивается резистором R1 и R6.Амплитуда первого каскада R5, второго R8.

Ссылки на схемы цифровой и аналоговой части(JPG и проект в Proteus) и прошивка:
Загрузить с Letitbit
Загрузить с Filesonic

Двутональный многочастотный (dtmf) генератор на avr

продаётся раскрученный сайт недорого обращаться в личку

Данный DDS функциональный генератор (версия 2.0) сигналов собран на микроконтроллере AVR, обладает хорошей функциональностью, имеет амплитудный контроль, а также собран на односторонней печатной плате.

Данный генератор базируется на алгоритме DDS-генератора Jesper, программа была модернизирована под AVR-GCC C с вставками кода на ассемблере. Генератор имеет два выходных сигнала: первый – DDS сигналы, второй – высокоскоростной (1..8МГц) “прямоугольный” выход, который может использоваться для оживления МК с неправильными фузами и для других целей.
Высокоскоростной сигнал HS (High Speed) берется напрямую с микроконтроллера Atmega16 OC1A (PD5).
DDS-сигналы формируются с других выходов МК через резистивную R2R-матрицу и через микросхему LM358N, которая позволяет осуществить регулировку амплитуды (Amplitude) сигнала и смещение (Offset). Смещение и амплитуда регулируются при помощи двух потенциометров. Смещение может регулироваться в диапазоне +5В..-5В, а амплитуда 0. 10В. Частота DDS-сигналов может регулироваться в пределах 0. 65534 Гц, это более чем достаточно для тестирования аудио-схем и других радиолюбительских задач.

Основные характеристики DDS-генератора V2.0:
– простая схема с распространенными и недорогими радиоэлементами;
– односторонняя печатная плата;
– встроенный блок питания;
– отдельный высокоскоростной выход (HS) до 8МГц;
– DDS-сигналы с изменяемой амплитудой и смещением;
– DDS-сигналы: синус, прямоугольник, пила и реверсивная пила, треугольник, ЭКГ-сигнал и сигнал шума;
– 2×16 LCD экран;
– интуитивная 5-ти кнопочная клавиатура;
– шаги для регулировки частоты: 1, 10, 100, 1000, 10000 Гц;
– запоминание последнего состояния после включения питания.

На представленной ниже блок-схеме, приведена логическая структура функционального генератора:

Как вы можете видеть, устройство требует наличие нескольких питающих напряжений: +5В, -12В, +12В. Напряжения +12В и -12В используются для регулирования амплитуды сигнала и смещения. Блок питания сконструирован с использованием трансформатора и нескольких микросхем стабилизаторов напряжения:

Блок питания собран на отдельной плате:

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

LCD-экран

Все действия отображаются через LCD-экранчик. Управление генератором осуществляется пятью клавишами

Клавиши вверх/вниз используются для перемещения по меню, клавиши влево/вправо для изменения значения частоты. Когда центральная клавиша нажата – начинается генерирование выбранного сигнала. Повторное нажатие клавиши останавливает генератор.

Система меню генератора:

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

Генератор шума не имеет каких-либо настроек. Для него используется обычная функция rand() непрерывно подающиеся на выход DDS-генератора.

Высокоскоростной выход HS имеет 4 режима частоты: 1, 2, 4 и 8 МГц.

Принципиальная схема

Схема функционального генератора простая и содержит легкодоступные элементы:
– микроконтроллер AVR Atmega16, с внешним кварцем на 16 МГц;
– стандартный HD44780-типа LCD-экранчик 2×16;
– R2R-матрица ЦАП из обычных резисторов;
– операционный усилитель LM358N (отечественный аналог КР1040УД1);
– два потенциометра;
– пять клавиш;
– несколько разъемов.

Плата:

Функциональный генератор собран в пластиковом боксе:

Тестовый запуск:

Программное обеспечение

Как я уже говорил выше, в основе своей программы я использовал алгоритм DDS-генератора Jesper. Я добавил несколько строчек кода на ассемблере для реализации останова генерирования. Теперь алгоритм содержит 10 ЦПУ циклов, вместо 9.

AVR Lab устройства на микроконтроллерах AVR

Форум по AVR

Управление шаговым двигателем с помощью AVR микроконтроллера ATmega8

Управление шаговым двигателем с помощью AVR микроконтроллера ATmega8

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

Отличатся немного по строению и по системе управления.
Униполярный шаговый двигатель, принципиальная схема показана на рис. 1

Рис. 1

У униполярного шагового двигателя есть 4-ре обмотки соединенные по схеме показанной на рис. 1
Принцип работы униполярного шагового двигателя следующий: поочередно на каждую из 4-х обмоток подается напряжение положительной полярности, в это время общий вывод соединен с отрицательным проводом питания. Получается за каждую коммутацию(подачу напряжения на одну из 4-х обмоток) ротор шагового двигателя смещается на один шаг, ширина этого шага зависит от конструкции самого шагового двигателя, для униполярного шагового двигателя показанного на рис. 2 и рис. 3 шаг составляет примерно:
22х8=176(шагов)
365/172=2,104 градуса.


рис. 2


рис. 3

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

Рис. 5
или четыре мощных биполярных транзистора или если у вас есть лишние деньги, можно воспользоваться драйвером мощной нагрузки, таким как микросхема L293 или L293DNE что практически одно и то же. Я пользовался именно драйвером L293DNE.

Принципиальная схема включения шагового двигателя через драйвер L293DNE:

Алгоритм управления униполярным шаговым двигателем очень простой, необходимо выполнять поочередную коммутацию четырех обмоток двигателя. То есть выдавать на четыре бита порта микроконтроллера последовательность типа:
1000
0100
0010
0001

Соответственно крутим поочередно обмотки A, B, C, D:
1000 – обмотка A
0100 – обмотка B
0010 – обмотка C
0001 – обмотка D

Данный вид коммутации называется “полношаговым режимом”, то есть за каждую коммутацию происходит смещение ротора шагового двигателя на один целый шаг. Так же существует “полушаговый режим”, коммутация обмоток при полушаговом режиме следующая:
1000 – 1-е пол шага обмотки А
1100 – 2-е пол шага обмотки А
0100 – 1-е пол шага обмотки B
0110 – 2-е пол шага обмотки B
0010 – .
0011 – .
0001 – .
1001 – 2-е пол шага обмотки D

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

Программа подходит для любого микроконтроллера AVR Attiny2313, Atmega8, Atmega16.
Итак, вот и сама программа (программа для полношагового режима):

Таким образом скорость вращения шагового двигателя будет замедлятся или ускорятся в зависимости от того, будут вы увеличивать (m=m+1;) или уменьшать (m=m-1;) время задержки между командами.

Хочу сказать что униполярные шаговые двигатели не очень мощные, то есть использовать их для перемещения предмета весом больше 40-80 грамм нет смысла, он просто не потянет. Тем более в полушаговом режиме. Для таких целей лучше всего применять шаговые двигатели из принтеров, те которые перемещают каретку с печатной головкой принтера.
Для экономичного управления униполярным шаговым двигателем необходимо отключать напряжение на обмотках во время простоя, то есть не давать обмотке шагового двигателя все время находится под напряжением, так как это приводит к нагреву самого шагового двигателя и соответственно к большой потере энергии (хотя конечно если преследуете цель обогрева помещения при помощи ШД тогда да 🙂 ). Максимальная скорость вращения ротора униполярного шагового двигателя не столь велика, её можно определить при помощи небольшого кусочка, который я разместил в самом низу программы. То есть для устройств требующих больших скоростей вращения униполярные шаговые двигатели не годятся.

Если не ошибаюсь IRF это не

Если не ошибаюсь IRF это не логического уровня, берите IRL и будев вам счастье.

Читайте также:  Светодиоды 10 Вт характеристики
Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector