Суббота, 20.04.2024, 12:48
Меню сайта
Категории
Поиск
ЧАТ
Облако фото
Поделиться
Главная » Статьи » Бытовые приборы » Управление

Регулятор температуры паяльника



Транзистор VT1 служит для формирования синхроимпульсов, необходимых для корректного управления симистором. На базу транзистора подаётся выпрямленное пульсирующее напряжение частотой 100 гц (верхняя эпюра на графике), на коллекторе транзистора и выводе 6 микроконтроллера DD1 формируются импульсы положительной полярности с периодом 10 мс (нижняя эпюра на графике):

Используемый симистор S202S02 не позволяет реализовать фазоимпульсное регулирование напряжения (его нельзя открыть в произвольный момент времени), поэтому единственный выход - "выкусывать" часть полупериодов напряжения на нагрузке.

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

Но это теория, на практике же, паяльник мощностью 40 ватт (или лампочка в подъёзде, включён­ная через диод) трансформаторную будку вместе с силовым трансформатором сильно не намагнитят. Поэтому в текущей версии программы микроконтроллера разрешено появление нечётного количества полуволн.

Для примера, зададимся числом полупериодов = 100. Тогда удалив один полупериод, мы понизим мощность паяльника на 1%, удалив 50 полупериодов - понизим мощность на 50%. Но 50% можно получить и по другому, выкусывая каждый второй полупериод! Также, можно найти кратные значения и для других комбинаций полупериодов. Чтобы не считать каждый раз всю таблицу вручную, на языке VBA (Visual Basic for Application) из состава Microsoft Excel была написана вспомогательная программа, в которой можно задаться количеством полупериодов, шагом "выкусывания", а также разрешить или запретить нечётное количество полуволн:

В текущей версии программы микроконтроллера используется таблица из 100 полупериодов с шагом 2. Нечётное количество полупериодов - разрешено. При этом получается 51 градация мощности, что вполне удобно. Большее количество не имеет смысла, т.к. невозможно уверенно выбрать ту или иную ступень при помощи переменного резистора.

Соответствие синхроимпульсов на выводе 6 микроконтроллера (верхняя эпюра) и импульсов управления симистором на выводе 3 микроконтроллера (нижняя эпюра) показано на рисунке (горизон­тальный масштаб - 5 мс на деление; уровень мощности - 50%):

Как видно из графика, длительность импульсов управления равна 5 мс. Этого вполне достаточно не только для уверенного открывания симистора, но и для свечения светодиода HL1, расположенного на передней панели устройства. Напряжение на нагрузке в случае уровня мощности 50% имеет вид од­нополупериодного выпрямления:

Программа для микроконтроллера ATtiny13 написана на языке Си в среде разработки CodeVisionAVR 1.25.5. Бесплатная версия компилятора имеет ограничение по размеру компилируемого кода (hex), в 2 кБ. Поскольку объём памяти применяемого микроконтроллера равен 1 кБ, то "бесплатность" компилятора является большим плюсом. Для редактирования исходника необходимо запустить (открыть) файл проекта "copper.prj".

Вся программа состоит из четырёх функций:

- void main(void);

- interrupt [EXT_INT0] void ext_int0_isr(void);

- unsigned char read_adc(unsigned char adc_input);

- void open_simistor (void).

Рассмотрим назначение каждой функции подробнее:

- void main(void) - основная функция в любой программе на языке Си. После включения мик­роконтроллера первой начинает выполняться именно эта функция. Поэтому в её начале находится ини­циализация всех необходимых составляющих микроконтроллера (таймеры, АЦП, порты и т.д.), а также чтение сохранённых в EEPROM данных;

- interrupt [EXT_INT0] void ext_int0_isr(void) - функция обработки прерывания. Отправной точкой работы программы являются прерывания, инициируемые нарастающим фронтом импульсов на выводе 6 микроконтроллера. После наступления прерывания, микроконтроллер прекращает все текущие действия и переходит к выполнению кода, размещённого в данной функции. Условно, функция состоит из трёх частей:

- определение положения движка резистора R3 (функция unsigned char read_adc(unsigned char adc_input));

- проверка условий открытого/закрытого состояния симистора;

- управление симистором (функция void open_simistor (void));

- unsigned char read_adc(unsigned char adc_input) - функция выполняет запуск преобразования и чтение результатов преобразования АЦП, т.е. фактически здесь определяется положение движка переменного резистора R3. Поскольку в данной задаче не требуется большого разрешения, то ис­пользуются только старшие 8 бит 10-битного результата. Частота тактирования АЦП, напротив, выбрана большой - 600 кГц. Результат преобразования АЦП используется для выбора нужной ячейки двумерного массива flash unsigned char cycles[52][2], в котором находится таблица скважностей всего диапазона регулировки мощности;

- void open_simistor (void) - функция управления симистором. Определяет задержку и длительность импульса открывания симистора. Единственное, что нужно прокомментировать в этой функции - строку " if (mode == 0) delay_us(2000); ".

Дело в том, что во время первичных испытаний, когда вся конструкция была собрана на "соплях", и провода были длинными, наблюдалось нестабильное открывание симистора. Это происходило только при работе симистора под нагрузкой и только при напряжении питания 15 вольт (ступень для 12-ти вольтового паяльника). Нормальная работа обеспечивалась задержкой импульса открывания симистора (нижняя эпюра) относительно синхроимпульса (горизонтальный масштаб - 2 мс на деление; уровень мощности - 100%):

Включение и выключение задержки реализовано через положение движка переменного резистора R3. Если ПРИ ВКЛЮЧЕНИИ питания движок находится в крайнем левом положении (нижнем по схеме), то в EEPROM микроконтроллера записывается флаг признака включения задержки. Если движок резистора в момент включения находился в крайнем правом положении (верхнем по схеме), то в EEPROM микроконтроллера пишется флаг признака выключения задержки. Когда движок резистора находится в любом другом промежуточном положении (а так оно, чаще всего, и бывает), то данные из EEPROM просто переписываются в ОЗУ микроконтроллера. Таким образом, выполнено запоминание необходимого режима работы.

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


Категория: Управление | Добавил: SeM (10.02.2011)
Просмотров: 3279 | Рейтинг: 3.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Новый Год
Наш опрос
Сайт нормально отображается?
Всего ответов: 44
Профиль
Суббота 20.04.2024


Облако Тегов
Copyright Мир Электроники © 2024