Как сделать бегущие огни на светодиодах? Бегущие огни Как сделать бегущие огни своими руками

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

Этот автомат световых эффектов позволяет управлять тринадцатью светодиодами, которые подключены через токоограничивающие резисторы прямо к портам микроконтроллера ATtiny2313.Как уже было сказано выше, в памяти микроконтроллера зашиты 11 различных самостоятельных комбинаций световых рисунков, а так же есть возможность последовательного однократного перебора всех 11 комбинаций, это уже будет 12-ая программа.

Кнопка SA3 позволяет осуществлять переключение между программами.

Кнопками SA1 и SA2 можно управлять скоростью движения огней либо частотой мерцания каждого светодиода (от постоянного свечения до легкого мерцания). Все это зависит, в каком положении находится переключатель SA4. При верхнем по схеме положении переключателя SA4 регулируется скорость бегущих огней, а при нижнем частота мерцания.

При монтаже светодиодов в линейку следует соблюдать очередность такую же, как пронумеровано на схеме от HL1 до HL11.

Микроконтроллер ATtiny2313 тактируется от внутреннего генератора с частотой 8 МГц.

Видео работы: Бегущие огни на светодиодах

(1,1 Mb, скачано: 3 650)

Сегодня мы немного усовершенствуем наш проект, заодно и повторим битовые сдвиги, и не только повторим, а и увидим их смысл в деле. Мы применим данные сдвиги для того, чтобы наши светодиоды, находящиеся в матрице, мигали один за другим поочерёдно, за счёт чего наша схемка приобретёт ещё более живой вид.

Для этого нам потребуется уже не один светодиод. У меня на этот счёт имеется светодиодная планка или матрица. Я её поместил в беспаечную макетную плату, катоды всех светодиодов соединил вместе и подключил к общему проводу, а аноды каждый через токоограничивающий резистор подключил к соответствующим ножкам порта D. Вот так это всё выглядит (нажмите на картинку для увеличения изображения)

Поэтому, как обычно, по старой доброй традиции мы запускаем Atmel Studio , создаём в ней проект, выбрав тот же самый микроконтроллер Atmega8a , назовём проект Test03 . Таким же образом в качестве отладчика выберем simulator, и также, чтобы сэкономить наше драгоценное время, скопируем весь код из файла main.c прошлого занятия.

Начнём писать код. Сначала мы в функции main() создадим целочисленную короткую беззнаковую переменную

int main (void )

unsigned char i ;

Порт также оставляем на выход, и сразу на данном порте включим нулевую ножку в 1

DDRD = 0xFF;

PORTD = 0b00000001 ;

А в бесконечном цикле мы создадим цикл другого типа — типа for . Данный цикл уже является конечным и работает он следующим образом

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

while (1)

for (i =0;i <=7;i ++)

{

Delay_ms (500);

}

В данном цикле у нас будет пока только задержка, остальной код мы уберём. То есть тело нашего цикла будет у нас выполняться до тех пор, пока переменная i у нас не достигнет значения, большего или равного 7 . То есть получится, что наше тело будет выполняться ровно 8 раз, затем мы выйдем из данного цикла и благодаря бесконечному циклу заново в него войдём и наш восьмикратный процесс повторится сначала.

А вот теперь сдвиг. Вставим его до задержки

PORTD =(1<<i );

Delay_ms (500);

Как мы видим, данный сдвиг мы применяем к регистру, отвечающему за состояния порта D , и в нём мы будем сдвигать единичку влево на величину нашей переменной i , а так как данная переменная с каждым циклом увеличивается на 1 (или инкрементируется ), то, соответственно, наша единичка постепенно раз в полсекунды будет двигиться влево, также как и лапки порта, за которые отвечает каждый бит нашего регистра. И тем самым мы и получим эффект бегущего огня.

Давайте соберём наш проект. И, также как и на прошлом занятии скопируем файл протеуса с прошлого занятия и переименуем его в Test03 . Откроем его, заменим файл прошивки в свойствах контроллера.

Также добавим ещё 7 светодиодов и 7 резисторов, так как показано на схеме. Можно применять операцию копирования. Как это делается, показано в видеоуроке.

Запустим проект в протеусе и увидим, что наши светодиоды мигают поочерёдно, создавая впечатление эффекта бегущего огня

Теперь прошьём настоящий контроллер и увидим уже результат на практике. Это, конечно, намного интереснее, чем в протеусе. Как всё это выглядит, можно увидеть в видеоверсии урока, ссылка на который находится ниже и доступна с помощью нажатия на картинку.

Post Views: 10 673

Один из вариантов использования твердотельных источников света в декоративных целях – бегущие огни на светодиодах. Способов изготовления этого несложного устройства – масса. Рассмотрим некоторые из них.

Простейшая схема бегущих огней на 12 вольт

В интернете наиболее часто встречается простая «старомодная» схема с использованием счетчика и генератора (рисунок 1).

Рисунок 1

Работа схемы предельно проста и понятна. Генератор построен на основе таймера импульсов, а счетчик выполняет свою основную функцию – считает импульсы и выдает соответствующие логические уровни на своих выходах. К выходам подключены светодиоды, которые загораются при появлении логической единицы и соответственно гаснут при нуле, создавая тем самым эффект бегущих огней. Скорость переключения зависит от частоты генератора, которая в свою очередь зависит от номиналов резистора R1 и конденсатора С1.

Наименования микросхем приведены советские, но они имеют легкодоступные импортные аналоги. Если необходимо увеличить , то для увеличения тока нужно подключать их через буферные транзисторы, т.к. сами выходы счетчика имеют достаточно скромную нагрузочную способность.

Подключаем «мозги»

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

Схемы получаются более громоздкими и дорогими. МК же позволяет гибко управлять отдельными светодиодами или их группами, хранить в памяти множество программ световых эффектов и при необходимости чередовать их по заранее заданной последовательности или по внешней команде (например, от кнопки). При этом схема получается весьма компактной и достаточно дешевой.

Рассмотрим основной принцип построения схемы бегущих огней на светодиодах с использованием микроконтроллера.

Для примера возьмем микросхему ATtiny2313 – 8-разрядный МК стоимостью около 1$. Простейшая схема может быть реализована непосредственным подключением светодиодов к выводам I/O (рисунок 2). Эти выводы МК способны обеспечить ток до 20 мА, что более чем достаточно для индикаторных светодиодов.

Необходимое значение тока задается резисторами, включенными последовательно диодам. Значение силы тока рассчитывается по формуле I=(U пит -U LED)/R. Схемы питания и сброса МК на рисунке не приведены, чтобы не загромождать схему. Эти цепи стандартные и выполняются в соответствии с рекомендациями производителя, приведенными в Data Sheet. При необходимости точного задания временных интервалов (длительности зажигания отдельных светодиодов или полного цикла) можно использовать кварцевый резонатор, подключаемый к выводам 4 и 5 МК.

Если такой необходимости нет, можно обойтись встроенным RC-генератором, а освободившиеся выводы назначить как стандартные выходы и подключить еще пару светодиодов. Максимальное количество светодиодов, которое можно подключить к этому МК – 17 (на рисунке 2 показан вариант подключения 10 светодиодов). Но лучше оставить один-два вывода для кнопок управления, чтобы была возможность переключать режимы бегущего огня.

Рисунок 2

Вот и всё, что касается «железа». Дальше всё зависит от программного обеспечения. Алгоритм может быть любым. К примеру, можно записать в память несколько режимов и настроить интервал повторения каждой либо подключить две кнопки: одну для переключения режимов, другую для регулировки скорости. Написание подобной программы – достаточно простая задача даже для человека никогда не работавшего ранее с МК, однако если изучать программирование лень или некогда, а «оживить» бегущий огонь на светодиодах очень хочется – всегда можно скачать готовое ПО.