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

Здесь пойдёт речь о том, как сделать бегущие огни на светодиодах своими руками. Схема устройства отличается простотой и реализована на логических микросхемах так называемой жёсткой логики - микросхемах серии ТТЛ. Само устройство включает три микросхемы.

Схема состоит из четырёх основных узлов:

    генератора прямоугольных импульсов;

    счётчика;

    дешифратора;

    устройства индикации (16-ти светодиодов).

Вот принципиальная схема устройства.

Устройство работает следующим образом. После подачи питания светодиоды HL1 - HL16 начинают последовательно загораться и гаснуть. Визуально это выглядит как движение огонька слева направо (или наоборот). Такой эффект и называется «бегущий огонь».

Генератор прямоугольных импульсов реализован на микросхеме К155ЛА3 . Задействовано лишь 3 элемента 2И-НЕ этой микросхемы. С 8-го вывода снимаются прямоугольные импульсы. Частота их следования невелика. Это позволяет реализовать видимое переключение светодиодов.

По сути, генератор на элементах DD1.1 - DD1.3 задаёт темп переключения светодиодов, а, следовательно, и скорость «бегущего огня». При желании скорость переключения можно подкорректировать с помощью изменения номиналов резистора R1 и C1.

Стоит предупредить, что при других номиналах R1 и C1 генерация может быть сорвана - генератор не будет работать. Так, например, генератор отказался работать при сопротивлении резистора R1 равном 1 кОм. Поэтому изменять номиналы C1 и R1 можно лишь в некоторых пределах. Если генератор не запустился, то будет постоянно светиться один из светодиодов HL1 - HL16.

Счётчик на микросхеме DD2 необходим для подсчёта импульсов, поступающих от генератора и подачи двоичного кода на дешифратор К155ИД3. По схеме выводы 1 и 12 микросхемы-счётчика К155ИЕ5 соединены. При этом микросхема будет считать поступающие на вход C1 (выв. 14) импульсы и выдавать на выходах (1, 2, 4, 8) параллельный двоичный код, соответствующий количеству поступивших импульсов от 0 до 15. То есть на выходах (1, 2, 4, 8) микросхемы К155ИЕ5 последовательно сменяют друг друга 16 комбинаций кода (0000, 0001, 0010, 0011, 0100 и т.д.). Далее в работу включается дешифратор .

Особенность микросхемы К155ИД3 заключается в том, что она преобразует двоичный четырёхразрядный код в напряжение логического нуля, который появляется на одном из 16 соответствующих выходов (1-11, 13-17). Думаю, такое объяснение не всем понятно. Попробуем разобраться.

Если обратить внимание на изображение микросхемы К155ИД3, то можно заметить, что у неё 16 выходов. Как известно, в двоичном коде из четырёх знаков можно закодировать 16 комбинаций. Больше никак не получится. Напомним, что с помощью четырёхзначного двоичного кода можно закодировать десятичные цифры от 0 до 15 (всего 16 цифр).

Это легко проверить, если возвести 2 (основание системы счисления) в степень 4 (количество разрядов или цифр в коде). Получим 2 4 = 16 возможных комбинаций. Таким образом, при поступлении на входы микросхемы К155ИД3 двоичного кода в диапазоне от 0000 до 1111 на выходах 0 - 15 появится логический ноль (светодиод засветится). То есть микросхема преобразует число в двоичном коде в логический ноль на выводе, который соответствует числу в двоичном коде. По сути это такой особенный дешифратор из двоичной системы в десятичную.

А почему светится светодиод? На выходе ведь логический ноль. По схеме видно, что аноды всех светодиодов подключены к плюсу питания, а катоды к выходам микросхемы К155ИД3. Если на выходе "0", то для светодиода это как бы минус питания и через его p-n переход течёт ток - светодиод светится. Если на выходе логическая единица "1", то ток через светодиод не пойдёт.

Если всё то, что было написано вам всё равно не понятно, то не стоит расстраиваться. Просто соберите предложенную схему, например, на беспаечной макетной плате и наслаждайтесь работой устройства. Схема проверена и исправно работает .

Если в распоряжении уже есть стабилизированный блок питания (например, такой как этот), то интегральный стабилизатор DA1 (КР142ЕН5А ) и элементы обвязки (C2, C3, C4) в схему устанавливать не надо.

Все номиналы элементов (конденсаторов и резисторов) могут иметь разброс ±20% . На работу устройства это не повлияет. Светодиоды HL1 - HL16 могут быть любого цвета свечения (красного, синего, зелёного) с рабочим напряжением 3 вольта. Можно, например, использовать яркие красные светодиоды диаметром 10 миллиметров. "Бегущий огонь" с такими светодиодами будет смотреться очень эффектно.

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

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

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

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

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

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

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

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

Для более четкого представления о работе прибора рассмотрим некоторые его основные узлы. Начнём рассматривать работу бегущих огней с микросхемы К155ЛА3 которая является набором из четырёх логических элементов 2И-НЕ изображённого на рис.1.

1,2,4,5,9,10,12,13 - входы X1-X8;
3 - выход Y1;
6 - выход Y2;
7 - общий;
8 - выход Y3;
11 - выход Y4;
14 - напряжение питания;

Мы используем только два элемента 2И-НЕ. Ниже приведённая схема генератора выдаёт чередование прямоугольных импульсов логического нуля и логической единицы показанных на графике.

На генераторе предусмотрена регулировка скорости и продолжительности чередования логических импульсов с помощью R1 и C1.

Если к выводу 6 подключить светодиод через резистор 1 кОм – то мы увидим, что у нас получилась простая мигалка на микросхеме с регулируемой скоростью мерцания.
Далее рассмотрим микросхему К155ТМ2 – которая включает в себя два независимых D-триггера, срабатывающих по положительному фронту тактового сигнала, к ней и осуществим подключение тактового генератора.

Условное графическое обозначение К155ТМ2 приведено на рис.2. На рис.3 приведена структурная схема и таблица истинности одного из элементов микросхемы, где каждый элемент состоит из четырёх элементов 2И-НЕ.

А ниже приводится "расшифровка" выводов микросхемы:
1 - инверсный вход установки "0" R1;
2 - вход D1;
3 - вход синхронизации C1;
4 - инверсный вход установки "1" S1;
5 - выход Q1;
6 - выход инверсный Q1;
7 - общий;
8 - выход инверсный Q2;
9 - вход Q2;
10 - инверсный вход установки "1" S2;
11 - вход синхронизации C2;
12 - вход D2;
13 - инверсный вход установки "0" R2;
14 - напряжение питания;

Подключим вывод 2 к инверсному выводу 6 и подключим к выводу 3 тактовый генератор. При поступлении логической единицы на вывод 3 на выводе 5 будет переключение на логическую единицу, при прохождении очередной логической единицы на вывод 3 - произойдёт переключение на логический ноль (вывод 5) и так будет происходить переключение до бесконечности. На выводе 6 (который является инверсным ) будет зеркальное значение 5-го вывода.

А бегущие огни составим из тактового генератора и четырёх элементов триггера (2 микросхемы К155ТМ2) рис.5

На схеме мы видим не фиксируемую кнопку S2 которая служит для переключения подпрограмм и селектор S1 которым осуществляется переключение основных программ. Если сделать небольшие изменения в схеме - отсоединить вывод идущий к 13 ноге D1.2 и подключить его к выводу 10 D1.2 и сделать то же самое на второй микросхеме, то изменятся и программы индикации (изменение отмечено на схеме пунктиром). Если использовать многосекционный селектор S1, то можно подключить отмеченное пунктиром изменение к селектору и тем самым увеличить число программ.

В схеме используются лампочки напряжением 2.5-3.6 вольта, но если использовать светодиоды, то надобность в транзисторах отпадает (на схеме отмечено красным квадратом) и подключение светодиодов осуществляется к Т,Т1,М,М1,Р,Р1,F,F1 рис.5а.

Если использовать лампы на 220 вольт, то вместо транзисторов нужно подключить симисторы или как их ещё называют симметричные тиристоры, триодный тиристор или триак. Условное графическое обозначение симистора на рис.6

Симистор можно представить двумя тиристорами, включенными встречно-параллельно. Он пропускает ток в обоих направлениях. Симистор имеет три электрода: один управляющий и два основных для пропускания рабочего тока. Структура этого полупроводникового прибора показана на рис.6а. На рис.6 б внешний вид симистора КУ208.

На Рис.7 показана схема бегущих огней с симисторным управлением.

Собранный девайс изнутри и внешний вид устройства.

Используемые детали в бегущих огнях можно заменить на импортные и отечественные аналоги: К155ЛА3 на SN7400, К155ТМ2 на SN7474N, транзисторы КТ315 на КТ342; КТ503; КТ3102; 2N9014; ВС546В, а КУ208 на BT134; BT136. Светодиоды можно применять любые. Стоимость деталей приблизительно составляет 60 - 100 рублей.

Данную схему легко переработать и изменить алгоритм работы.

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

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
D1, D2 Микросхема 2 В блокнот
D3 Логическая ИС 1 В блокнот
VT1-VT4 Биполярный транзистор

КТ315Б

4 При выполнении варианта рисунок 5 В блокнот
vs1-vs4 Тиристор & Симистор

КУ208Г

1 При выполнении варианта рисунок 7 В блокнот
С1 Электролитический конденсатор 470 мкФ 10 В 1 В блокнот
R1-R4 Резистор

1 кОм

4 В блокнот
R5 Переменный резистор 470 Ом 1 В блокнот
S1 Переключатель 1

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

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