Освещенные подарки: 5 шагов (с изображениями)
Освещенные подарки: 5 шагов (с изображениями)
Anonim
Освещенные Подарки
Освещенные Подарки

Дома у нас есть два светящихся подарка, которые используются в период Рождества. Это простые подарки с подсветкой с помощью двухцветного красно-зеленого светодиода, который случайным образом меняет цвет, который затемняется и исчезает. Питание устройства осуществляется от кнопочного элемента на 3 В. Последнее было причиной этого проекта, так как батарея разряжается очень быстро, когда подарки включены в течение длительного времени.

Что касается предотвращения использования огромного количества батареек типа «таблетка», я разработал свою собственную версию с использованием трех перезаряжаемых батареек AAA. В этой версии используется светодиод RGB, поэтому возможен также синий цвет, но это не было частью оригинального дизайна. Моя версия имеет следующие функции:

  • Управление 2 представлено одновременно с помощью одного микроконтроллера PIC12F617. Программное обеспечение микроконтроллера было написано на языке программирования JAL.
  • Включайте и выключайте подарок с помощью кнопки. В исходной версии для этой цели использовался переключатель, но кнопка была проще в использовании.
  • Произвольно меняйте цвет подарков, постепенно увеличивая и уменьшая красный и зеленый цвета.
  • Отключите подарки, когда напряжение батареи упадет ниже 3,0 вольт. Это предотвратит чрезмерную разрядку аккумуляторных батарей.

После исчезновения одного цвета светодиод продолжает гореть от 3 до 20 секунд. Поскольку у меня все еще оставался неиспользуемый синий светодиод, я добавил функцию, при которой оба пакета станут синими, когда время включения составляет ровно 10 секунд. Это происходит не очень часто, поскольку случайное время генерируется в тактах таймера в 40 миллисекунд, как описано ниже.

Шаг 1. Немного теории о нарастании и затухании с использованием широтно-импульсной модуляции

Лучший способ изменить яркость светодиода - это не изменять ток, протекающий через светодиод, а изменить время, в течение которого светодиод включен в течение определенного интервала времени. Этот способ управления яркостью светодиода называется широтно-импульсной модуляцией (PWM), который несколько раз описывался в Интернете, например Википедия.

PIC и Arduino имеют на борту специальное оборудование PWM, которое упрощает генерацию этого сигнала PWM, но у них часто есть один выход для этого, поэтому вы можете управлять только одним светодиодом. Для этой версии мне нужно было управлять 5 светодиодами (2 красных, 2 зеленых и 1 комбинированный синий), поэтому ШИМ нужно было выполнять программно с использованием таймера, который генерирует как частоту ШИМ, так и рабочий цикл ШИМ.

PIC12F617 имеет встроенный таймер с возможностью автоматической перезагрузки. Это означает, что после того, как вы установите значение перезагрузки таймера, он будет использовать это значение каждый раз, когда истечет время ожидания, и поэтому таймер работает автономно с указанной частотой. Поскольку синхронизация имеет решающее значение для стабильного сигнала ШИМ, таймер работает на основе прерываний, на него не влияет время, необходимое основной программе для управления и определения случайного времени включения светодиодов.

Частота ШИМ должна быть достаточно высокой, чтобы не было мерцания, поэтому я выбрал частоту ШИМ 100 Гц. Для эффекта нарастания и затухания нам нужно изменить рабочий цикл и, следовательно, яркость светодиода. Я решил использовать шаг приращения 5, чтобы увеличить или уменьшить яркость, чтобы получить эффект постепенного появления и исчезновения, и поскольку таймер использует диапазон от 0 до 255 для рабочего цикла, таймер должен работать на 255 / 5 = 51-кратная нормальная частота или 5100 Гц. Это приводит к прерыванию таймера каждые 196 мкс.

Шаг 2: Механическая работа

Механическая работа
Механическая работа
Механическая работа
Механическая работа
Механическая работа
Механическая работа

Для изготовления подарков я использовал молочно-белый акриловый пластик, а для остальной части декора - МДФ. Чтобы вы не видели форму светодиода в упаковке, когда светодиод включен, я накрыл светодиоды крышкой, которая рассеивает свет от светодиода. Эта крышка была получена от старых электронных свечей, которые у меня были, но вы также можете создать крышку, используя тот же акриловый пластик. На фотографиях вы видите то, что я использовал в качестве оборудования и материала.

Шаг 3: Электроника

Электроника
Электроника
Электроника
Электроника
Электроника
Электроника
Электроника
Электроника

На принципиальной схеме показаны необходимые вам электронные компоненты. Как упоминалось ранее, 5 светодиодов управляются независимо, а синий светодиод совмещен. Поскольку PIC не может управлять двумя светодиодами на одном выводе порта, я добавил транзистор для управления объединенными синими светодиодами. Электроника питается от 3 аккумуляторных батарей AAA и может включаться или выключаться нажатием кнопки сброса.

Для этого проекта вам потребуются следующие электронные компоненты:

  • 1 микроконтроллер PIC 12F617 с разъемом
  • 2 керамических конденсатора: 2 * 100 нФ
  • Резисторы: 1 * 33к, 1 * 4к7, 2 * 68 Ом, 4 * 22 Ом
  • 2 светодиода RGB, высокая яркость
  • 1 транзистор BC557 или аналогичный
  • 1 кнопочный переключатель

Вы можете построить схему на макетной плате и не займет много места, как видно на картинке. Вы можете задаться вопросом, почему значения резисторов для управления максимальным током через светодиоды такие низкие. Это связано с низким напряжением питания 3,6 В в сочетании с падением напряжения, которое имеет каждый светодиод, которое зависит от цвета каждого светодиода, также см. Wikepedia. Значения резистора приводят к максимальному току около 15 мА на светодиод, при этом максимальный ток всей системы составляет около 30 мА.

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

Программа выполняет следующие задачи:

Когда устройство перезагружается нажатием кнопки, оно включает устройство, если оно было выключено, или выключает устройство, если оно было включено. Выкл. Означает перевод PIC12F617 в спящий режим, в котором он практически не потребляет энергию.

Сгенерируйте сигнал ШИМ для управления яркостью светодиодов. Это делается с помощью таймера и процедуры обслуживания прерывания, которая управляет контактами PIC12F617, которые включают и выключают светодиоды.

Включите и выключите светодиоды и оставьте их включенными в течение произвольного времени от 3 до 20 секунд. Если случайное время равно 10 секундам, оба светодиода станут синими на 10 секунд, после чего будет использоваться обычный красно-зеленый узор нарастания и исчезновения.

Во время работы PIC будет измерять напряжение питания с помощью своего встроенного аналого-цифрового преобразователя (АЦП). Когда это напряжение упадет ниже 3,0 В, он выключит светодиоды и снова переведет PIC в спящий режим. PIC все еще может нормально работать при 3,0 В, но полностью разряжать аккумуляторные батареи нецелесообразно.

Как упоминалось ранее, сигнал ШИМ создается с помощью таймера, который использует процедуру обслуживания прерывания для поддержания стабильного сигнала ШИМ. Появление и исчезновение светодиодов, включая время их включения, контролируется основной программой. Эта основная программа использует тик таймера в 40 миллисекунд, полученный от того же таймера, который создает сигнал ШИМ.

Поскольку в этот раз я не использовал какие-либо конкретные библиотеки JAL для этого проекта, мне пришлось создать случайный генератор, используя регистр сдвига с линейной обратной связью для генерации случайного времени включения и случайного времени выключения светодиодов.

Шаг 5: окончательный результат

Image
Image
Окончательный результат
Окончательный результат

Есть 2 видео, которые показывают промежуточный результат. Моей жене все еще нужно превратить кубики в настоящие подарки. Одно видео показывает крупный план результата, а другое видео показывает его вместе с оригинальным подарком, который ведет к этому проекту.

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

Исходный файл JAL и файл Intel Hex для программирования PIC прилагаются. Если вы заинтересованы в использовании микроконтроллера PIC с JAL - языком программирования, подобным Pascal, - посетите веб-сайт JAL.

Получайте удовольствие, создавая это Руководство, и с нетерпением ждем ваших отзывов и результатов.