Электронная свеча |
Автор ARV | |||||||||||||||||||
18.12.2008 г. | |||||||||||||||||||
Но гаснет свеча на ветру...
Хороши свечи... создают интимную обстановку... но, увы, недостатков у них немало: пожароопасные, коптящие, пачкающиеся парафином, гаснущие при малейшем дуновении ветерка... В общем, красиво, но слишком заморочно.
Основа - микроконтроллер Attiny13. Эта микросхема всего с 8-ю выводами позволяет получить электронный аналог не одной свечи, а целого канделябра! Схема элементарна настолько, что даже рисовать ее смысла нет: к выводу 4 подключается минус питания, к выводу 8 - плюс питания, а все остальные - это выводы «свечей», в качестве которых выступают желтые или оранжевые светодиоды. Для питания лучше всего использовать пару пальчиковых батареек, хотя все будет работать и при другом напряжении - от 2 до 5 вольт. Анод каждого светодиода подключается к выводу контроллера, а катод через резистор к минусу питания. Кстати, все успешно будет работать и в том случае, если подключить диод катодом к выводу, а резистором с анода на плюс питания. Сопротивление резисторов зависит от типа примененных светодиодов и напряжения питания. В самом крайнем случае можно вообще обойтись без них, только вот питание при этом нежелательно использовать более 3 вольт. Я использую резисторы сопротивлением 20 Ом. Если используются светодиоды повышенной светоотдачи, варьируя сопротивлением, можно подобрать желаемую яркость свечения. Микроконтроллер работает по программе, исходный текст которой доступен для скачивания. Программа написана на Си для WinAVR, но легко может быть адаптирована для других компиляторов. Алгоритм ее очень прост: реализуется программный 6-канальный ШИМ в обработчике прерывания по переполнению таймера. Скважность каждого канала задается случайным образом при помощи функции Си random() (в других компиляторах для этой цели надо использовать rand() ). Чтобы свечение светодиода было больше похоже на настоящее пламя, скважность меняется так же через случайные промежутки времени. Уже готовая прошивка так же доступна для скачивания. При программировании микроконтроллера следует установить фьюз CKDIV8 = 1, т.е. отключить делитель тактовой частоты. Микроконтроллеры поставляются с уже настроенным внутренним RC-генератором 9,6 МГц, но если применяется не новый микроконтроллер, следует установить фьюзы CKSEL1 = 1 и CKSEL0 = 0. Так же желательно установить BODLEVEL1 = 1 и BODLEVEL0 = 0, т.е. активировать встроенный детектор питания на уровень 1,8В - это позволит питать конструкцию от двух пальчиковых батареек или аккумуляторов. Если не планируется использовать все 6 каналов, то больше не нужно ничего программировать, при этом вывод 1 не будет работать (т.е. число каналов ШИМ будет равно пяти). Если же нужно задействовать все 6 каналов - придется запрограммировать RSTDSBL = 0, но после этого микроконтроллер уже невозможно будет перепрограммировать или стереть без применения «высоковольтного» программатора. Будьте осторожны с этим фьюзом! Пять свечей от одного контроллера - тоже неплохо.
На видео вы видите, как выглядит в работе одиночная свеча. К сожалению, видеооператор из меня никакой... Но кое-что разглядеть все-таки можно. Кроме того, желтый светодиод у меня был только обычный, а не суперяркий, поэтому видео получилось темноватое. Но в реале вполне приятно светится. Образец свечи был сделан из подручных материалов - кусочка белой резиновой трубки и термоклея. Фотографии поясняют, как это все делалось.
К панельке припаян светодиод с резистором и проводки для подключения батареек.
"Пламя" сделано из термоклея. Как обычно, первый блин комом, поэтому получилось не очень, но переделывать уже некогда...
Потом берутся две мизинчиковые батарейки и вставляются в резиновую трубку, а с другой стороны вставляется собранная схема.
В итоге получилось вполне похоже на настоящую свечу. Несколько идей для развития проекта. Если применить чип-светодиоды, то можно сгруппировать их по несколько штук, выполнив некую пространственную модель языка пламени свечи. В этом случае можно добиться эффекта мерцания пламени не только во времени, но и в пространстве, т.е. иллюзия пламени станет еще реальнее. Возможно, при этом придется «поколдовать» с константами LOW и STEP программы (см. файл e_candle.h).
Если осуществить перенос программы на микроконтроллер с большим количеством выводов и переделать подпрограмму обработки прерывания на ассемблере, можно получить гораздо больше каналов ШИМ, обеспечив, например, целую елку гирляндой искусственных свечек.
Желаю приятного времяпрепровождения под мерцание негаснущей на ветру свечи! С наступающим Новым годом!
Добавить в любимые (6) | Просмотров: 72903
Только зарегистрированные пользователи могут оставлять коментарии. |
« Пред. | След. » |
---|