Плюсы и минусы
Плюсы: независимая от частоты регулировка скважности, SSTC никогда не уйдет в CW режим, если подгорит прерыватель. Минусы: скважность нельзя увеличивать «бесконечно много», как например на UC3843, она ограничена емкостью конденсатора и скважностью самого генератора (не может быть больше скважности генератора)
Ток через конденсатор идет плавно
Минусы: скважность нельзя увеличивать «бесконечно много», как например на UC3843, она ограничена емкостью конденсатора и скважностью самого генератора (не может быть больше скважности генератора). Ток через конденсатор идет плавно
На последнее не знаю как драйвер реагирует (плавную зарядку). С одной стороны драйвер также плавно может открывать транзисторы и они будут сильнее греться. С другой стороны UCC27425 — цифровая микросхема. Для нее существует только лог. 0 и лог. 1. Значит пока напряжение выше порогового — UCC работает, как только опустилось ниже минимального — не работает. В этом случае все работает в штатном режиме, и транзисторы открываются полностью.
Генератор меандра на Attiny13
Доброго времени суток! Необходимо генерировать прямоугольную частоту около 1000 Hz ножкой микроконтроллера Attiny13.
Вроде ничего сложного, настраиваем 8 битный таймер и в прерывании по переполнение инвертируем ногу, вроде посчитал. Загнал все это дело в Proteus, а на ножке показывает порядка 36 Гц. Проверял встроенным частотомером.
Тактирование от внутреннего осциллятора на 9,6 МГц, CKDIV8 отключен. Считаю следующим образом:
Повторюсь, генерация происходит, но в симуляторе ни о каких 1000Гц говорить не приходиться. В железе пока даже не проверял. Правильно ли я значение переполнения посчитал? И вообще настроил таймер?
Добавлено через 12 минут Сорян, ошибся в названии темы. не 2313, а Attiny13.
Добавлено через 1 час 13 минут так, со значением 251 — ногой получилось дрыгать с частотой
935 Гц. Почему так?
Формирование меандра (8051)Подскажите или посоветуйте где можно прочесть. Начали изучение микроконтроллера 8051. Задача.
STM32F4 генерация меандраПомогите, пожалуйста, сгенерировать меиндр с частотой 8 МГц на таймере- счетчике, включенном в.
Усилитель на транзисторах для 1МГц меандраДобрый день. Нужна схема для усиления меандра без искажений на частоте 1МГц и ниже, коэффициент.
Генерация АМ-импульсов с огибающей в виде меандраПроблема с генерацией АМ-импульсов (Скважность равна 2). Модулируя огибающую, заданную через
Внешний вид макета
Примечание. Конденсатор C2 в схеме можно не использовать.
В этой схеме есть три компонента без номиналов: резисторы Ra и Rb, а также конденсатор C1 (далее просто C). Дело в том, что именно с помощью этих элементов настраиваются нужные нам характеристики генерируемого импульсного сигнала. Делается это с помощью несложных формул, взятых из технической документации к микросхеме.
T = 1/F = 0.693*(Ra + 2*Rb)*C; (1)
t = 0.693*(Ra + Rb)*C; (2)
Ra = T*1.44*(2*D-1)/C; (3)
Rb = T*1.44*(1-D)/C. (4)
Здесь F — частота сигнала; T — период импульса; t — его длительность; Ra и Rb — искомые сопротивления. Исходя из этих формул, коэффициент заполнения не может быть меньше 50% (иначе мы получим отрицательное значение сопротивления). Вот это новость! А что же нам делать с гирляндой? Ведь согласно нашей постановке, коэффициент заполнения импульсного сигнала должен быть непременно 33%.
Чтобы обойти это ограничение имеется два способа. Первый способ заключается в использовании другой схемы подключения таймера. Существуют более сложные схемы, которые позволяют варьировать параметр D во всем диапазоне от 0 до 100%. Второй способ не требует переделки схемы. Мы просто-напросто инвертируем выход таймера!
Собственно, в предложенной выше схеме мы это уже и сделали. Вспомним, что катод светодиода мы соединили с выводом таймера. В этой схеме светодиод будет гореть, когда на выходе таймера будет низкий уровень.
Раз так, то нам нужно настроить сопротивления Ra и Rb схемы так, чтобы коэффициент заполнения D был равен 66.6%. Учитывая, что T = 3 сек, а D = 0.66, получаем:
Ra = 3*1.44*(2*0.66 — 1)/0.0001 = 13824 Ом
Rb = 3*1.44*(1-D)/0.0001 = 14688 Ом
На самом деле, если мы будет использовать более точные значения D, то получим Ra = Rb = 14400 Ом. Вряд ли мы найдем резистор с таким номиналом. Скорее всего нам потребуется поставить последовательно несколько резисторов, например: один резистор на 10 КОм и 4 штуки на 1 КОм. Для большей точности можем добавить еще два резистора по 200 Ом.
В результате должно получиться что-то подобное:
В этой схеме используются резисторы на 15 КОм.
Генераторы импульсов на лавинных транзисторах
Генераторы импульсов (рис. 12, 13) также выполнены на лавинных транзисторах микросхемы К101КТ1 типа п-р-п или К162КТ1 типа р-п-р, динисторах, или аналогах динисторов и лавинных транзисторов (см. рис. 1).
Рис. 12. Схема генератора импульсов на лавинных транзисторах К101КТ1.
Генераторы работают при напряжении питания выше 9 Б и вырабатывают напряжение треугольной формы. Выходной сигнал снимается с одного из выводов конденсатора.
Входное сопротивление следующего за генератором каскада (сопротивление нагрузки) должно в десятки раз превышать величину сопротивления R1 (или R2). Низкоомную нагрузку (до 1 кОм) можно включать в коллекторную цепь одного из транзисторов генератора.
Рис. 13. Схема генератора импульсов на лавинных транзисторах К162КТ1.
Улучшение схемы
Как можно было бы доработать эту схему? Вот некоторые соображения.
Частота такого генератора весьма нестабильна. Для исправления этого недостатка часто заменяют конденсатор на кварцевый резонатор нужной частоты, а также пропускают сигнал ещё через один-два элемента 2И-НЕ.
Для регулировки частоты можно постоянный резистор заменить на подстроечный, а также добавить переключатель и несколько конденсаторов, чтобы менять ёмкость. Однако, как и в любой схеме, есть ограничения на номиналы деталей. Например, сопротивление R1 не может быть менее 1 кОм.
Более интересная задача — регулировка скважности. В приведённой схеме длительность импульса равна длительности паузы, скважность 50%
А что если мы хотим короткий импульс и длинную паузу, или наоборот? Тогда нужно последовательно с R1 включить примерно такую конструкцию:
Схема регулировки скважности
Здесь заряд и разряд конденсатора идут через разные плечи R2 благодаря диодам VD1 и VD2, так что соотношение импульса и паузы будет разное в зависимости от положения движка R2.
Проверка работы
В первом случае после конструирования должен получиться стандартный мотор-редуктор Ардуино синусоидальных и прямоугольных волновых сигналов, диапазон которых регулируется от до 40 МГц.
Проверить управление легче легкого – есть 2 кнопки – вверх и вниз, для настройки грубого характера, а другие – влево и вправо – настраивают аппарат на точную проверку. Настроить шаг можно в зависимости от установленной частоты на аппарате.
Во втором случае итоговое решение будет выглядеть так:
Кроме того, перед переносом программы, указанной в разделе «Программное обеспечение», нужно проверить правильность кода с помощью компилирования.
Аппаратная часть прибора легко соединяется с использованием отдельных модулей, поэтому частотный генератор на базе микропроцессора Ардуино может сделать начинающий разработчик электронных устройств.
Генератора прямоугольных импульсов — схема и работа
Принципиальная схема генератора прямоугольных импульсов показана на следующем рисунке:
В качестве устройства ввода используется матричная клавиатура 4 × 3. Четыре ряда (с RW1 по RW4) клавиатуры подключены к цифровым контактам 10, 11, 12 и 13 платы Arduino Uno. Три столбца (с CL1 по CL3) клавиатуры подключены к аналоговым входным контактам Arduino (с A0 по A2). Каждая колонка подключена к источнику питания 5 В через резистор сопротивлением 1 кОм (R1 — R3).
Arduino Uno — это плата разработки на базе микроконтроллера AVR ATmega328P (MCU) с шестью аналоговыми выводами и 14 цифровыми контактами ввода/вывода. Микроконтроллер имеет 32 КБ флэш-памяти ISP, 2 КБ ОЗУ и 1 КБ EEPROM. Плата обеспечивает последовательную связь через UART, SPI и I2C. Микроконтроллер может работать с тактовой частотой 16 МГц.
В нашем примере цифровые выводы Arduino 13, 12, 11, 10 и 9 сконфигурированы как выходные выводы. Контакты A0, A1 и A2 служат для аналоговых входов.
Программного обеспечения
Исходный код написан на языке программирования Arduino. Плата программируется с использованием программного обеспечения Arduino IDE.
Выберите плату Arduino Uno в меню Инструменты –> Плата в Arduino IDE и загрузите ниже приведенный скетч через стандартный порт USB на вашем компьютере:
int r1=10; int r2=11; int r3=12; int r4=13; int c1; int c2; int c3; float x=0;int a; float t,t1,t2,f,d,t3; void setup() { pinMode(r1,OUTPUT); pinMode(r2,OUTPUT); pinMode(r3,OUTPUT); pinMode(r4,OUTPUT); pinMode(9,OUTPUT); pinMode(0,INPUT); pinMode(1,INPUT); pinMode(2,INPUT); Serial.begin(9600); } void loop() { digitalWrite(r1,LOW); digitalWrite(r2,HIGH); digitalWrite(r3,HIGH); digitalWrite(r4,HIGH); c1=analogRead(0); c2=analogRead(1); c3=analogRead(2); if(c1<600) {a=1; x=10*x+a; Serial.println(x); delay(500);} else { if(c2<600) {a=2; x=10*x+a; Serial.println(x); delay(500);} else { if(c3<600) { a=3; x=10*x+a; Serial.println(x); delay(500);} }} digitalWrite(r1,HIGH); digitalWrite(r2,LOW); digitalWrite(r3,HIGH); digitalWrite(r4,HIGH); c1=analogRead(0); c2=analogRead(1); c3=analogRead(2); if(c1<600) {a=4; x=10*x+a; Serial.println(x); delay(500);} else { if(c2<600) {a=5; x=10*x+a; Serial.println(x); delay(500);} else { if(c3<600) {a=6; x=10*x+a; Serial.println(x); delay(500);} }} digitalWrite(r1,HIGH); digitalWrite(r2,HIGH); digitalWrite(r3,LOW); digitalWrite(r4,HIGH); c1=analogRead(0); c2=analogRead(1); c3=analogRead(2); if(c1<600) {a=7; x=10*x+a; Serial.println(x); delay(500);} else { if(c2<600) {a=8; x=10*x+a; Serial.println(x); delay(500);} else { if(c3<600) {a=9; x=10*x+a; Serial.println(x); delay(500);} }} digitalWrite(r1,HIGH); digitalWrite(r2,HIGH); digitalWrite(r3,HIGH); digitalWrite(r4,LOW); c1=analogRead(0); c2=analogRead(1); c3=analogRead(2); if(c1<600) {f=x; x=0; Serial.println("enter duty cycle"); delay(500);} else { if(c2<600) {a=0; x=10*x+a; Serial.println(x); delay(500);} else { if(c3<600) { d=x; t=(1/f); t1=t*1000000; t2=t1*(d/100); t3=t1-t2; Serial.print("frequency="); Serial.println(f); Serial.print("duty cycle="); Serial.println(d); x=0; while(1) { digitalWrite(9,1); delayMicroseconds(t2); digitalWrite(9,0); delayMicroseconds(t3); } delay(500);} }} }
Функция Serial.begin (9600) инициализирует последовательный порт со скоростью 9600 бод. В этом проекте монитор последовательного порта Arduino IDE также отображает введенное значение частоты и рабочего цикла прямоугольных импульсов.
Примечание. Arduino необходимо перезагружать каждый раз, перед тем как устанавливается новая частота и рабочий цикл.
Схема работы проста. После загрузки кода в Arduino подключите клавиатуру, как показано на схеме. Включите питание и введите желаемое значение частоты с клавиатуры. Затем нажмите кнопку рабочего цикла S11 (см. схему) и введите желаемое значение рабочего цикла, нажимая цифровые клавиши (от S0 до S9). Наконец, нажмите клавишу Enter (S12).
Выходные прямоугольные импульсы будут на разъеме CON1, который подключен к цифровому выводу 9 Arduino Uno.
Тестер транзисторов / ESR-метр / генератор
Многофункциональный прибор для проверки транзисторов, диодов, тиристоров…
Подробнее
Настройка
Если по окончанию загрузки пользователь получил сообщение «Done uploading», значит, генератор сигналов на Ардуино с дисплеем готов к работе. Следующий шаг – соединение модулей.
Выходные сигнальные волны снимаются с контактов генератора:
- QOUT1,
- QOUT2 (прямоугольный),
- ZOUT1,
- ZOUT2 (синусоидальный).
После сборочных работ следует тщательно проверить, правильно ли подключены все контакты. Если все правильно подключено – подаем питание в устройство из электросети.
По истечению пары секунд на дисплее загорится стандартное значение частоты – 10 кГц. Значение можно изменить в любое время – для этого в листинге выше запрограммированы кнопки вверх, вниз, влево и вправо.
Схема DDS-генератора сигналов
Данный генератор базируется на алгоритме 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 Гц, этого более чем достаточно для тестирования аудио-схем и других радиолюбительских задач.
ОТВЕТЫ НА ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ (FAQ)
Можете ли Вы изменить или доработать программу под мои пожелания?
Можем. Цена такой доработки будет определена в зависимости от её сложности; для больших партий некоторые доработки можем выполнить и бесплатно. Воспользуйтесь формой заказа выше и опишите желаемые доработки в поле «Примечания».
Пригодно ли устройство для прецизионных задач?
Нет. Встроенный тактовый генератор PIC12F675 не слишком точный, лучше рассчитывать на погрешность до 2% (обычно намного меньше). При задании периода с помощью потенциометра предпочтительна настройка частоты с помощью осциллографа на выходе, а не вольтметра на входе.
Можете ли Вы отправить изделие на Украину и другие страны ближнего зарубежья?
Да, мы можем отправить заказ в другие страны Почтой РФ, но доставка может стоить очень дорого (подробнее см. «Доставка заказов»). Если Вы готовы оплачивать дорогостоящую доставку, оформите заявку с сайта обычным путём (через форму выше), указав страну и город. Мы рассчитаем и сообщим Вам её точную стоимость.
User Interface
Организовать пользовательский интерфейс было решено в четыре прямоугольника, каждый имеет картинку выводимого сигнала, частоту и амплитуду/скважность. Для текущего выбранного канала текстовые данные выведены белым шрифтом, для остальных — серым
Управление было решено делать на энкодерах: левый отвечает за частоту и текущий выбранный канал (изменяется при нажатии на кнопку), правый отвечает за амплитуду/скважность и форму волны (изменяется при нажатии на кнопку). Кроме того, реализована поддержка сенсорного экрана — при нажатии на неактивный канал он становится активным, при нажатии на активный канал меняется форма волны
Кроме того, реализована поддержка сенсорного экрана — при нажатии на неактивный канал он становится активным, при нажатии на активный канал меняется форма волны.
Конечно же используется DevCore для осуществления всего этого. Код инициализации пользовательского интерфейса и обновления данных на экране выглядит так:
Интересно реализована обработка нажатия кнопки (представляет собой прямоугольник поверх которого рисуются остальные элементы). Если вы смотрели код, то должны были заметить такую штуку: ch_dsc.box.SetCallback (&Callback, this, nullptr, i); вызываемую в цикле. Это задание функции обратного вызова, которая будет вызываться при нажатии на кнопку. В функцию передаются: адрес статической функции статической функции класса, указатель this, и два пользовательских параметра, которые будут переданы в функцию обратного вызова — указатель (не используется в данном случае — передается nullptr) и число (передается номер канала).
Еще с университетской скамьи я помню постулат: «Статические функции не имеют доступа к не статическим членам класса«. Так вот это не соответствует действительности. Поскольку статическая функция является членом класса, то она имеет доступ ко всем членам класса, если имеет ссылку/указатель на этот класс. Теперь взглянем на функцию обратного вызова:
В первой же строчке этой функции происходит «магия» после чего можно обращаться к любым членам класса, включая приватные.
Кстати, вызов этой функции происходит в другой задаче (отрисовки экрана), так что внутри этой функции надо позаботится о синхронизации. В этом простеньком проекте «пары вечеров» я этого не сделал, потому что в данном конкретном случае это не существенно.
Исходный код генератора загружен на GitHub: https://github.com/nickshl/WaveformGenerator DevCore теперь выделена в отдельный репозиторий и включена как субмодуль.
Ну а зачем мне нужен генератор сигналов, будет уже в следующей (или одной из следующих) статье.
Ой, у вас баннер убежал!
Более сложные схемы генераторов
Несмотря на то, что ток протекает только в одном направлении, и поэтому называется громко постоянным, постоянно изменяется его величина, из-за чего подобные схемы практически неприменимы на практике.
Рассмотрим строение более сложных генераторов, которые позволяют получить ток с меньшей пульсацией.
Двухвитковый генератор
- Представим такую конструкцию генератора, в которой перпендикулярно друг другу расположены две рамки, соединенные в свою очередь с коллектором, который теперь сделан не из полу, а четвертьколец.
- При вращении рамок или витков, в них также как и в предыдущем случае возникает ЭДС. Однако максимальное и минимальное значение «Е» теперь достигается не через пол оборота всей рамки, а через четверть, то есть поворот одного витка на 90 градусов.
- На представленном выше рисунке хорошо видно, что через сторону витка 1, ровно, как и через сторону 3 (считаем в примере по часовой стрелке) протекает максимальный ток, тогда как на частях 2 и 4 ЭДС будет равна нулю, так как эти проводники скользят вдоль силовых линий.
- Соответственно конструкция всего генератора делается таким образом, чтобы именно в этот момент щетки касались контактных пластин коллектора 1 и 3.
- Представим вращение генератора. При этом значение ЭДС на витке 1 начинает убывать, тогда как на 2, наоборот, возрастать. Когда будет совершена 1\8 полного оборота, Е1 будет минимальна, но она не будет соответствовать нулю, так как проводник до сих пор при движении пересекает силовые линии.
- Именно в этот момент и происходит перемена щеток на противоположные, и ЭДС начинает снова расти, так и не упав до нуля. Теперь ток начинает течь по витку, постепенно возрастая до своего максимума. Спустя четверть оборота снова происходит смена щеток, и так далее. Подробнее понять изменившиеся величины ЭДС можно из следующего графика.
Пульсации ЭДС на четырехвитковом генераторе
Получается, что щетки постоянно соединены с «активными проводниками», в которых ЭДС постоянно колеблется от Еmin до Еmax.
Во внешней цепи при этом ничего не меняется, из-за разбитого на четыре части коллектора. Ток продолжает течь все в том же направлении от щетки 2 к щетке 1. Он, как и прежде, будет пульсировать, и пульсации станут происходить в два раза чаще, однако разница максимальных и минимальных величин ЭДС будет значительно меньше, чем в предыдущем случае.
Идя дальше по этому принципу, и увеличивая количество вращающихся витков и коллекторных пластин можно добиться минимальной пульсации постоянного тока, то есть он действительно станет практически постоянным.
Продолжаем усложнять схему
Рассматривая предложенные схемы генераторов, не сложно догадаться, что хоть увеличенное количество витков и уменьшает пульсации, сам генератор становится все менее эффективным. Так как фактически щетки одномоментно контактируют только с одной рамкой, когда другие остаются неиспользуемыми. ЭДС одного витка невелика, поэтому и мощность генератора будет невысокой.
Чтобы использовать весь потенциал генератора, витки соединяют друг с другом последовательно по определенной схеме, а количество коллекторных пластин уменьшают до числа витков обмотки.
К каждой коллекторной пластине будет подходить начало одного витка и конец другого. При этом витки представляют собой источники тока, соединенные последовательно, и все вместе это называется обмотка якоря или ротора генератора. При таком соединении сумма ЭДС будет равна индуктируемым значениям в витках, включенных между щетками.
При этом количество витков делается достаточно большим, чтобы можно было получить требуемую мощность генератора. Именно по этой причине, особо мощные генераторы, например, от тепловозов, имеют очень большое количество пластин.
Генератор напряжения пилообразной формы
Генератор треугольного напряжения, выполненный по предыдущей схеме, легко преобразуется в генератор пилообразного напряжения. Для этого достаточно обеспечить разную длительность заряда и разряда конденсатора в схеме интегратора. Такие изменения показаны на рисунке ниже
Генератор колебаний пилообразной формы.
Как нетрудно заметить внесённые изменения касаются цепи заряда-разряда конденсатора С1 в интеграторе. Диоды VD1 и VD2 позволяют выполнять заряд-разряд конденсатора разными токами. При изображённой на схеме полярности включения диодов длительность разряда конденсатора С1, а следовательно и длительность линейно-возрастающего напряжения определяется величиной сопротивления резистора R4’, а длительность заряда С1 и линейно падающего сигнала на выходе интегратора – сопротивлением R4” по следующим формулам
Все остальные аспекты работы схемы аналогичны предыдущей. Так как схема не является симметричной то резистор R5 можно удалить. Частота выходного пилообразного напряжения будет определяться суммой резисторов R4’ и R4”. Стабильность частоты в данной схеме будет ограниченна температурной нестабильностью диодов VD1 и VD2
Чем отличается от синхронного?
Основным отличием генератора асинхронного типа от синхронного является измененная конструкция ротора. Во втором варианте ротор использует проволочные обмотки. Чтобы организовать вращательное движение вала и создать магнитную индукцию, агрегат задействует автономный источник питания, которым зачастую выступает генератор меньшей мощности. Его располагают параллельно той оси, на которой располагается ротор.
Плюс синхронного генератора заключается в образовании чистой электрической энергии. Кроме того, устройство без особого труда синхронизируется с другими подобными машинами, и это тоже различие.
Единственным недостатком считают восприимчивость к перегрузкам и КЗ. Дополнительно стоит отметить, что разница между двумя видами оборудования заключается и в цене. Синхронные агрегаты более дорогие по сравнению с устройствами асинхронного типа.
Что касается клирфактора, то у асинхронных агрегатов его показатель значительно ниже. Поэтому можно утверждать, что этот вид устройств вырабатывает чистый электрический ток без каких-либо загрязнений. За счет действия подобной машины удается обеспечить более надежную работу:
- ИБП;
- зарядных устройств;
- телевизионных приемников нового поколения.
Запуск асинхронных моделей происходит быстро, однако требует увеличения пусковых токов, которые запускают вращение вала. Плюсом является то, что в процессе работы конструкция испытывает меньше реактивных нагрузок, за счет чего удалось улучшить показатели теплового режима. Кроме того, работа асинхронных генераторов более стабильная вне зависимости от того, с какой скоростью вращается подвижный элемент.
Принцип построения импульсных генераторов на ОУ
В предыдущих статьях я рассказывал об импульсных генераторах с различной формой импульсов, выполненных на транзисторах. Для простых устройств их, возможно, применять, но для создания сложных устройств с регулировкой различных параметров их схемы оказываются неоправданно трудоёмкими в настройке и разработке. Поэтому для упрощения схемотехнической реализации применяют генераторы импульсов в основе, которых лежат операционные усилители.
В общем случае для получения импульсов различной формы требуется замкнутая система, которая состоит из трёх основных частей: интегратора, компаратора и логической схемы.
Блок-схема генератора колебаний различной формы.
Хотя схема состоит из трех частей, но довольно часто в простых генераторах применяют один-два операционных усилителя. Для повышения гибкости и универсальности схем генераторов можно добавлять дополнительные ОУ.
Первой рассматриваемым генератором будет мультивибратор, то есть генератор прямоугольных импульсов.