Таймер для кухни на PIC16F628A с энкодером
Микроконтроллеры и Технологии каталог схем и прошивок
- Вход на сайт
- Создать аккаунт
Имя пользователя
Пароль
Запомнить меня
- Забыли пароль?
- Забыли логин?
- Создать аккаунт
- Создать аккаунт
- Вход на сайт
- Главная|
- Устройства|
- Microchip|
- Таймер для кухни на PIC16F628A с энкодером
- Просмотров: 53297
Таймер Семисегментный индикатор Энкодер PIC16F628
Это очередная поделка из хлама — таймер для кухни, хотя и не обязательно для кухни. В ход пошли детали которые валялись без дела, в частности старые индикаторы АЛСки, резисторы выпаянные из старых плат и т.д. Основа устройства микроконтроллер
Также есть вариант под индикаторы с общим анодом. Обратите внимание, что и прошивки под каждую из схем — свои. Все отличия выделены на схеме красным цветом.
После включения питания на индикаторах высвечивается заданное время, светодиод не горит. Вращая валкодер можно изменить установку времени от 1 до 99 минут. Когда время установлено, нажимаем кнопку — раздается короткий звуковой сигнал и таймер начинает отсчет времени, светодиод мигает, а время на индикаторе уменьшается каждую минуту.
Вторая версия прошивки работает также как и первая, но имеет несколько дополнений. В режиме установки времени, если к валкодеру не прикасаться несколько секунд, на дисплее начинает бегать анимационная заставка. нажатие кнопки или вращение валкодера отключит анимацию и вновь отобразит режим установки времени. Во время отсчета времени, если осталась одна минута, на дисплее индицируются секунды от 60 до 00. Когда сработал звуковой сигнал, звучать он будет не бесконечно, а около 20 секунд. Далее дисплей начинает индицировать анимационную заставку (отличную от той, которая в режиме установки). А также, через каждую минуту будет напоминать коротким звуковым сигналом. Нажатием кнопки также, как и в первой прошивке таймер сбрасывается в режим установки времени.
Звуковой сигнал реализован с помощью аппаратного ШИМ встроенного в микроконтроллер. Динамическая головка должна иметь сопротивление порядка 50 ом. Можно применить и низкоомные динамические головки (4 или 8 ом), но в данном случае лучше установить малогабаритный выходной трансформатор, т.к. через 4 омную головку будет протекать большой ток, который может вызвать перегрузку блока питания и спровоцировать сброс микроконтроллера.
Печатная плата, вариант Алексея Антонова
Автор: Mamed
Архив для статьи «Таймер для кухни на PIC16F628A + энкодер» | |
Описание: Файлы прошивок микроконтроллера, макет печатной платы в формате LAY | |
Размер файла: 27. 53 KB Количество загрузок: 4 043 | Скачать |
Понравилась статья? Поделиться с друзьями:
- Назад
- Вперед
Многопрограммный таймер на микроконтроллере pic16f628a. простой таймер для кухни на pic16f628a. схема таймера
Схема двухканального термометра и часов
Конструкция собрана на микроконтроллере ATmega8-16PU, микросхеме часов реального времени DS1307 в DIP корпусе, цифровых датчиках температуры DS18B20, ЖК индикаторе LCD1602
Схема устройства создана в программе «Cadsoft Eagle»
Датчики температуры подключаются к разъемам DS1 и DS2:
— вывод 1 — к выводу GND датчика
— вывод 2 — к выводу DQ датчика
— вывод 3 — к выводу Vcc датчика
Подключение датчиков на схеме не соответствует печатной плате. Программа подогнана под печатную плату, необходимо подключать: — 1-й датчик к РВ1 (15-й вывод) — 2-й датчик к РВ2 (16-й вывод)
Обращаю ваше внимание на подключение выводов порта D микроконтроллера к выводам индикатора:
— PD0 микроконтроллера — к выводу D7 индикатора
— PD1 микроконтроллера — к выводу D6 индикатора
— PD2 микроконтроллера — к выводу D5 индикатора
— PD3 микроконтроллера — к выводу D4 индикатора
Такое подключение выбрано с целью упрощения разводки дорожек на печатной плате
Детали, примененные в конструкции:
В качестве ЖК дисплея применен 2- строчный, 16-символьный LCD дисплей китайского производства с маркировкой «1602А» — негативный, белые символы на темно-синем фоне с белой подсветкой.
— STN (FSTN) Negative (blue или black) с подсветкой (такой применен в конструкции) — такие индикаторы работают только с подсветкой
— FSTN Positive, TN Positive, HTN Positive — с подсветкой или без нее
Примененный китайский LCD индикатор не имеет встроенной кириллицы, поэтому, для наглядности вывода дня недели на индикатор в ОЗУ знакогенератора (CGRAM) записаны пользовательские символы — «П», «н», «т», «Ч», «б» и два символа в инверсном виде «Д» и «У».
Управление и настройка инкубатора
При первом нажатии кнопки меню регулятор переходит в режим установки температуры, о чём свидетельствует МИГАНИЕ ТОЧКИ кнопками плюс или минус устанавливаем температуру, которую нужно поддерживать в инкубаторе по умолчанию стоит 37,4 градуса.
При втором нажатии кнопки меню устанавливаем гистерезис разницу между включением и отключением. Можно установить в приделах от 0 до 0,9 градуса. По умолчанию стоит 0,1 (нагреватель отключается например при достижении температуры 37,4 включается при температуре 37,3) режим отличается буквой «Г» в четвёртом разряде.
Следующее нажатие кнопки меню переходим в режим установки коррекции показания датчика температуры DS18B20, пределы установки от -0,9 до 0,9 соответственно, если -0,1 вычитаем 0,1 градуса от считываемого с датчика значения. По умолчанию это значение 0,0.режим отличается маленькой буквой «с» в четвёртом разряде.
Четвёртое нажатие кнопки меню переходим в режим установки паузы между включения двигателя поворота лотков. Время устанавливается в минутах, максимальное значение 999 минут. Режим отличается буквой «Н» в четвёртом разряде.
Пятое нажатие кнопки меню переводит регулятор в режим установки времени работы двигателя, задается в секундах. Максимальное значение 999 секунд. Режим отображается большой буквой «С» в четвёртом разряде.
Шестое нажатие кнопки меню переводит регулятор в рабочий режим с сохранением всех изменений в энергосберегающую память контроллера. В общим сохраняются все настройки, которые вы сделали. И инкубатор готов к работе.
Особо тут рассказывать нечего.
Из плюсов данной схемы. Простота сборки. При достижении температуры на датчике 40 градусов питание схемы отключится, и инкубатор выключится полностью. Для включения инкубатора необходимо передёрнуть шнур питания
Из минусов. При обрыве либо любой другой неисправности датчика инкубатора нагреватель не отключится! Неудобное меню настройки параметров работы инкубатора.
Рисунок печатной платы. Индикатор ставится со стороны печатных проводников (индикатор управления инкубатором) Тут же на рисунке изображена и плата для измерителя влажности. (индикатор измерителя влажности ставится с лицевой стороны платы ) Схема инкубатора и схема измерителя влажности, были взяты из разных источников, поэтому это две разные независимые схемы, которые объединены в одну, только на печатной плате.
Управление влажностью инкубатора производится, большим или меньшим открытием вентиляционных отверстий в инкубаторе, либо большим, меньшим добавлением воды в латок с водой. Других способов управления влажностью в инкубаторе нет.
Настройка температуры, точность датчика температуры, и управление двигателем лотка переворота яиц. Всё это настраивается в соответствующем меню с помощью кнопок + —
Для тех, кто будет прошивать МК серии PIC для облегчения подключения программатора к МК, вот вам распиновка выводов МК серии PIC.
P.S. Если в рисунке схемы найдёте ошибки, ориентируйтесь по печатной плате, они 100% рабочие печатки (проверено неоднократным повторением схемы).
Автором схемы инкубатора и прошивки для него является: Оспанов Е.М.
Автором схемы измерителя влажности и прошивки для него является: Колтуник Ю.Ю.
Ссылка на страничку сайта автора измерителя влажности. http://www.kondratev-v.ru/izmereniya/elektronnyj-gigrometr-dlya-inkubatora.html#comment-2343
Что ещё сказать. По поводу целесообразности самостоятельной сборки, подобного инкубатора с нуля. Это спорный вопрос. Так как на том же Али экспресс , готовый терморегулятор W1209 , стоит как, одна МК PIC16F628A.
СтатьяСкачать
Видео о постройке инкубатора.
» src=»https://www.youtube.com/embed/v38JucZ1aV8?feature=oembed» frameborder=»0″ allow=»accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture» allowfullscreen=»»>Описание работы простого таймера на PIC16F628A
После подачи питания на схему таймера на светодиодных индикаторах высвечивается установленное время, светодиод не светится. Путем вращения ручки валкодера возможно поменять установку времени от 1 до 99 минут.
Схема таймера — индикаторы с общим катодом
Схема таймера — индикаторы с общим анодом
После установки требуемого временного диапазона, необходимо нажать кнопку, после чего зазвучит кратковременный акустический сигнал, и таймер активизирует отсчет времени, светодиод будет мигать, и время на табло будет убавляться каждую минуту.
По истечении времени, таймер выдаст прерывистые акустические сигналы, светодиод будет гореть постоянно. Путем нажатия кнопки отключается акустический сигнал, и таймер переходит в исходное состояние в ожидании нового ввода времени. Это было описание работы таймера с первой версией прошивки.
Вторая версия функционирует так же, как и первая, однако снабжена небольшими дополнениями. В состоянии выбора времени, если валкодер не крутить 2-3 секунды, на индикаторе появится анимационная заставка. Вращение валкодера или нажатие кнопки отключает заставку и снова активизируется режим выбора времени.
Подпишись на RSS!
Подпишись на RSS и получай обновления блога!
Получать обновления по электронной почте:
- Пленочные конденсаторы — применение в энергетике
9 апреля 2021 - Поворотное устройство для солнечного коллектора
15 марта 2021 - Выбор подпрограммы с помощью кнопки
11 марта 2021 - Керамические конденсаторы SMD, параметры
4 марта 2021 - Программа для проверки выходных буферов PIC16F676 и PIC16F628A
21 февраля 2021
- Пленочные конденсаторы — применение в энергетике
- Зарядное устройство для автомобильных аккумуляторов — 241 475 просмотров
- Стабилизатор тока на LM317 — 176 605 просмотров
- Стабилизатор напряжения на КР142ЕН12А — 127 742 просмотров
- Реверсирование электродвигателей — 104 283 просмотров
- Зарядное для аккумуляторов шуруповерта — 100 770 просмотров
- Карта сайта — 100 596 просмотров
- Зарядное для шуруповерта — 89 776 просмотров
- Самодельный сварочный аппарат — 89 482 просмотров
- Схема транзистора КТ827 — 85 407 просмотров
- Регулируемый стабилизатор тока — 85 043 просмотров
УСТРОЙСТВО СВЕТОВЫХ ЭФФЕКТОВ
Рейтинг: 5 / 5
- Подробности
- Категория: схемы на ATtiny
- Опубликовано: 08. 04.2017 11:19
- Просмотров: 4095
В статье представлен вариант устройства световых эффектов на базе микроконтроллера AVR. Устройство позволяет реализовать 16 различных световых эффектов с заданием скорости переключения индикаторов в гирляндах. Устройства, создающие световые эффекты, пользуются неизменной популярностью на различных массовых мероприятиях. Применение в них микроконтроллеров позволяет значительно увеличить их функциональные возможности по сравнению с аналогичными устройствами, выполненными на цифровых логических микросхемах. Количество реализуемых разнообразных световых эффектов ограничивается лишь фантазией разработчика и памятью программ микроконтроллера. Причем, что число исполняемых функций, а так же параметры и количество световых эффектов устройства можно изменить, под каждый конкретный случай, изменив фактически только программное обеспечение, как правило, при минимальных доработках в аппаратной части. Это очень удобно, когда для изменения сценария световой иллюминации достаточно «на ходу» изменить только программное обеспечение. При желании это можно сделать даже во время мероприятия. Для этого нужно только перепрограммировать микроконтроллер или заменить его с новой зашитой программой.
Программирование pic таймер
Компьютерные сети Системное программное обеспечение Информационные технологии Программирование. Здесь используются аналогичные принципы измерения ширины и частоты импульсов, а также широтно-импульсной модуляции, режимов сравнения и захвата. TMR0 рис. Таким образом, счет для него ограничен диапазоном Его тактирование реализуется от внешнего источника или на основании такта системной синхронизации. TMR1 рис.
Поиск данных по Вашему запросу:
Программирование pic таймер
Схемы, справочники, даташиты:
Прайс-листы, цены:
Обсуждения, статьи, мануалы:
Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам.
Содержание:
- Изучение таймеров микроконтроллера
- Программирование микроконтроллеров семейства PIC начинающим
- Таймеры. Организация временной задержки
- Бытовой таймер на PIC-микроконтроллере
- PIC Урок 8. TIMER1
- Универсальный таймер реального времени двухканальный ОВЕН УТ1-PiC
ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: PIC Timers
Изучение таймеров микроконтроллера
Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Осваиваем простейший микроконтроллер PIC. Часть 2 Программирование микроконтроллеров В первой части мы разобрали как можно прошить выбранный МК, как его правильно сконфигурировать, а так же научились работать с цифровыми портами. Теперь пришло время рассмотреть остальную периферию микроконтроллера.
Все параметры работы МК задаются через установку определенных значений в регистрах специального назначения SFR. Как и конфигурационные биты, все существующие в выбранном МК регистры доступны нам в виде переменных благодаря подключенной библиотеке.
Что бы узнать, какие биты в каких регистрах нам потребуются для конкретного модуля — придется снова заглянуть в документацию. Запись в регистр устанавливает указанный уровень на соответсующих ножках порта. Каждый бит регистра нам доступен в виде отдельной переменной, именно через них мы управляли светодиодом и считывали состояние кнопки.
Каждый из 8 битов регистра привязан к соответсвующей ножке МК. Присвоив нужному биту единицу — мы сделаем из него вход, а присвоив ноль — выход. Прерывания Так как микроконтроллеры не поддерживают многозадачность, возникает ряд проблем по совмещению нескольких процессов. Допустим, нужно нам мигать одним светодиодом постоянно с большим периодом, а второй переключать по нажатию кнопки. Какой бы порядок действий мы не выбрали, как надо у нас ничего не заработает: ведь пока микроконтролер отсчитывает время до переключения первого светодиода он может пропустить факт нажатия кнопки.
Тут нам и придут на помощь прерывания. При определенных условиях микроконтроллер может прервать выполнение бесконечного цикла и выполнить небольшую подпрограмму, после чего вернуться к выполнению основной задачи.
При срабатывании прерывания соответсвующему флагу присваивается значение 1, по которому можно легко определить какое из прерываний сработало. Сбрасывать флаги прерываний необходимо вручную после входа в обработчик прерываний, иначе при нескольких источниках разобрать кто конкретно его вызвал будет невозможно.
В качестве примера использования прерываний перепишем нашу программу по миганию светодиодом. Воспользуемся источником прерываний INT. Для изменения уровня сигнала на INT неободимо перенести кнопку на соответсвующую ногу pin 6. Таймеры Основная работа таймеров — считать. По завершению счета они могут генерировать прерывание. А так как счет идет аппаратно, не забивая процессорное время ожиданием, таймеры удачно подходят на замену нашим паузам.
Каждый из трех таймеров имеет свои особенности, потому для выполнение определенных задач нужно уметь выбрать более подходящий. TMR0 8-битный таймер считает от 0 до тактируется либо от системной частоты, либо от внешнего источника может считать как передние, так и задние фронты тактируемого сигнала 8-битный предделитель может считать каждый второй, каждый 4… каждый сигнал прерывание генирируется при переполнении при переходе от к 0 таймер работает постоянно Что нам это дает?
Не сложно посчитать, что без предделителя прерывания будут иметь частоту ,25 Гц. Для светодиода — многовато. Предделитель может на порядок двойчный, то есть в 2 раза уменьшить частоту восемь раз. При предделителе мы получим частоту в Мигание светодиодом с такой частотой вполне различимо человеческим глазом. При тактировании МК от внешнего кварца можно добиться другого диапазона частот. При тактировании таймера от внешнего источника таймер превращается в счетчик внешних импульсов.
В принципе счета ничего не меняется, просто в зависимости от источника может не получиться постоянная частота прерываний. Счетчиком можно считать количество нажатий кнопки, оборотов колеса и пр. При этом никто не обязывает считать от нуля до прерывания: текущее значение счетчика всегда доступно как для чтения, так и для записи. При желании в режиме таймера можно увеличить частоту прерываний изменяя стартовое значение счетчика при каждом прерывании, но так как за время перехода на процедуру обработки уйдет неизвестное время, точно расчитать частоту не удастся.
TMR1 Основные отличия таймера от TMR0: данный таймер битный таймер может тактироваться не только от внешнего источника, но и от дополнительного часового кварца максимально доступный предделитель — таймер может считать только передние фронты сигнала таймер может использоваться модулем CCP таймер можно отключать Использовать TMR1 можно так же, как и TMR0: или для генерирования определенной частоты, или для подсчета импульсов. TMR2 Данный 8-битный таймер имеет несколько иной принцип работы.
Тактироваться он может только от системной частоты. Предделитель может быть выставлен только на значения , или Полученные импульсы таймер считает от нуля и до предварительно заданного значения PR2. После совпадения TMR2 и PR2 подается сигнал на 4-битный постделитель, и только после переполнения постделителя генерируется прерывание. Благодаря такой схеме можно корректировать конечную частоту прерываний с минимальным шагом.
Как и TMR1, данный таймер можно отключить. Пример использования В качестве примера зададим частоту мигания светодиода таймером TMR1. Список всех необходимых переменных можно узнать из таблицы: Описание каждого бита можно найти в документации на микроконтроллер. Capture В режиме захвата модуль использует TMR1 в качестве измерителя времени.
Такими событиями могут быть: каждый задний фронт сигнала каждый передний фронт сигнала каждый четвертый передний фронт каждый 16 передний фронт Комбинируя события и высчитывая разность между полученными значениями таймера можно получить такие данные сигнала, как период, длительность импульсов или скважность. Например, некторые акселерометры передают информацию о полученном ускорении изменением скважности сигнала. Так же при совпадении модуль может обнулить TMR1. Замеряя необходимые промежутки времени можно формировать импульсы определенной формы.
Например, для управления положением сервомашинки требуется подавать на сигнальную линию импульсы высокого уровня длиной мкс с частотой 50 Hz. В зависимости от длины импульса серво установит свое положение либо в одно крайнее положение мкс , либо в другое мкс , либо приблизительно по центру мкс. Что такое ШИМ-сигнал? Микроконтроллер может выдавать только цифровой сигнал — логические 1 и 0.
В ШИМ сигнале с постоянной частотой первую часть периода на выход подается 1, а вторую часть — 0. Меняя соотношение длительности обоих частей меняется скважность сигнала. Как этим можно пользоваться? Так как частота сигнала достаточно велика, то низкоскоростным нагрузкам будет казаться, что они получают напряжение, равное проценту скважности от максимума. Таким образом из ШИМ у нас выйдет обычный аналоговый выход с диапазоном напряжения от 0 до Vdd в нашем случае — 5В.
Для высокоскоростных нагрузок к примеру, для светодиодов ШИМ сигнал будет регулировать процент времени работы. Для человеческого глаза мигание светодиода с большой частотой и переменной скважностью будет казаться постоянным горением с переменной яркостью.
Для работы с ШИМ имеется библиотека, потому нам не потребуется особых усилий по расчетам и настройке регистров. Сравнение происходит постоянно при включенном модуле , при изменении результата сравнения может генерироваться прерывание.
В зависимости от настроек, компараторы могут работать в восьми режимах: По схемам хорошо видно какие напряжения сравниваются в каждом режиме, стоит только пояснить что такое опорное напряжение Vref. Источник опорного напряжения Это еще один небольшой модуль, обычно требуется только для работы компараторов.
Единственная задача модуля — разделить напряжение питания до нужного значения. Модуль представляет из себя простой делитель на 16 резисторах. Все, что он умеет — выделить пониженное до нужного значения напряжение из питания. При питании 5В модуль может выдать напряжение от 0 до 3. При использовании ассемблера нам пришлось бы много прочитать про порядок записи и чтения в память, нам же понадобится лишь подключить одну бибилотеку для работы с eeprom. Записать dword по смещению в данном случае не удастся.
Данный модуль предназначен для связи микроконтроллера с другими устройствами. Для организации канала связи достаточно лишь соединить Rx каждого устройства с Tx другого.
При желании настроить режим работы модуля самостоятельно можно подробно изучить документацию на микроконтроллер, но нам снова понадобится лишь одна библиотека. Единственное, что нам требуется указать — скорость передачи данных. Максимальная скорость зависит от тактового сигнала МК.
При 4 MHz рекомендуемая скорость — Впрочем, никто не мешает собрать их самостоятельно по схемам: Внешний кварц Как было видно, внешний кварц необходим не всегда.
Но бывают и такие случаи, когда требуется использовать внешний тактовый сигнал. Подключать внешний кварц нужно к ногам OSC1 и OSC2 pin16 и pin 15 : Для распространенных кварцев резистор не нужен, ёмкость конденсаторов выбирается в зависимости от частоты кварца. Так же в зависимости от частоты выбирается режим, выставляемый в конфигурационном бите OSC : Вместо кварца можно так же использовать керамический резонатор, он уже содержит в себе конденсаторы — для подключения резонатора достаточно подсоединить третий контакт к земле.
Итоги Вот мы и расмотрели основные возможности каждого модуля в микроконтроллере 16fa. Конечно, в такой короткой статье невозможно описать все тонкости при работе с каждым модулем, при необходимости подробная информация о каждом модуле доступна в документации на каждый микроконтроллер.
С текущим набором перифирии можно выполнить довольно много разнообразных устройств, но иногда бывает проще перейти на более укомплектованный микроконтроллер. Благодаря универсальным библиотекам, начать работать с любым другим поддерживаемым МК не составит особого труда.
Источник бесперебойного питания на источнике бесперебойной подачи информации Читайте на Хабре. Читают сейчас. Простите, пользователи macOS, но Apple зашла слишком далеко 34k Поделиться публикацией. Похожие публикации. Еще есть MikroE, простой, с кучей переферийных библиотек, но платный.
А в чем существенные различия? Какая разница, где учиться выставлять конфигурационные биты? Какая разница на каком языке писать одни и теже команды?
От выбора компилятора возможности микроконтроллера не зависят.
Программирование микроконтроллеров семейства PIC начинающим
Таймеры обеспечивают отсчёт времени с момента запуска, а также ещё несколько полезных вещей, с которыми мы позже познакомимся. Но самое главное их свойство — это то, что данный отсчёт происходит независимо от работы основного кода программы. Тем самым обеспечивается стабильная работа программы и экономия ресурсов контроллера. То есть в тот момент, когда идёт отсчёт, программа не останавливается, как при использовании обычных задержек. Когда используется задержка, мы висим это время в ожидании и никакой код не выполняется.
В этой статье мы продолжим усовершеноствовать нашу программу попутно разбирая такие понятия как таймеры и прерывания.
Таймеры. Организация временной задержки
В микроконтроллерах есть полезная вещь — таймер. Таймер можно использовать как счётчик или с его помощью формировать импульсы заданной длины ШИМ. С использованием таймера можно, например, построить часы или генератор. Каждый из них больше подходит для определённого типа работы. Рассмотрим эти таймеры подробнее:. Этот таймер можно использовать для генерации импульсов заданной длины или для подсчёта входящих импульсов. Управление таймером осуществляется регистром T1CON. Этот таймер имеет другой принцип работы. Таймер считает импульсы от нуля до заданного PR2.
Бытовой таймер на PIC-микроконтроллере
Пожалуйста, подождите Какими микроконтроллерами вы чаще всего пользуетесь PIC Архитектура и программирование. Часть 6. Программирование таймеров.
Первые микроконтроллеры появились в х годах.
PIC Урок 8. TIMER1
Сложилось определённое мнение, что динамическое управление памятью, рассмотренное в предыдущих статьях, является сложной темой. На самом деле это не так, и по настоящему сложной и неисчерпаемой темой в любой операционной системе! Ещё одной особенностью подсистемы времени, которой мы ещё неоднократно воспользуемся, является то, что нюансы поведения службы времени, как ни одной другой службы, можно с одинаковым успехом анализировать как в пространстве ядра, так и в пользовательском пространстве. В обоих случаях эти нюансы проявляются одинаково, а мелкие различия позволяют лучше понять наблюдаемые явления. Поэтому многие вопросы, относящиеся ко времени, проще изучить с помощью кода пользовательского адресного пространства, а не ядра, чем мы и займёмся в этой и последующих статьях. Во всех функциях времени, основным принципом остаётся положение, сформулированное расширением реального времени POSIX b: временные интервалы никогда не могут быть короче , чем затребованные, но могут быть сколь угодно больше затребованных например, выдерживающий паузу поток может быть вытеснен более приоритетным на неограниченно длительное время.
Универсальный таймер реального времени двухканальный ОВЕН УТ1-PiC
Методическое указание к лабораторной работе на учебном стенде LESO1. Таймеры предназначены для формирования временных интервалов, позволяя микропроцессорной системе работать в режиме реального времени. Таймеры представляют собой цифровые счётчики , которые подсчитывают импульсы либо от высокостабильного генератора частоты, либо от внешнего источника сигнала, в этом случае таймер называют счетчиком внешних событий. К системной шине микропроцессора таймеры подключаются при помощи параллельных портов. Как правило, в микропроцессорной системе в качестве генератора частоты выступает генератор внутренней синхронизации микроконтроллера. Частота генератора задает минимальный временной промежуток, который может определять таймер. Интервалы времени, задаваемые с помощью таймера, могут иметь строго определенные дискретные значения. Разрядность цифрового счётчика таймера определяет максимальный интервал времени, который может задать таймер.
Таймер УТ1-PiC предназначен для автоматического включения и ТЕКУЩЕГО ВРЕМЕНИ И ДАТЫ ПРОГРАММИРОВАНИЕ кнопками на лицевой панели.
Последний раз мы его применяли для перебора разрядов четырёхразрядного светодиодного индикатора для обеспечения режима динамической индикации. Но так как мы со времён изучения таймера 0 перешли на более сложный и более функциональный контроллер PIC, то мы, читая на него техническую документацию не могли не заметить, что в нём уже таймер не один, а целых три. Причём другие таймеры более функциональны по отношению к таймеру 0. Данный таймер также считает только вперёд, причём он самостоятельно без помощи триггеров от других модулей не сбрасывается при сравнении его счётчика с определённой величиной, а сбрасывается только после окончания счёта, но зато есть у него немало преимуществ.
Микропроцессорный счетчик импульсов СИ 8. Используется для подсчета количества продукции на транспортере, длины наматываемого кабеля или экструзионной пленки, сортировки продукции, отсчета партий продукции, суммарного количества изделий и т. Встроенный в СИ8 таймер позволяет использовать прибор в качестве счетчика наработки, расходомера или для определения скорости вращения вала. Цифровой счетчик импульсов выпускается в корпусах 3-х типов: настенном Н и щитовых Щ1, Щ2. Функциональные возможности: прямой, обратный или реверсивный счет импульсов, поступающих от подключенных к прибору датчиков определение направления и скорости вращательного движения узлов и механизмов подсчет текущего или суммарного расхода реальные единицы измерения продукции подсчет времени наработки оборудования измерение длительности процессов три внешних входных устройства для организации счета управление нагрузкой с помощью двух выходных устройств сохранение результатов счета при отключении питания встроенный модуль интерфейса RS по желанию заказчика. Таймер УТ1-PiC предназначен для автоматического включения и выключения исполнительных механизмов в заданный момент времени.
Войдите , пожалуйста.
Эта статья я думаю, будет немного поинтереснее. АЦП этот будет ти разрыдным, что очень неплохо ибо позволяет получать хорошую точность преобразования. Начнем, пожалуй со схемы, чтоб был более понятным код. Не превышайте этот порог — можно МК сжечь. Еще одним схемным изменением стало появление еще двух светодиодов — нам же надо как-то показать результат работы АЦП. Для упрощения этого примера, я решил не использовать еще один источник напряжения для входа АЦП, а запитал его через переменый резистор от общей шины питания схемы.
Возможность чтения и записи текущего значения счетчика;. Внутренний или внешний источник тактового сигнала;. Прерывания при переполнении переход от FFh к 00h. Приращение счетчика TMR0 происходит в каждом машинном цикле если предделитель отключен.
PIC16F628A Программируемый цифровой таймер — Electronics-Lab.
comПрограммируемые реле находят применение во многих приложениях автоматизации, таких как автоматическое управление уличным освещением, управление поливом и насосами, HVAC, домашняя автоматизация, автоматизация электростанций в промышленности и т. д. В этой статье описывается, как создать полнофункциональное одноканальное программируемое реле. коммутатор с помощью микроконтроллера PIC16F628A. Он позволяет установить время включения и выключения. Максимальный временной интервал, который вы можете установить для операций включения и выключения, составляет 99 часов 59 минут. Еще одна интересная особенность этого проекта заключается в том, что он предлагает циклическую опцию, что означает, что вы можете запускать его в непрерывном цикле циклов включения и выключения. Устройство можно запрограммировать с помощью 4 нажимных переключателей. Меню программирования и состояние устройства отображаются на ЖК-дисплее 16×2 символа. Временное разрешение этого релейного таймера составляет 1 минуту. Таймер также сохраняет введенные пользователем данные во внутреннюю память EEPROM, чтобы он мог сохранить эти значения после любого прерывания подачи питания. Вот краткое описание функций этого таймера:
- Таймер с питанием от микроконтроллера
- Настройка времени ВЫКЛ и ВКЛ для работы реле
- Опция для циклического запуска
- Диапазон времени ВКЛ/ВЫКЛ: от 0 до 99 часов 59 минут
- 1-минутное временное разрешение
- Интерактивный пользовательский интерфейс с 4 тактовыми переключателями и символьным ЖК-дисплеем
- Зуммер
- Встроенный регулятор напряжения +5 В
Принципиальная схема
Аппаратная часть этого проекта очень проста. Вся схема питается от регулируемого источника питания 5 В, полученного с использованием популярного чипа линейного стабилизатора LM7805 (рис. 1). Чтобы свести к минимуму тепловыделение в регуляторе напряжения, рекомендуемое входное постоянное напряжение для LM7805 составляет 9 В. V, который можно легко получить от настенного адаптера постоянного тока. Диод D1 (1N4001) служит для защиты от обратной полярности в схеме. S1 — ползунковый переключатель для включения и выключения питания.
На рис. 2 показаны настройки ввода и вывода. В этом проекте пять тактильных переключателей: один для сброса микроконтроллера и четыре для пользовательских входов. Четыре входных переключателя называются Menu/+, Select, Enter и Start/Stop. Их функции будут описаны в разделе программного обеспечения. Состояние 4 входных переключателей считывается микроконтроллером PIC16F628A через порты RA2, RA3, RA4 и RB0. Выходной ЖК-дисплей представляет собой стандартный дисплей на основе HD44780 и работает в 4-битном режиме. Назначение контактов для данных ЖК-дисплея и управляющих сигналов показано на рисунке 2. S2 — еще один ползунковый переключатель, позволяющий вручную управлять подсветкой ЖК-дисплея.
Переключатель выходного реле управляется транзистором NPN (2N2222). Проект также включает в себя зуммер постоянного тока, который издает звуковой сигнал, когда релейный переключатель меняет свое состояние. Цепи реле и зуммера показаны на рисунке 3.
Микроконтроллер PIC16F628A работает на частоте 4,0 МГц с использованием внешнего резонатора. Контакты ввода/вывода PIC16F628A, подключение резонатора и разъем внутрисхемного последовательного программатора (ICSP) показаны на рисунке 4.
Рисунок 1. Регулируемый блок питания +5 В
Рис. 2. Схема ввода/вывода с назначением контактов PIC16F628A
Рис. 3. Схема управления реле и зуммером
Рис. 4. Резонатор PIC16F628A и соединения разъема ICSP
Назначение контактов PIC16F628A для ЖК-дисплея, переключателей, реле и зуммера перечислены в следующей таблице.
На следующем рисунке показана полная схема реле времени, припаянная к макетной плате общего назначения.
Программное обеспечение
Программируемый релейный таймер получает сигналы от 4 кнопок. Их функции описаны следующим образом:
Меню/+ : Эта кнопка позволяет перемещаться между различными опциями меню, такими как настройка времени включения, настройка времени выключения и настройка циклических параметров. Эти параметры отображаются на ЖК-дисплее. Эта кнопка также служит для увеличения цифры во время установки времени. Время задается в формате ЧЧ:ММ, что дает минимальное значение временного интервала равное 1 минуте.
Выберите : Это позволяет вам выбрать отображаемый пункт меню, а также отдельные цифры часов и минут. Выбранная цифра увеличивается на 1 при нажатии кнопки Меню/+.
Введите: Когда установлены соответствующие часы и минуты, нажатие кнопки «Ввод» завершает установку времени. Циклическая опция также вводится с помощью этой кнопки.
Старт/Стоп: Эта кнопка запускает и останавливает таймер. Если таймер уже включен, вы можете остановить его в любой момент во время его работы, нажав эту кнопку.
Теперь посмотрим, как это работает. Допустим, релейный выключатель нужно включить через 15 минут на 10 минут. Это означает, что время выключения составляет 15 минут, а время включения — 10 минут. После запуска таймера после ввода вышеуказанного времени устройство включится через 15 минут и останется включенным в течение 20 минут. После этого он снова будет выключен. Если для параметра Cyclic выбрано значение 1, таймер будет работать в цикле, и после следующих 15 минут выключения реле будет включено на следующие 10 минут и так далее.
Прошивка для этого проекта разработана с использованием компилятора mikroC Pro для PIC от микроЭлектроники. Хронометраж достигается с помощью модуля Timer 0, встроенного в PIC16F628A. Прерывание Timer0 включено и работает со значением предварительного делителя 1:256, чтобы создать точную продолжительность 500 мс (полсекунды). Символ двоеточия между цифрами HH и MM мигает с частотой 1 Гц. Полсекундная задержка повторяется 120 раз, чтобы создать минутную продолжительность. Вы можете загрузить полные файлы проекта, включая исходный код и скомпилированный HEX-файл, в прикрепленном файле.
Фотографии
На следующем видео показан таймер в действии.
Ключевые слова:
- Функцией зуммера является оповещение пользователя звуковым сигналом при каждом включении и выключении реле.
- В случае сбоя питания таймер извлечет выбранное пользователем время включения и выключения из EEPROM. Но таймер будет остановлен и не запустится, пока пользователь не нажмет Старт
- Все принципиальные схемы, использованные в этом проекте, являются оригинальными и нарисованы автором в редакторе схем EasyEDA. EasyEDA — это бесплатный онлайн-инструмент САПР для компоновки схем, проектирования печатных плат и моделирования.
Автор: Радж Бхатт (энтузиаст электроники, производитель оборудования и основатель Embedded Lab; посетите мой магазин Tindie)
- Embedded Lab (http://www.embedded-lab.com)
- Посетите мой магазин Tindie (https://www.tindie.com/stores/rajbex/)
- Ключевые доклады: EasyEDA (http://www.easyeda.com)
таймер 0 и PIC16F628A
Джона Уайлдера
Встроенный таймер на PIC некоторых сбивает с толку. Но не волнуйтесь… это, вероятно, одно из самых простых встроенных периферийных устройств для использования с PIC. В этой статье мы будем использовать PIC16F628A в качестве примера того, почему это так.
Таймер 0 (TMR0) — это один из трех таймеров, доступных на 16F628A, который работает постоянно — отключить его невозможно. По сути, это 8-битный регистр в SFR, и источник тактового сигнала управляет его значением. Источником тактового сигнала для TMR0 может быть либо внешний стробирующий сигнал, подаваемый на контакт RA4/T0CKI (T0CKI = тактовый вход таймера 0), либо внутренний тактовый сигнал командного цикла. При работе с внешним стробоскопом это может быть счетчик, который «подсчитывает» строб-импульсы внешнего источника стробоскопа. При работе с часами командного цикла он работает как таймер. По этой причине иногда можно услышать, как инженеры называют TMR0 «таймером/счетчиком».
Значение, находящееся в регистре TMR0, начинается с 0x00, а затем увеличивается на единицу при каждом переходе источника тактового сигнала с низкого уровня на высокий. Вы также можете настроить его для увеличения при переходе от высокого к низкому или от низкого к высокому с помощью внешнего источника синхронизации. По сути, это просто регистр, который подсчитывает импульсы от одного из двух возможных источников тактовых импульсов до 0xFF (десятичное число 255). В этом примере мы будем использовать часы инструкций, работающие как таймер.
Тактовый генератор инструкций работает на частоте 1/4 частоты Fosc. Это означает, что если Fosc = 4 МГц, наши часы инструкций работают на частоте 1 МГц, или одна инструкция в микросекунду. В этом сценарии — при условии, что мы не назначаем предварительный делитель TM — значение TMR0 увеличивается на каждый импульс тактового сигнала инструкции. При тактовой частоте инструкции 1 МГц это увеличивает значение в регистре TMR0 один раз в микросекунду (1/μ).
Поскольку размер регистра TMR0 составляет всего 8 бит, максимальное значение, до которого может быть увеличено значение TMR0, равно 0xFF или десятичному числу 255. В этот момент оно будет сброшено до нуля при следующем тактовом импульсе. Как только это происходит, в регистре INTCON устанавливается флаг прерывания Таймера 0 (T0IF). Этот флаг должен быть сброшен в программном обеспечении.
Поскольку TMR0 в настоящее время работает с одним приращением на мк, это означает, что обновление происходит, и флаг T0IF устанавливается один раз каждые 256 мк (0x00–0xFF или 0–255 для 256 приращений). Если мы хотим знать, когда прошел период 256 мк, мы можем очистить TMR0, очистить флаг T0IF, затем опросить флаг прерывания T0IF, пока T0IF не станет высоким (произошло опрокидывание), и продолжить нашу программу.
Конечно, таймер был бы бесполезен без какого-либо способа замедлить его до различных скоростей приращения. Это работа «прескейлера». Предварительный делитель позволяет нам предварительно масштабировать таймер таким образом, чтобы вместо того, чтобы увеличивать его при каждом тактовом импульсе, мы могли увеличивать его каждые два тактовых импульса, каждые четыре, каждые восемь и т. д. вплоть до каждых 256 тактовых импульсов. Если бы мы установили предварительный делитель на 1:256 с тактовой частотой команд 1 МГц, таймер увеличивался бы один раз каждые 256 микрон. Поскольку наш регистр TMR0 может считать до 256, он будет подсчитывать, сколько раз период 256 мк проходит до 256 раз. Это означает, что T0IF будет устанавливаться каждые 65,5 мс (миллисекунды… 256 мкс x 256 = 65,5 мс).
Четыре регистра TMR0
С TMR0 связаны четыре регистра: TMR0, OPTION_REG, INTCON и TRISA. Давайте рассмотрим это подробно.
TMRo
Регистр TMR0 содержит значение, которое увеличивается источником синхронизации. Любая запись в этот регистр (например, clrf TMR0, movwf TMR0, bsf TMR0, X) также очистит предварительный делитель обратно до предварительного масштабирования 1:2. Это означает, что вам придется сбрасывать предварительный делитель обратно в исходное положение каждый раз, когда вы записываете в регистр TMR0, если вы установили его где-либо, кроме 1:2.
OPTION_REG
____
| РБПУ |ИНТЕДГ| Т0КС | Т0СЭ | СРП | PS2 | ПС1 | ПС0 |
Регистр OPTION содержит управляющие биты для следующего:
- Источник синхронизации таймера 0 (T0CS)
- Бит выбора фронта источника таймера 0 (TOSE)
- Бит назначения предварительного делителя (PSA)
- Биты выбора скорости предварительного делителя (PS2-PS0)
T0CS — выбирает источник синхронизации для TMR0. По умолчанию 1/T0CKI. Очистка этого бита выберет тактовый сигнал инструкции в качестве источника тактового сигнала TMR0.
T0SE — выбирает, будет ли TMR0 увеличиваться по нарастающему или по заднему фронту T0CKI. По умолчанию 1/приращение по заднему фронту. Применяется только тогда, когда T0CKI является источником синхронизации.
PSA — устанавливает, назначен ли прескалер TMR0 или сторожевому таймеру. По умолчанию 1/пределитель назначен WDT. При назначении WDT TMR0 работает с предмасштабированием 1:1 (увеличивается при каждом импульсе источника тактового сигнала).
PS2-PS0 – Устанавливает скорость предварительного делителя в диапазоне от 1:2 до 1:256 в значениях, кратных битам. По умолчанию 111/1:256 (1:128, если назначен WDT).
Настройка TMR0 с тактовой частотой инструкций в качестве источника тактовой частоты и предварительным делителем 1:4 Бит флага прерывания TMR0 (T0IF). Если прерывание TMR0 разрешено (T0IE = 1…отключено по умолчанию), программный счетчик перейдет к коду обработчика прерывания при переполнении TMR0, когда будет установлен T0IF (T0IF должен быть сброшен в программном обеспечении перед выходом из прерывания). Однако, поскольку T0IF продолжает нормально работать независимо от того, включено или отключено прерывание TMR0, оно всегда доступно для опроса, если вы не хотите, чтобы TMR0 вызывал прерывание.
Настройка прерывания TMR0
Если вы используете несколько прерываний, вам придется опросить все ваши флаги прерывания, чтобы определить, какое прерывание вызвало условие прерывания, а затем перейти к соответствующему коду.
TRISA
Регистр TRISA содержит бит направления порта для RA4/T0CKI. Чтобы настроить RA4 в качестве входа источника тактового сигнала TMR0, необходимо установить бит 4 TRISA, чтобы настроить его в качестве входа.
Полная настройка TMR0 с прерыванием, тактовым сигналом инструкций в качестве источника тактового сигнала и предварительным делителем 1:4
опросите флаг прерывания TMR0, чтобы узнать, когда произойдет переполнение:
Использование TMR0 в качестве счетчика
Вы также можете настроить TMR0 в качестве счетчика импульсов. Для этого вы настраиваете T0CKI в качестве источника тактового сигнала, устанавливая бит T0CS в OPTION_REG. Бит T0SE в OPTION_REG определяет, увеличивается ли значение регистра TMR0 по заднему фронту источника импульсов (1) или по нарастающему фронту источника импульсов (0).
Вы можете реализовать один из двух других аппаратных таймеров для установки интервала выборки или сделать это в программном обеспечении с циклами задержки. Настройте код так, чтобы он вызывал цикл задержки, после чего производится выборка TMR0, чтобы увидеть, сколько импульсов было подсчитано в течение установленного интервала задержки.
И это все, что нужно знать о TMR0. Простой не так ли?
Об авторе
Джон Уайлдер — внештатный инженер-электронщик и энтузиаст электроники с более чем 20-летним стажем. Он провел четыре года в ВМС США в качестве техника по авиационной электронике. Джон также играет на гитаре с 13 лет и начал интегрировать электронику и музыку с 15 лет. Джон построил свой первый ламповый усилитель в 17 лет. «Музыкальная электроника», — говорит Джон, — его любовь и страсть.
Джон также является частым участником и страстным членом Electro-Tech-Online, сообщества участников электротехники. В Electro-Tech-Online вы можете задавать вопросы и получать ответы от своих коллег-инженеров по всем вопросам: от микроконтроллеров, возобновляемых источников энергии и автомобильной электроники до моделирования и проектирования схем. Кроме того, существуют специализированные форумы MCU для 8051/8951, AVR, ARM, Arduino, Oshonsoft Project, а также репозиторий кода, где участники делятся фрагментами кода.
Следите за новостями Джона в Twitter на @PICmcuguy.
Многопрограммный таймер на микроконтроллере pic16f628a. Простой таймер на PIC16F628A. Схема и описание. Схема таймера
Это очередная хламовая поделка — таймер для кухни, хотя и не обязательно для кухни. Были использованы детали которые завалялись, в частности старые индикаторы АЛСки, резисторы выпаянные из старых плат и т. д. Основа устройства микроконтроллер PIC16F628A , один из самых распространенных и дешевых. Таймер управляется ручкой и одной кнопкой. Диапазон задержки времени от 1 до 99 минут. По окончании такта прерывистый звуковой сигнал… А в архиве две прошивки, первая просто таймер, а вторая с какими-то наворотами, об этом ниже.
Также есть вариант для индикаторов с общим анодом. Обратите внимание, что прошивки для каждой из схем разные. Все отличия выделены красным цветом на схеме.
После включения питания индикаторы показывают заданное время, светодиод не горит. Поворачивая энкодер, настройку времени можно изменить от 1 до 99 минут. Когда время установлено, нажимаем на кнопку — раздается короткий звуковой сигнал и таймер начинает обратный отсчет, светодиод моргает, а время на индикаторе уменьшается каждую минуту. Когда время достигает нуля, таймер издает прерывистые звуковые сигналы, светодиод горит постоянно. Теперь по нажатию кнопки звуковой сигнал снимается и прибор возвращается в исходное состояние — режим установки времени. Так работает первая версия прошивки.
Вторая версия прошивки работает так же, как и первая, но имеет несколько дополнений. В режиме установки времени, если ручка не прикасается в течение нескольких секунд, на дисплее запускается анимация. нажатие кнопки или вращение энкодера выключит анимацию и снова отобразит режим установки времени. Во время обратного отсчета, если осталась одна минута, на дисплее будут отображаться секунды от 60 до 00. При срабатывании звукового сигнала он будет звучать не бесконечно, а около 20 секунд. Затем на дисплее начинает отображаться анимационная заставка (отличная от той, что в режиме установки). А также, каждую минуту будет напоминать вам коротким звуковым сигналом. По нажатию кнопки, как и в первой прошивке, таймер сбрасывается в режим установки времени. Когда до истечения таймера остается 3 секунды, таймер каждую секунду издает короткий звуковой сигнал, т.е. 3…2…1 и далее работает как обычно. Обе прошивки доступны и находятся в архиве вместе с фото печатной платы.
Звуковой сигнал реализован с помощью аппаратного ШИМ, встроенного в микроконтроллер. Динамическая головка должна иметь сопротивление около 50 Ом. Также можно использовать низкоомные динамические головки (4 или 8 Ом), но в этом случае лучше установить малогабаритный выходной трансформатор, т.к. через головку 4 Ом будет протекать большой ток, который может перегрузить блок питания и вызвать сброс микроконтроллера.
Печатная плата, вариант Алексея Антонова
Комментарии (1)
1 2
0 #21 kaktuss 14.06.2015 16:08
Цитирую АнтонЧип:
Можно посмотреть скриншот установки конфигурационных бит при программировании
Спросил у автора какая конфигурация для прошивки, он ответил что все уже есть в прошивке. Поэтому ничего не устанавливал, просто залил прошивку.
Выложил бы скрины, но не знаю как. Могу я отправить вам электронное письмо?
Это еще одна хламовая поделка — таймер для кухни, хотя и не обязательно для кухни. Были использованы детали, которые завалялись, в частности, старые индикаторы АЛСки, резисторы, выпаянные из старых плат и т.д. Основой устройства является микроконтроллер PIC16F628A, один из самых распространенных и дешевых. Таймер управляется ручкой и одной кнопкой. Диапазон задержки времени от 1 до 99 минут. В конце временного цикла издается прерывистый звуковой сигнал. А в архиве две прошивки, первая просто таймер, а вторая с некоторыми наворотами, об этом ниже.
Также есть вариант для индикаторов с общим анодом. Обратите внимание, что прошивки для каждой из схем разные. Все отличия выделены красным цветом на схеме.
После включения питания индикаторы показывают заданное время, светодиод не горит. Поворачивая энкодер, настройку времени можно изменить от 1 до 99 минут. Когда время установлено, нажимаем на кнопку — раздается короткий звуковой сигнал и таймер начинает обратный отсчет, светодиод моргает, а время на индикаторе уменьшается каждую минуту. Когда время достигает нуля, таймер издает прерывистые звуковые сигналы, светодиод горит постоянно. Теперь по нажатию кнопки звуковой сигнал снимается и прибор возвращается в исходное состояние — режим установки времени. Так работает первая версия прошивки.
Вторая версия прошивки работает так же, как и первая, но имеет несколько дополнений. В режиме установки времени, если ручка не прикасается в течение нескольких секунд, на дисплее запускается анимация. нажатие кнопки или вращение энкодера выключит анимацию и снова отобразит режим установки времени. Во время обратного отсчета, если осталась одна минута, на дисплее будут отображаться секунды от 60 до 00. При срабатывании звукового сигнала он будет звучать не бесконечно, а около 20 секунд. Затем на дисплее начинает отображаться анимационная заставка (отличная от той, что в режиме установки). А также каждую минуту он будет напоминать вам коротким звуковым сигналом. По нажатию кнопки, как и в первой прошивке, таймер будет сброшен в режим установки времени. Когда до истечения таймера остается 3 секунды, таймер каждую секунду издает короткий звуковой сигнал, т. е. 3…2…1 и далее работает как обычно. Обе прошивки доступны и находятся в архиве вместе с чертежом печатной платы.
Звуковой сигнал реализуется с помощью аппаратного ШИМ, встроенного в микроконтроллер. Динамическая головка должна иметь сопротивление около 50 Ом. Также можно использовать низкоомные динамические головки (4 или 8 Ом), но в этом случае лучше установить малогабаритный выходной трансформатор, т.к. через головку 4 Ом будет протекать большой ток, который может перегрузить блок питания и вызвать сброс микроконтроллера.
Скачать дополнения |
Полтора года назад на сайте о котором я рассказывал. Пришли комментарии с просьбой заменить индикаторы с общим катодом на индикаторы с общим анодом. Идя на встречу с пожеланием, я переписал программу-таймер. Но не существенные изменения коснулись и электрических схем приборов.
Для упрощения программы было решено изменить схему подключения светодиода индикации запуска таймера. Выход на светодиод перенесли с вывода 13 DD1, это седьмой бит порта B, на пятнадцатый вывод, шестой бит порта A. В остальном схема осталась прежней. Кстати, составной трехамперный транзистор КТ9 использовать думаю нецелесообразно73А в таком исполнении, и он не всегда оказывается под рукой в нужный момент. Для импульсного усилителя звуковой частоты может подойти и маломощный транзистор КТ361Г.
Мощность коллектора 150 милливатт. Смотрим на стол. Но его можно значительно увеличить, если транзистор дополнить теплоотводом, который можно сделать из медной полоски. Ширина полоски равна ширине корпуса транзистора, длина произвольная. Полоска согнута в соответствии с фото.
Зажим делается из более тонкой полосы, но можно сделать и из той же полосы, что и сам радиатор. Теплоотвод надет на корпус транзистора через теплопроводящую пасту. Качественно сделанный радиатор «сидит» на корпусе транзистора достаточно прочно и мощность коллектора транзистора может достигать 500…700 милливатт.
А громкости звука при такой мощности транзистора вполне достаточно даже для больших помещений. Причем транзистор в этой схеме работает в импульсном режиме, и КПД очень высокий. Если сделать отверстие в одной из отогнутых сторон полоски, то такой теплоотвод можно будет прикрепить к плате с помощью винта диаметром 2…3 мм. Все обо всем занимает у меня пять минут. Картинку печатной платы можно скачать из предыдущей статьи «
Это простая схема таймера на базе микроконтроллера PIC16F628A и индикатора LCD 1602. Идея таймера позаимствована с португальского сайта электроники.
Микроконтроллер PIC16F628A в этой схеме тактируется внутренним генератором, что достаточно точно для данного случая, но так как выводы 15 и 16 остаются незанятыми, для большей точности можно было бы использовать внешний кварцевый резонатор.
Как уже было сказано ранее, этот проект создан на основе уже существующего проекта, но по сути обе схемы отличаются друг от друга, и поэтому код был практически полностью переписан. Таймер имеет три кнопки для управления: «СТАРТ/СТОП», «МИН» и «СЕК»
- «СТАРТ/СТОП» — для запуска и приостановки таймера.
- «MIN» — установить минуты. Количество минут устанавливается от 0 до 99, а потом все начинается сначала с 0.
- «SEC» — для установки секунд. Второй тоже устанавливается от 0 до 59 и потом снова от 0.
Одновременное нажатие кнопок «MIN» и «SEC» приведет к сбросу таймера во время работы.
Когда таймер достигает 00:00, раздается звуковой сигнал (3 коротких и 1 длинный) и загорается светодиод HL1. В качестве излучателя звука используется электромагнитный зуммер. После этого при нажатии одной из кнопок таймер сбрасывается и светодиод HL1 гаснет.
При обратном отсчете таймера на выводе 13 (RB7) высокий уровень, а когда таймер остановлен, появляется низкий логический уровень. Этот вывод можно использовать для управления внешними исполнительными устройствами. питание таймера осуществляется от стабилизированного источника.
Перемычка J1 используется для калибровки таймера. Когда он закрыт, таймер входит в режим настройки. С помощью кнопок «MIN» и «SEC» можно увеличивать/уменьшать значение внутреннего параметра, позволяющего замедлять или ускорять таймер. Это значение хранится в EEPROM. Нажатие кнопки СТАРТ/СТОП в этом режиме вернет этот параметр к значению по умолчанию.
Код написан и скомпилирован с помощью mikroC PRO для PIC.
Параметры проекта:
- Генератор: INTOSC
- Частота генератора: 4 МГц
- Сторожевой таймер: отключен
- Таймер включения: включен
- RA5/MCLR/VPP: отключено
- Снижение напряжения: включено
Фото готового таймера.
Это еще одна хламовая поделка — таймер для кухни, хотя и не обязательно для кухни. Были использованы детали, которые завалялись, в частности, старые индикаторы АЛСки, резисторы, выпаянные из старых плат и т.д. Основа устройства — микроконтроллер PIC16F628A , один из самых распространенных и дешевых. Таймер управляется ручкой и одной кнопкой. Диапазон задержки времени от 1 до 99 минут. В конце временного цикла издается прерывистый звуковой сигнал. А в архиве две прошивки, первая просто таймер, а вторая с некоторыми наворотами, об этом ниже.
Также есть вариант для индикаторов с общим анодом. Обратите внимание, что прошивки для каждой из схем разные. Все отличия выделены красным цветом на схеме.
После включения питания индикаторы показывают заданное время, светодиод не горит. Поворачивая энкодер, настройку времени можно изменить от 1 до 99 минут. Когда время установлено, нажимаем на кнопку — раздается короткий звуковой сигнал и таймер начинает обратный отсчет, светодиод моргает, а время на индикаторе уменьшается каждую минуту. Когда время достигает нуля, таймер издает прерывистые звуковые сигналы, светодиод горит постоянно. Теперь по нажатию кнопки звуковой сигнал снимается и прибор возвращается в исходное состояние — режим установки времени. Так работает первая версия прошивки.
Вторая версия прошивки работает так же, как и первая, но имеет несколько дополнений. В режиме установки времени, если ручка не прикасается в течение нескольких секунд, на дисплее запускается анимация. нажатие кнопки или вращение ручки выключит анимацию и снова отобразит режим установки времени. Во время обратного отсчета, если осталась одна минута, на дисплее будут отображаться секунды от 60 до 00. При срабатывании звукового сигнала он будет звучать не бесконечно, а около 20 секунд. Затем на дисплее начинает отображаться анимационная заставка (отличная от той, что в режиме установки). А также каждую минуту он будет напоминать вам коротким звуковым сигналом. По нажатию кнопки, как и в первой прошивке, таймер сбрасывается в режим установки времени. Когда до истечения таймера остается 3 секунды, таймер каждую секунду издает короткий звуковой сигнал, т.е. 3…2…1 и далее работает в обычном режиме. Обе прошивки доступны и находятся в архиве вместе с чертежом печатной платы.
Звуковой сигнал реализован с помощью аппаратного ШИМ, встроенного в микроконтроллер.