Автомобильный портал - Retrovaz

Бегущий огонь на attiny2313 описание. Как сделать бегущие огни на светодиодах? Видео работы: Бегущие огни на светодиодах

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

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

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

Будем собирать вот по этой схеме (для увеличения кликните по ней):

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

1) три резистора номиналом: 22 КилоОма, 500 КилоОм и 330 Ом

2) микросхема NE555

3) микросхема CD4017

4) конденсатор на 1 микрофарад

5) 10 советских или китайских светодиодов на 3 Вольта

Распиновка 555


В настоящее время большинство микросхем производят в так называемом DIP корпусе . DIP – от англ. – Dual In-line Package, что в дословном переводе означает как “двухрядная сборка”. Выводы микросхем в корпусе DIP находятся в противоположных сторонах друг от друга. Расстояние между выводами в основном 2,54 мм, но есть также и исключения. В зависимости от того, сколько выводов имеет микросхема, так и называется корпус на эту микросхему. Например микросхема 555 имеет 8 выводов, следовательно, ее корпус называется DIP-8.

В красных кружочках я пометил так называемые “ключи”. Это специальные метки, с помощью которых можно узнать начало маркировки выводов микросхемы


Первый вывод как раз находится рядом с ключом. Счет идет против часовой стрелки


Значит, на микросхеме NE555N выводы нумеруются таким образом:


Все то же самое касается и микросхемы CD4017, которая изготовлена в корпусе DIP-16.


Нумерация выводов идет с левого нижнего угла.

Сборка устройства

Собираем наши бегущие огни. На макетной плате они выглядят примерно вот так:


А вот работа схемы в действии:

Работает вся схема таким образом: на таймере 555 собран генератор прямоугольных импульсов. Частота следования импульсов зависит от резистора R2 и конденсатора С1. Далее эти прямоугольные импульсы считает микросхема счетчика CD4017 и в зависимости от количества прямоугольных импульсов, выдает сигналы на свои выводы. Когда в микросхеме счетчик переполняется, все начинается сначала. Светодиоды моргают по кругу, пока на схеме есть напряжение.

Имейте ввиду, что аналогов микросхем 555 и CD4017 туева куча. Есть даже советские аналоги. Для таймера 555 это КР1006ВИ1, а для микросхемы счетчика К561ИЕ8.

В преддверии новогодних праздников как-то захотелось порадовать себя и близких чем-то необычным. Вот решил сделать иллюминацию в комнате. Традиционно для украшения комнаты и елки мы используем гирлянды. С обычными лампочками накаливания или нового варианта – светодиодные. Китайцы завалили нас этими гирляндами так, что редко можно найти квартиру, где бы не имелась парочка таких гирлянд. Как не крути, но тягаться с китайцами по стоимости, той же новогодней гирлянды, ну никак не получается. Значит, если нельзя сделать дешевле, сделаем лучше! Что же можно сделать лучше того, что есть в продаже? В большинстве своем дешевые китайские гирлянды имеют 4 канала с несколькими предустановленными программами эффектов, а из управления имеется одна кнопка. В качестве альтернативы мы сделаем 12-ти канальный генератор эффектов, с возможностью вручную создавать свои эффекты, при помощи специальной программы и сохранять их в EEPROM контроллера.

Поначалу устройство планировалось как простой генератор эффекта типа бегущих огней, но в процессе реализации проекта, меня зацепило и понесло (слишком много памяти в ATtiny2313 для такого устройства:), а незадействованная память действует на меня как красная тряпка). Я подумал, а почему только бегущие огни? А если, вдруг, захочется организовать красивую подсветку полочки с фотографиями или световое сопровождение компьютерных игр или красивое освещение комнаты или еще какие-то появятся идеи визуальных эффектов? В итоге родилось довольно интересное, многофункциональное устройство с возможностью гибкой настройки и управления, как с компьютера, так и переключателями на самом устройстве. Но времени на это я потратил гораздо больше, чем планировал. Поэтому извините, что НЕМНОГО 🙂 запоздал к новогодним праздникам, но зато Вы получите устройство, которое может пригодиться не только под Новый Год.

1 Схема устройства примитивна, проста в повторении и содержит минимум деталей:

Плату устройства
— несложно повторить (а если понадобиться в других габаритах, то несложно и переделать) :
- Плата Эффектора-12 для ТН-компонентов

Дополнения

1 Тут sig подкинул идею расположения светодиодов для платки индикации
- Вариант расположения светодиодов
Внешний круг — красные светодиоды, внутренний — синие. В центре 10мм светодиод. Если круги светодиодов расположить на разных уровнях, то должно получиться красиво … теоретически 🙂

Как Вы понимаете, таких вариантов может быть множество — присылайте если получиться что-то интересное.



4 Устройство готово! Теперь расскажу как оно работает.
У генератора эффектов есть 12 ШИМ каналов (8 бит, 100Гц), которые управляются алгоритмами, заложенными в микроконтроллер. В прошивке предустановленны 8 программ эффектов, причем 4 из них, при первом старте или по специальной команде UART, копируются в EEPROM микроконтроллера. Позже их можно подкорректировать или заменить другими при помощи специальной программы. Для выбора эффектов используется три перемычки или переключателя на ножках 7, 8, 9. Комбинация замкнутых на «землю» ножек будет определять какой эффект сейчас задействован:
Переключатели в порядке — 2,1,0 (где 0 – разомкнуто — висит в воздухе, 1 – замкнуто на «землю»)
000 – запуск первой программы EEP1 с EEPROM
001 – запуск второй программы EEP2 с EEPROM
010 – запуск третьей программы EEP3 с EEPROM
011 – запуск четвертой программы EEP4 с EEPROM
100 – запуск первой программы P1 с Flash
101 – запуск второй программы P2 с Flash
110 – запуск последовательности программ с EEPROM (4 программы)
111 – запуск последовательности программ с Flash (8 программ)
Переключать программы возможно и по UART, причем по UART возможно выбрать и оставшиеся 2 программы P3 и P4 с Flash.При запуске последовательностей (комбинации 110 и 111), программы через определенное время чередуются.

Вот такой функционал доступен с платы устройства. Не очень впечатляет, правда? Хотите чего-то большего? Подключайте устройство через UART к компьютеру и при помощи специальной программы получите возможность задействовать весь функционал устройства!

А именно:
— Уровни 12-ти ШИМ каналов можно непосредственно изменять из программы;
— 4 программы, записанных в EEPROM, можно менять по своему усмотрению;
— задавать программу поведения для каждого канала отдельно;
— включать/отключать любой из 6 общих эффектов, действующих сразу на все каналы, (стробоскоп, движение по заданной программе, мерцание, изменение яркости, сдвиг/скольжение каналов);
— менять скорость работы программы эффектов или полностью ее остановить;
— задавать изменение каналов под музыку.


5 Подключение к компьютеру.
Устройство имеет UART выход с TTL уровнями, а это значит, что для подключения к компьютеру необходим преобразователь.

5.1 Если Вы хотите сделать подключение через COM порт , понадобится преобразователь уровней для RS232-протокола COM порта. Например, подойдет широко известная MAX232 . Проблем со схемой возникнуть не должно – в даташите, на эту микросхему, все описано.
- Даташит на серию преобразователей MAX (MAX232)

5.2 Подключение через USB можно сделать через FT232RL или попроще, через преобразователь на ATtiny2313 , .

UART устройства работает на следующих настройках
— биты данных (data bits ) – 8
— стоп биты (stop bits ) – 2
— контроль четности (parity ) – нет
— скорость (baud rate ) — 9600

Работа по UART организована в виде 2-х символьных посылок. Первый символ — всегда буква (большие буквы латинского алфавита), она указывает, что изменять в устройстве (например, буквы от A до L указывают на каналы от 1 до 12). Второй символ, чаще всего цифра, задает значение параметра (например, для установки яркости каналов, посылаются цифры от 0 до 8).
Пример: Для того чтобы установить среднюю яркость третьего канала, нужно по UART отослать устройству “C5”.
Если управление устройством планируется только с компьютера – не заморачивайтесь этими командами — специальная программа сделает все сама.
Если Вы планируете управлять устройством из своего терминала или при помощи другого микроконтроллера, вот полный перечень команд:
- Перечень UART команд Эффектора-12


6 Управление устройством через программу «GCn Effector 12».
Так как устройство имеет довольно обширный функционал, управление через обычную программу терминала хоть и возможно, но не очень удобно. Поэтому, для удобного и наглядного управления мною была написана специальная программа — «GCn Effector 12» .
- Программа управления эффектором
Программа имеет небольшой размер, не требует установки. Работает через COM порт (или его эмуляцию, в случае преобразователя на FT232RL или на ATtiny2313). Программа проста, особо описывать нечего, разве что очень кратко пройдусь по основным функциям.

«GCn Effector 12» имеет 3 закладки, для различных возможностей генератора эффектов:
6.1 Закладка «Работа с СОМ портом».
Здесь мы выбираем СОМ порт, к которому подключено устройство – «Выбор порта» . Можем посылать команды управления вручную – «Передача пакета» . Смотрим «Помощь» с перечнем команд.

6.2 Закладка «Настройка эффектов».
Эта закладка немного веселее предыдущей. Сюда вынесено все, что можно настроить или поменять в устройстве.
«Работа с EEPROM, программами» . Кнопки позволяют сохранить сделанные настройки в текущей (выбранной) EEP-программе, восстановить, все четыре программы EEPROM к начальным настройкам (как при первом старте), прочитать текущую программу из контроллера.
«Выбор программы» . Это то, что можно сделать на устройстве при помощи переключателей, кроме того можно включить две программы (Р3 и Р4), недоступные для переключателей.
«Скорость работы» . Меняет скорость работы программы эффектов или полностью останавливает работу эффекта (статичное отображение состояния каналов).
«Яркость каналов» . Перемещая ползунки, меняем яркость каждого канала по отдельности. Кнопка «Rst» сбрасывает все каналы в ноль.
«Направление изменения яркости» . Задаем программу изменения каждого канала по отдельности (эффекты Work и Jump).
«Выбор эффектов» . Можно выбрать сразу несколько или все отключить – кнопка «Rst».

Перечень эффектов.
Work — отработка программы изменения яркости для каждого канала отдельно (см. Направление изменения яркости);
Jump — отработка программы скачкообразного изменения яркости для каждого канала отдельно (см. Направление изменения яркости);
Strobo — со случайным периодом и случайной длительностью включается стробоскопический эффект на всех каналах;
Move — эффект сдвига. Плавно и случайно меняется скорость и направление сдвига;
Bright — плавное и случайное изменение яркости всех каналов;
Blink — Случайное мерцание всех каналов.

Любые действия в настройщике формируют и отправляют соответствующую UART команду. Последняя отправленная команда отображается в окошке «COM» в правой части области настройки.

6.2 Закладка «Музыка».

Эта закладка совсем веселая, так как позволяет изменять состояние каналов в соответствии с входным аудиоканалом компьютера. Выберите в микшере звуковой карты нужное входное устройство или «Wave», «What U hear», «Stereo Mix» , если хотите чтобы отображалась проигрываемая на PC музыка, (или звуки) и жмите «Пуск» — все остальное программа будет делать сама. Есть варианты отображения «Норма» и «Зеркало» — пробуйте. Также можно подкорректировать чувствительность. При работе «музыки» можно переключиться на вторую закладку и работать параллельно с эффектами.

Для более четкого представления о работе прибора рассмотрим некоторые его основные узлы. Начнём рассматривать работу бегущих огней с микросхемы К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

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

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

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

    счётчика;

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

    устройства индикации (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 миллиметров. "Бегущий огонь" с такими светодиодами будет смотреться очень эффектно.

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!