Съдържание:

Множество електронни свещи: 3 стъпки
Множество електронни свещи: 3 стъпки

Видео: Множество електронни свещи: 3 стъпки

Видео: Множество електронни свещи: 3 стъпки
Видео: удаление неизвестного объекта 2024, Декември
Anonim
Множество електронни свещи
Множество електронни свещи

Електронните свещи са публикувани много пъти в Instructables, така че защо тази?

Вкъщи имам тези малки полупрозрачни коледни къщи, които имат LED прозорци и малка батерия. Някои къщи имат светодиоди с ефект на свещ, а някои имат светодиоди, които са само включени. Малките батерии се изпразват сравнително бързо и тъй като исках да имам ефект на свещ във всички къщи, реших да го направя PIC проект. Разбира се, можете да го превърнете и в проект на Arduino.

И така, какво прави тази електронна свещ специална? Всички PIC и Arduino имат на борда хардуер за Pulme Width Modulation (PWM), който може да се използва за създаване на ефект на свещ с помощта на LED, но в моя случай исках да имам 5 независими електронни свещи, използващи един контролер, но това не присъства, поне не че знам на разстояние. Решението, което използвах, е да направя тези пет независими ШИМ сигнала изцяло в софтуер.

Стъпка 1: Модулация на импулсната ширина в софтуера

Модулацията на ширината на импулса е описана няколко пъти, напр. в тази статия на Arduino:

PIC и Arduino имат специален PWM хардуер на борда, който улеснява генерирането на този PWM сигнал. Ако искаме да направим един или повече ШИМ сигнали в софтуер, имаме нужда от два таймера:

  1. Един таймер, който се използва за генериране на ШИМ честота
  2. Един таймер, който се използва за генериране на работния цикъл на ШИМ

И двата таймера генерират и прекъсват, когато приключат и по този начин обработката на PWM сигнала се извършва напълно задвижвана от прекъсвания. За честотата на ШИМ използвам таймер 0 на PIC и го оставям да прелее. С вътрешен часовник на осцилатора от 8 MHz и предсказване от 64 формулата е: Fosc / 4 /256 /64 = 2.000.000 / 256 /64 = 122 Hz или 8, 2 ms. Честотата трябва да е достатъчно висока, така че човешкото око да не може да я открие. Честота от 122 Hz е доста достатъчна за това. Единственото нещо, което прави тази програма за прекъсване на таймера, е да копира работния цикъл за нов PWM цикъл и да включва всички светодиоди. Той прави това за всичките 5 светодиода независимо.

Стойността на таймера за обработка на работния цикъл на ШИМ зависи от това как правим ефекта на свещта. В моя подход аз симулирам този ефект, като увеличавам работния цикъл със стойност 3 за увеличаване на яркостта на светодиода и го намалявам със стойност 25 за намаляване на яркостта на светодиода. По този начин получавате ефект на свещ. Тъй като използвам минимална стойност 3, броят на стъпките за контрол на пълния работен цикъл с един байт е 255 /3 = 85. Това означава, че таймерът на работния цикъл на ШИМ трябва да работи с честота 85 пъти по -голяма от честотата на ШИМ честотен таймер, който е 85 * 122 = 10.370 Hz.

За работния цикъл на ШИМ използвам таймер 2 на PIC. Това е таймер с автоматично презареждане и използва следната формула: Period = (Reload + 1) * 4 * Tosc * Timer2 precale value. С презареждане на 191 и предсказване на 1 получаваме период от (191 + 1) * 4 * 1/8.000.000 * 1 = 96 us или 10.416 Hz. Програмата за прекъсване на работния цикъл на ШИМ проверява дали работният цикъл е преминал и изключва светодиода, за който работният цикъл е завършен. Ако работният цикъл не е преминат, той намалява брояча на работния цикъл с 3 и завършва рутината. Той прави това за всички светодиоди независимо. В моя случай тази рутина за прекъсване отнема около 25 us и тъй като се извиква на всеки 96 us, вече 26% от процесора се използва за управление на работния цикъл на PWM в софтуера.

Стъпка 2: Хардуерът и необходимите компоненти

Хардуерът и необходимите компоненти
Хардуерът и необходимите компоненти

Схематичната диаграма показва крайния резултат. Въпреки че управлявам само 5 светодиода независимо, добавих 6 -ти светодиод, който работи заедно с един от 5 -те други светодиода. Тъй като PIC не може да управлява два светодиода на един порт, добавих транзистор. Електрониката се захранва от 6 волтов / 100 mA DC адаптер и използва регулатор на ниско падащо напрежение, за да направи стабилни 5 волта.

За този проект се нуждаете от следните компоненти:

  • 1 PIC микроконтролер 12F615
  • 2 керамични кондензатора: 2 * 100nF
  • Резистори: 1 * 33k, 6 * 120 Ohm, 1 * 4k7
  • 6 оранжеви или жълти светодиоди, висока яркост
  • 1 транзистор BC557 или еквивалент
  • 1 Електролитен кондензатор 100 uF / 16 V
  • 1 регулатор на ниско падащо напрежение LP2950Z

Можете да изградите веригата върху макет и не изисква много място, както може да се види на снимката.

Стъпка 3: Останалият софтуер и резултат

Останалата част от софтуера е основният цикъл. Основният контур увеличава или намалява яркостта на светодиодите чрез произволно регулиране на работния цикъл. Тъй като увеличаваме само със стойност 3 и намаляваме със стойност 25, трябва да се уверим, че намаленията не се случват толкова често, колкото увеличенията.

Тъй като не използвах никакви библиотеки, трябваше да направя генератор на случаен принцип, използвайки регистър за изместване на линейна обратна връзка, вижте:

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

Ефектът на свещта се влияе от това колко бързо се променя работният цикъл на ШИМ, така че основният контур използва закъснение от около 10 ms. Можете да регулирате това време, за да промените ефекта на свещта според вашите нужди.

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

Използвах JAL като език за програмиране за този проект и прикачих изходния файл.

Забавлявайте се да направите този Instructable и очакваме с нетърпение вашите реакции и резултати.

Препоръчано: