
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:04

Дома у нас есть два светящихся подарка, которые используются в период Рождества. Это простые подарки с подсветкой с помощью двухцветного красно-зеленого светодиода, который случайным образом меняет цвет, который затемняется и исчезает. Питание устройства осуществляется от кнопочного элемента на 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: окончательный результат



Есть 2 видео, которые показывают промежуточный результат. Моей жене все еще нужно превратить кубики в настоящие подарки. Одно видео показывает крупный план результата, а другое видео показывает его вместе с оригинальным подарком, который ведет к этому проекту.
Как и следовало ожидать, когда вы думаете, что все готово, всплывают новые требования. Моя жена спрашивала, может ли яркость светодиодов также изменяться после того, как они погаснут. Это, конечно, возможно, поскольку я использовал только около половины программной памяти PIC12F617.
Исходный файл JAL и файл Intel Hex для программирования PIC прилагаются. Если вы заинтересованы в использовании микроконтроллера PIC с JAL - языком программирования, подобным Pascal, - посетите веб-сайт JAL.
Получайте удовольствие, создавая это Руководство, и с нетерпением ждем ваших отзывов и результатов.
Рекомендуемые:
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)

Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)

Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): 6 шагов (с изображениями)

Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): Индуктивная зарядка (также известная как беспроводная зарядка или беспроводная зарядка) - это тип беспроводной передачи энергии. Он использует электромагнитную индукцию для обеспечения электропитания портативных устройств. Самым распространенным применением является беспроводная зарядка Qi st
Как разобрать компьютер с помощью простых шагов и изображений: 13 шагов (с изображениями)

Как разобрать компьютер с помощью простых шагов и изображений: это инструкция о том, как разобрать компьютер. Большинство основных компонентов имеют модульную конструкцию и легко снимаются. Однако важно, чтобы вы были организованы по этому поводу. Это поможет уберечь вас от потери деталей, а также при повторной сборке
Дарить подарки первой жизни во второй с помощью Amazon.com: 9 шагов

Дарить подарки первой жизни во второй с помощью Amazon.com: В виртуальном мире Second Life легко завязать очень близкие дружеские отношения с кем-то, с кем, возможно, никогда не будет возможности встретиться лично. Жители Second Life отмечают праздники First Life, такие как День святого Валентина и Рождество, а также личные