Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Светофор на PIC12F629

Когда сын клеил для школы из бумаги муляж светофора, пришла мысль: "А почему не собрать для него действующую модель светофора на микроконтроллере". На просторах Интернет есть много схем и программок к ним, реализующих принцип простейшего светофора. Но они или слишком сложны для игрушки (DC-DC преобразователь, сдвиговые регистры и т.д.) или представлены лишь как пример простейшей программы на ассемблере. Я хочу представить на обозрение схему и программу на ассемблере законченной конструкции игрушечного светофора с некоторыми дополнительными функциями. Причем собрана она на “копеечном “ микроконтроллере по простейшей схеме, что немаловажно для начинающих. Надеюсь, эта простая схема станет для многих, начинающих изучать программирование микроконтроллеров PIC, первой реально собранной на PIC конструкцией. Простая, но при этом содержащая основные приемы и атрибуты программирования, программа позволит легко ее понять и экспериментировать с ней.

Каждому, кто имеет дело с программированием микроконтроллеров, известны основные принципы написания обработчиков прерываний: как можно короткое время выполнения и короткий код, отсутствие циклов и вызовов из обработчика других подпрограмм и т.д. В данном же случае разрешены прерывания только по изменению уровня (пропустить другие прерывания мы никак не можем, так как их попросту нет) и я, для упрощения программы и ее восприятия, счел возможным отойти от этих принципов. Здесь в обработчике прерывания есть и циклы, и вызов другой подпрограммы, и (о ужас!) даже переход в режим SLEEP. Поэтому, в заголовке программа названа «неправильной». В данном случае, обработчик прерываний используется как обычная подпрограмма, однако, в других случаях вышеназванные принципы, разумеется, остаются в силе.

Краткие характеристики устройства:

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

Итак, перейдем к описанию и рассмотрению схемы:
 

Схема светофора на микроконтроллере



Схема собрана на недорогом микроконтроллере PIC12F629. Непосредственно для управления светодиодами используются выводы GP0-GP2, GP4,GP5 (ножки 7, б, 5, 3, 2), запрограммированные как выходы. Светодиоды по каждому направлению объединены в последовательные группы, что позволяет минимизировать потребляемый ток. Резисторы R3-R8 ограничивают токи светодиодов. В случае сильной разницы в отдаче светодиодов разных цветов, придется подбирать соответствующие резисторы. У меня, например, две группы желтого цвета соединены параллельно и подключены к одному резистору, причем того же номинала, что и остальные и светят даже чуть ярче остальных (отдача больше).

В этой схеме на светодиоды подается на 1.5 В больше чем на микроконтроллер с дополнительного элемента (в данном случае, при отключенном выходе ток не проходит на вывод микросхемы, так как для открытия переходов двух светодиодов требуется гораздо большее напряжение, чем 1.5 В (не менее 2.5 В). И даже при пробитых обоих светодиодах (что маловероятно), ток через внутренний защитный диод на плюс питания составит около 7.5 мА, что гораздо меньше допустимого. Потребление тока светодиодами намного выше, чем потребление МК, поэтому, разностью разрядки элементов (через один не течет ток потребления МК) можно пренебречь. Экспериментально установлено, что, несмотря на уменьшение тока через светодиоды при разрядке батареи, яркость их свечения остается на приемлемом уровне во всем диапазоне напряжения батареи. Схема при этом предельно упрощается, и нет стабилизатора напряжения, потребляющего дополнительный ток, что позволило отказаться от выключателя питания (ток потребления в спящем режиме – 1-3 мкА).

Кнопка управления режимами работы устройства подключена к выводу GP3 (ножка 4), который в битах конфигурации объявлен как цифровой вход. При нажатии кнопки происходит прерывание, в обработчике которого происходит следующее. При длительном нажатии (более 4 с) устройство переходит в спящий режим. При более коротких нажатиях, происходит последовательное переключение скорости работы светофора по кругу с индикацией текущей скорости согласно рисунку:


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

Заряда элементов АА в режиме sleep хватит не менее чем на год, именно поэтому, в устройстве не предусмотрен выключатель питания. Устройство переходит в спящий режим также по истечении 0.5 – 1 часа (зависит от скорости переключения цветов) работы без воздействия на кнопку. Из режима SLEEP выход происходит при любом нажатии кнопки. Питание на микроконтроллер подается по выводам 1 и 8. Для экономии выводов и упрощения конструкции, нем включен режим внутреннего генератора без внешних элементов.

Небольшие пояснения к программе, которая приведена во вложении:

Обработка нажатий кнопки производится в подпрограммах: wait_butt__- ожидание нажатия и регистрация 6сек. без нажатия, push_butt__- регистрация длительности нажатия, wait_nobutt__- ожидание не нажатой кнопки. В моменты изменения состояния светофора (желтый и моргание зеленого) значения на выходной порт считываются из таблицы в подпрограмме tact__ (младший или старший полубайты). Аналогично, индикация состояния при нажатии кнопки – из подпрограммы ind__. Для перехода в спящий режим по истечении времени работы, происходит принудительный переход в подпрограмму обработки прерываний путем программной установки флага прерывания. Изменением констант CONST_MIN, CONST_REG, CONST_SL можно изменить соответственно период моргания зеленого, начальный режим при подсоединении батареи, время работы без воздействия до перехода в режим SLEEP.

Печатная плата изготовлена из односторонне-фольгированного стеклотекстолита и имеет размеры 22х87 мм. Крайние светодиоды установлены параллельно плате в разные стороны. Средние устанавливаются один со стороны установки деталей, а другой – со стороны дорожек с продеванием выводов в отверстия платы и фиксацией их со стороны деталей каплей припоя, а со стороны дорожек припаиванием к соответствующим дорожкам.

Все резисторы мощностью 0.125 Вт. Светодиоды можно взять любые отечественные или импортные желательно одного типа с прямым падением напряжения при токе 10 мА около 2 Вольт. Кнопка – любая без фиксации. Микроконтроллер установлен на колодку.

Слово конфигурации заносится в память автоматически при загрузке прошивки (в IC-Prog установлена “птичка” только в пункте “PWRT”, остальные пункты “сброшены”, в графе “осциллятор” установлено “intOSC GP4”). Предварительно необходимо считать прошивку с чистой микросхемы и записать значение слова в конце памяти программ по адресу 03FF, которое требуется для настройки частоты внутреннего генератора конкретного экземпляра микросхемы. После загрузки в программу HEX-файла, по адресу 03FF необходимо вручную прописать это значение. В данном устройстве отклонение частоты не критично, но все же следует знать, что для данной микросхемы требуется такая процедура. В крайнем случае, если заводское значение потеряно, можно ничего не делать – в программе приняты меры для корректной работы и в этом случае.

Устройство помещается в подходящую пластмассовую коробку. Под светодиоды в коробке и крышке проделываются соответствующие отверстия. В моем варианте сам светофор и основание с кнопкой и батареей питания соединяются через отрезок пластиковой водопроводной трубы, диаметром 20 мм.

 


В этом архиве имеются: Proteus модель, печатная плата в формате LAY, программа на Ассемблере MPASM, файл прошивки HEX. 

Источник: www.cxem.net


C этой схемой также часто просматривают:

Четырёхсторонний светофор
Цветик-семецветик на PIC12F629
Прибор для поиска скрытой проводки на PIC12F629
Семиполосный спектроанализатор звука на микроконтроллере
Повышающий регулятор мощности паяльника
Двухканальный стробоскоп на лампах ИФК-120 и микроконтроллере
Электронное ожерелье на микроконтроллере и светодиодах

Главные категории

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


Микроконтроллеры


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


Программаторы


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



Реклама на KAZUS.RU


Последние поступления

Подключение энкодера к микроконтроллеру PIC

Счётчик людей в помещении, управляющий освещением

Велокомпьютер на микроконтроллере PIC16F628A

Устройство ввода-вывода на микроконтроллера

Два термометра на PIC16F628A и DS18B20

Светодиодные часы с циферблатом

Двоичные часы

Два вывода микроконтроллера PIC управляют шестью светодиодами

Цифровой программируемый таймер на микроконтроллере PIC16F628A

Устройство рисования в воздухе на ATtiny2313


Бетбум

© 2003—2024 «KAZUS.RU - Электронный портал»