Оглавление:

Несколько электронных свечей: 3 шага
Несколько электронных свечей: 3 шага

Видео: Несколько электронных свечей: 3 шага

Видео: Несколько электронных свечей: 3 шага
Видео: Многоэлектродные свечи зажигания, мой небольшой отзыв 2024, Июль
Anonim
Несколько электронных свечей
Несколько электронных свечей

Электронные свечи много раз размещались на Instructables, так почему именно эта?

Дома у меня есть эти маленькие полупрозрачные рождественские домики со светодиодной подсветкой и маленькой батареей. В некоторых домах есть светодиоды с эффектом свечи, а в других - только горящие светодиоды. Маленькие батарейки разряжаются относительно быстро, и поскольку я хотел, чтобы во всех домах был эффект свечей, я решил сделать это проектом PIC. Конечно, вы также можете превратить его в проект Arduino.

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

Шаг 1: широтно-импульсная модуляция в программном обеспечении

Широтно-импульсная модуляция описывалась несколько раз, например, в этой статье Arduino:

PIC и Arduino имеют на борту специальное оборудование PWM, которое упрощает генерацию этого сигнала PWM. Если мы хотим сделать один или несколько сигналов ШИМ программно, нам понадобятся два таймера:

  1. Один таймер, который используется для генерации частоты ШИМ
  2. Один таймер, который используется для генерации рабочего цикла ШИМ

Оба таймера генерируют сигнал и прерывают его по завершении, поэтому обработка сигнала ШИМ выполняется полностью с использованием прерывания. Для частоты ШИМ я использую таймер 0 PIC и позволяю ему переполняться. С тактовой частотой внутреннего генератора 8 МГц и предварительным масштабированием 64 формула следующая: Fosc / 4/256/64 = 2.000.000 / 256/64 = 122 Гц или 8,2 мс. Частота должна быть достаточно высокой, чтобы человеческий глаз не мог ее обнаружить. Частоты 122 Гц для этого вполне достаточно. Единственное, что делает эта процедура прерывания таймера, - это копирует рабочий цикл для нового цикла ШИМ и включает все светодиоды. Он делает это для всех 5 светодиодов независимо.

Значение таймера для обработки рабочего цикла ШИМ зависит от того, как мы создаем эффект свечи. В своем подходе я имитирую этот эффект, увеличивая рабочий цикл со значением 3, чтобы увеличить яркость светодиода, и уменьшая его со значением 25, чтобы уменьшить яркость светодиода. Таким образом вы получите эффект свечки. Поскольку я использую минимальное значение 3, количество шагов для управления полным рабочим циклом с одним байтом составляет 255/3 = 85. Это означает, что таймер рабочего цикла ШИМ должен работать с частотой, в 85 раз превышающей частоту Таймер частоты ШИМ, который составляет 85 * 122 = 10,370 Гц.

Для рабочего цикла ШИМ я использую таймер 2 ПОС. Это таймер с автоматической перезагрузкой, использующий следующую формулу: Period = (Reload + 1) * 4 * Tosc * Timer2 prescale value. При перезагрузке 191 и предварительном масштабировании 1 мы получаем период (191 + 1) * 4 * 1 / 8.000.000 * 1 = 96 мкс или 10,416 Гц. Программа прерывания рабочего цикла PWM проверяет, прошел ли рабочий цикл, и выключает светодиод, для которого рабочий цикл завершен. Если рабочий цикл не пройден, он уменьшает счетчик рабочего цикла на 3 и завершает процедуру. Он делает это для всех светодиодов независимо. В моем случае эта процедура прерывания занимает около 25 мкс, и поскольку она вызывается каждые 96 мкс, уже 26% ЦП используется для управления рабочим циклом ШИМ в программном обеспечении.

Шаг 2: оборудование и необходимые компоненты

Аппаратное обеспечение и необходимые компоненты
Аппаратное обеспечение и необходимые компоненты

На принципиальной схеме показан конечный результат. Хотя я управляю только 5 светодиодами независимо, я добавил 6-й светодиод, который работает вместе с одним из 5 других светодиодов. Поскольку PIC не может управлять двумя светодиодами на одном выводе порта, я добавил транзистор. Электроника питается от адаптера постоянного тока на 6 В / 100 мА и использует стабилизатор с низким падением напряжения, чтобы обеспечить стабильное напряжение 5 В.

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

  • 1 PIC микроконтроллер 12F615
  • 2 керамических конденсатора: 2 * 100 нФ
  • Резисторы: 1 * 33к, 6 * 120 Ом, 1 * 4к7
  • 6 оранжевых или желтых светодиодов, высокая яркость
  • 1 транзистор BC557 или аналогичный
  • 1 электролитический конденсатор 100 мкФ / 16 В
  • 1 регулятор низкого напряжения LP2950Z

Вы можете построить схему на макетной плате и не займет много места, как видно на картинке.

Шаг 3: оставшееся программное обеспечение и результат

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

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

en.wikipedia.org/wiki/Linear-feedback_shif…

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

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

Я использовал JAL в качестве языка программирования для этого проекта и приложил исходный файл.

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

Рекомендуемые: