Простейшие бегущие огни всего на одной микросхеме без программирования

Бегущие огни с выбором программ

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

Далее мы кратко рассмотрим работу одного каскада триггера изображённого на рис.4.

Подключим вывод 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 рублей.

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

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

PIC Урок 3. Бегущие огни

Теперь у нас есть среда программирования и компилятор. Также у нас есть готовый проект. Поэтому теперь самое время заняться написанием какого-нибудь кода.

Ну и, по традиции, давайте напишем код, который будет управлять свечением светодиодов, подключенных к ножкам портов микроконтроллера. То есть за счёт поочерёдного поступления положительного потенциала от ножек портов на ножки светодиодов, а также нулевого номинала на другие ножки, мы создадим поочерёдное свечение и потухание светодиодов, за счёт чего произойдёт эффект бегущих огней. Почему именно нужно начинать с такого проекта? Да потому, что светодиоды, как ничто другое, позволяют наглядно оценить управление уровнями на ножках портов, в ту же очередь управление битами в регистрах специального назначения — а именно в регистрах портов ввода-вывода.

Сначала давайте соберём схему с контроллером PIC16F84A и подключенными через токоограничивающие резисторы светодиодами в программе-стимуляторе — Proteus

Также мы обязаны подать питание на соответствующие ножки, а также на соответствующие ножки обязаны подключить кварцевый резонатор и конденсаторы на 15 пикофарад. Но, как известно, в проетусе этого делать необязательно. Всё и так будет работать. А в практической схеме, конечно, .об этом ни в коем случае нельзя забывать.

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

TRISB = 0x00;

PORTB = 0x00;

Чуть не забыл, давайте настроим конфигурационные биты. Это биты, без которых нам не обойтись. С помощью них мы настраиваем некоторые свойства нашего контроллера, подобна фьюзам в AVR. Для того, чтобы более удобно их настраивать, есть специальный инструмент в среде программирования MPLAB X IDE.

Проследуем по пунктам меню Window -> PIC Memory Views -> Configuration Bits и внизу у нас появятся настроики этих самых битов конфигурации. Настроим там следующие занчения

Мы выбрали нужный кварцевый резонатор — это высокоскоростной резонатор от 4 мегагерц. Кстати, у нас будет установлен кварцевый резонатор именно на 4 мегагерца. Так как одна элементарная операция в нашем контроллере занимает 4 машинных цикла, то очень легко будет подсчитывать время. То есть операция будет выполняться ровно за 1 микросекунду.

Сохраним наши конфигурационные биты в удобочитаемый код с помощью нажатию на кнопку ниже

и получим код в окне вывода информации

Скопируем его и добавим в наш файл main.c сразу после подключения библиотеки и заодно сразу объявим частоту нашего резонатора, иначе у нас не будут работать корректно задержки

#define _XTAL_FREQ 4000000

#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)

#pragma config WDTE = OFF // Watchdog Timer (WDT disabled)

#pragma config PWRTE = ON // Power-up Timer Enable bit (Power-up Timer is enabled)

#pragma config CP = OFF // Code Protection bit (Code protection disabled)

Теперь давайте с помощью удобных инструкций (написанных с помощью макросов в стандартной библиотеке PIC) добавим код в бесконечный цикл

PORTAbits.RA1 = 0;

PORTBbits.RB0 = 1;

__delay_ms(100);

PORTBbits.RB0 = 0;

PORTBbits.RB1 = 1;

__delay_ms(100);

PORTBbits.RB1 = 0;

PORTBbits.RB2 = 1;

__delay_ms(100);

PORTBbits.RB2 = 0;

PORTBbits.RB3 = 1;

__delay_ms(100);

PORTBbits.RB3 = 0;

PORTBbits.RB4 = 1;

__delay_ms(100);

PORTBbits.RB4 = 0;

PORTBbits.RB5 = 1;

__delay_ms(100);

PORTBbits.RB5 = 0;

PORTBbits.RB6 = 1;

__delay_ms(100);

PORTBbits.RB6 = 0;

PORTBbits.RB7 = 1;

__delay_ms(100);

PORTBbits.RB7 = 0;

PORTAbits.RA0 = 1;

__delay_ms(100);

PORTAbits.RA0 = 0;

PORTAbits.RA1 = 1;

__delay_ms(100);

То есть мы поочерёдно включаем ножки, отключая при этом предыдущие. Всё просто.

Соберём код и попробуем его поотлаживать.

Для этого установим брейкпоинт на какую-нибудь строку

Запустим отладку соответствующей кнопкой на тулбаре

Программа остановится на заданной точке.

Давайте теперь посмотрим какие-нибудь регистры. Запустим сначала инструмент для просмотра всех регистров посредством команды меню Window -> PIC Memory Views -> File Registers

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

У нас изменится только байт-счётчик, так как в бите RA1 у нас и так уже был ноль. Причём байт изменится в обоих банках ибо он банконезависимый

Читайте также:  Электрогенератор на базе термоакустического двигателя

Шагнём ещё один шаг

И мы увидим что теперь байт по адресу 0x06 изменил своё значение

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

Только постоянно подносить курсор тоже не совсем удобно. Для этого есть другой инструмент, созданный именно для просмотра регистров специального назначения, который вызывается командой меню Window -> PIC Memory Views -> SFRs

Шагнём ещё пару шагов и увидим изменение в регистре порта B

Также существует ещё один интересный инструмент, позволяющий измерять время, за которое выполняется та или иная команда, а если поставить точку останова в другом месте и выполнить код сразу до неё, то и целого участка кода. Данный инструмент вызывается по команде меню Window -> Debugging -> Stopwatch. Вызовем его и шагнём одну команду

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

Время дожно будет сброситься

Теперь прошагаем ещё одну команду. У нас как раз задерка, вот и измерим её время

Всё точно. 100 милисекунд. Остановим отладку, перейдём в Proteus. Настроим свойства контроллера, добавив там 16-битную величину наших конфигурационных битов, а также показав путь к нашей прошивке и задав частоту тактирования

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

Конечно, в статической картинке я показать этого не смогу, поэтому смотрите видеоурок.

А теперь посмотрим нашу практическую схему, которую я собрал на макетной плате

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

Программатор мы будем использовать PICkit2. У меня он клон. Настоящий фирменный у меня есть PICkit3, но так как для данной схемы достаточно и второго, да и не у всех есть третий, то будем использовать пока его.

А вот и программатор

Подключается данный программатор к контроллеру по интерфейсу ICSP следующим образом

PICkit — MC

6 (Aux) — в нашем случае не используется

Давайте так его и подключим (нажмите на картинку для увеличения изображения)

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

Скачаем программу, установим её и запустим, подключив перед этим программатор к схеме, а с другой стороны — к USB-разъёму компьютера. Если всё подключено правильно, то программа сама обнаружит и определит контроллер

Покажем программе нашу прошивку, проследовав по пунктам меню File -> Import Hex и показав путь к файлу с прошивкой в файловом диалоге. Конфигурационные биты должны будут выставиться сами, как мы их и настраивали в среде программирования

Включим питание, заранее выставив напряжение. Пойдёт и 5 вольт, но я всегда на всякий случай выбираю 4,8. Включение питание производится установкой галки в чекбокс On

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

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

Всем спасибо за внимание!

Приобрести программатор PICKit3 (неоригинальный) можно здесь PICKit3

Приобрести программатор PICKit3 (оригинальный) можно здесь PICKit3

Смотреть ВИДЕОУРОК (нажмите на картинку)

20 комментариев на “ PIC Урок 3. Бегущие огни ”

судя по программе…. можно резисторы убрать и заменить одним в цепь светодиодов на землю

Судя по программе, можно, но если кто-то перепутает инверсию, то до свидания — контроллер.

и схема… так себе…. обычно светодиоды нулём зажигают, чтобы контроллер не перегружать…
поэтому- катодами в контроллер …. аноды в кучу и один резистор на +5
ну и программу переделать

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

это вы серьёзно?
да хоть сотню светодиодов попробуйте зажечь…. один резистор в 250 ом — ни какому току не даст протечь
просто светодиоды гореть не будут…
я предложил упрощение схемы по вашей программе…..
кстати- 250 ом… это 20ма на ножку…. если все одновременно «загорятся»- контроллер выдержит?

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

Это общепринятая схема. У каждой ножки порта есть предельный ток, который она может выдержать. Можете проверить. Зажечь сразу все светодиоды, а затем один. Будет яркость 1 и та же.

Кстати в официальном мануале по FreeRTOS «Mastering the FreeRTOS™
Real Time Kernel» есть раздел 12.3 Stack Overflow. Может поможет.

для данной программы- нормальный вариант…. один гасится- другой зажигается

добавлю…. по даташиту…. порт В имеет максимальную нагрузку 100-150ма если все сразу зажечь, то контроллеру может поплохеть….

статья… для начинающих нормальная….
не обижайтесь за критику- просто я разработкой больше 20 лет занимаюсь

программу поменять надо…
сначала
TRISA=0xFF;
TRISB=0xFF;
а по тексту:
TRISBbits.TRISB4=0;
PORTBbits.RB4=1;
TRISBbits.TRISB4=1;

тогда точно одновременно не зажгутся

забыл про делей
TRISBbits.TRISB4=0;
PORTBbits.RB4=1;
__delay_ms(100);
TRISBbits.TRISB4=1;
TRISBbits.TRISB5=0;
PORTBbits.RB5=1;
__delay_ms(100);
TRISBbits.TRISB5=1;

кстати… неудобные посты… да и вообще все мои посты -можете удалить

Вы не объяснили назначение регистров,какой же это урок для начинающих?
TRIS – регистр выбора направления данных в каналах порта ввода/вывода, если соответствующий бит регистра «0», то линия вывода работает на выход, если «1» то на вход. По умалчиванию порт настроен на вход.
PORT – регистр порта , считывает логическую информацию с выводов порта.

Во первых, я нигде не заявлял, что уроки эти для начинающих.
1 предъява не принимается.
Назначение данного регистра очевидна и мы в этом убедились практически.

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

Так как мне будет для работы необходим другой контроллер — PIC16F73, то и эту программу я переписала для него (пока для части ног портов B и C потому что в дальнейшей работе будут задействованы именно они) — заодно для проверки работоспособности имеющихся у меня контроллеров вообще (так как более сложный проект сразу не получился).
Резисторы в вашей схеме чуть увеличила — поставила 270 Ом. Плюс ещё добавила светодиод с сопротивлением 330 Ом непосредственно на питание (между + и — на входе).
И столкнулась с неожиданными для меня явлениями.
1) сразу после прошивки программы в контроллер (программатор у меня PICkit3, но не фирменный. Но MPLab его «видит»),контроллер НЕ перезагружается и выполнение программы НЕ начинается. Хотя питание на схему программатор подаёт и после прошивки. Пробовала на нескольких экземплярах контроллеров. Может быть нужно специально подать контроллеру какой-то сигнал?
2) Если после прошивки питание от программатора отключить и подать иное внешнее питание, то выполнение программы начинается, но бесконечный цикл выполняется не бесконечно, а несколько раз (от 1-2-3 — чаще всего до нескольких десятков изредка). Т.е. огоньки пробегают несколько раз и больше не бегут — гаснут, хотя питание по прежнему подано. От чего именно зависит кол-во повторений так и не поняла. Думала, что от конкретного экземпляра контроллера, но многократные повторения с разными экземплярами контроллеров показали, что не только от этого.
3) После того как огоньки погасли, снятие и повторная подача напряжения далеко не всегда приводит к тому, что они снова побегут. Чаще всего они НЕ бегут. Что приводит к мысли, что контроллер как-то испортился. Но через некоторое время (проведённое контроллером при выключенном питании) часто снова начинают бежать.

Читайте также:  светодиод сам включается в темноте

Что же это за проблемы? И как их решить?? Особенно
волнуют 2 и 3.
Всё имеющиеся у меня контроллеры «дохлые»?
Что-то не так с питанием? Источник даёт недостаточный ток питания? Пробовала USB порт компьютера и блок питания зарядного устройства (который вроде может выдавать до 1А).
Может велико напряжение питания? Оба доступных мне внешних источника, судя по мультиметру, выдают напряжение 6В. (А по инструкции к контроллеру максимальное напряжение питания — 5.5). Программатор при установке в MPLab 5В выдаёт тоже 6В по мультиметру. Поэтому при прошивке ставлю в настройках 4.5В, тогда на выходе на контроллер намеревается 5.5В.

Посоветуйте пожалуйста мне что-нибудь…

Елена, не превышайте напряжения питания выше 5 В. Если внешний кварц — проверте генерацию, не срывается ли? Сложно давать советы более детальные не видя схему и текст программы.

Подскажите зачем с портом А при инициализации делать такие финты:
TRISA &=

0x03;
Я так понимаю что это:
1. сначала инвертирует (

0x03) и мы получаем: 1111 1100.
2. TRISA после любого ресета имеет 00011111 (так как порт имеет 5ть выводов)
3. Далее мы делаем поразрядное И и записываем в TRISA — таким образом насильно записываем в два младших 00, и получаем 0x1C в регистре. Это можно сделать и сразу: TRISA = 0xFC (TRISA = 0x1C).
PORTB — тоже. Но там после включении питания состояние неопределенно и логически было бы его обнулить.
После других ресетов состояние портов не меняется и после &= в PORTA мы не меняем 2, 3, 4 бит но насильно сбиваем в 0 младшие, которые используем. В данной схеме это не нужно, но на будущее это хороший трюк. Но зачем это делать с TRISA, и почему мы не делаем єто с PORTB?
Если мое предположение с сохранением предыдущего состояния верно,то: зачем делать инвертирование?

Компилятор ругается: Unable to resolve identifier __delay_ms
помогает следующая строка:
#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))

Бегущие огни на светодиодах своими руками

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

На этом рисунке изображена схема бегущих огней на светодиодах.

Схема бегущих светодиодных огней на микросхеме NE555, CD4017, CD4022

Устройство состоит из двух микросхем, принцип работы очень простой. Задающий генератор импульсов выполнен на универсальной микросхеме NE555. Сигнал с генератора поступает на вход двоичного счетчика дешифратора CD4017 или CD4022 эти микросхемы аналогичные и полностью взаимозаменяемые. Микросхема имеет 10 выходов, к которым подключены светодиоды. При подаче тактовых импульсов с генератора импульсов на вход счетчика происходит последовательное переключение между выходами микросхемы.

Светодиоды зажигаются в строгой последовательности от 1 до 10 и поэтому получается эффект бегущих огней. Скорость переключения светодиодов регулируется за счет изменения частоты задающего генератора импульсов подстроечным резистором P1. Напряжение питания светодиодов устанавливается подбором сопротивления резистора R1. Схема питается напряжением от 5 до 15 вольт. Так же обратите внимание на нумерацию светодиодов на схеме. Если вы хотите, чтобы светодиоды зажигались один за другим, то разместите их по порядку указанном на схеме.

На этом рисунке изображена печатная плата бегущих светодиодных огней на двух микросхемах.

Печатная плата бегущих светодиодных огней на двух микросхемах своими руками

Детали устройства легко помещаются на печатной плате размером 65х45 мм. Микросхемы для удобства я установил в DIP панельки, стоят копейки, в случае замены микросхемы не надо ничего паять.

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

Хочу заострить ваше внимание на том, что если будете ставить разноцветные светодиоды. На один канал можно ставить светодиоды, только одного цвета. Все потому, что у разноцветных светодиодов разное сопротивление и поэтому будет светиться только, тот у которого меньшее сопротивление. Конечно можно это дело исправить, если заменить резистор R1 перемычкой, а на каждый светодиод поставить отдельный резистор. Тогда все светодиоды будут светиться, как надо.

Моей задачей было собрать автономное, карманное устройство, которое будет служить световым дополнением к музыкальному «Бумбоксу», поэтому светодиоды и плату с батарейкой, аккуратно разместил в пластиковом корпусе от электромагнитного реле. Светодиоды залил термо клеем. Таким образом приклеил печатную плату. Поставил выключатель и один диод IN4007 для защиты устройства от переполюсовки.

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

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

В данной схеме хорошо работают практически любые транзисторы структуры n-p-n например: BD139, TIP41C, MJE13006, MJE13007, MJE13008, MJE13009, КТ815, КТ805, КТ819 и другие аналогичные подберите в зависимости от требуемой нагрузки. Все транзисторы надо закрепить на радиаторе, коллекторы транзисторов по схеме соединяются вместе, поэтому изолировать от радиатора не надо. Резисторы R1, R2, R3, R4, R5, R6, R7, R8, R9, R10 подключите к выходам микросхемы. Питание схемы возьмите от общего источника питания.

Радиодетали для сборки бегущих огней на светодиодах

  • Микросхема NE555
  • Микросхема CD4017 или CD4022
  • Подстроечный резистор P1 на 50К
  • Резистор R1 1К, R2 22К
  • Конденсатор С1 220 мкФ 25В, С2 10 мкФ 25В
  • Светодиоды с напряжением питания от 2 до 12В

Друзья, желаю вам удачи и хорошего настроения! До встречи в новых статьях!

Рекомендую посмотреть видеоролик о том, как сделать бегущие огни на светодиодах


Простейшие бегущие огни всего на одной микросхеме без программирования

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

Необходимые материалы и приспособления:

Схема и принцип действия

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

Изготавливаем простые бегущие огни

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

Разгибаем усики светодиодов, и вставляем их в отверстия пластика.

Контакты светодиодов находящиеся с одной из сторон припаиваем к перемычке.

Выступающие за перемычку контакты отрезаем.

Далее производим сборку схемы по рисунку.

Подаем напряжение от 5 до 12 Вольт на выводы схемы. Для этого можно использовать блок питания или обычные батарейки и аккумуляторы. Наслаждаемся результатом.

Рекомендации

Если у вас под рукой только обычные пальчиковые батарейки – по 1,5 Вольта, для достижения необходимого напряжения их можно объединить. К плюсу одной батарейки подключаем минус второй, к плюсу второй – минус третьей и так далее. Это называется – последовательное соединение. Для достижения напряжения 6 Вольт, нам необходимо соединить последовательно 4 батарейки по 1,5 Вольта.

Читайте также:  Простая рация на трех транзисторах

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

В качестве микросхемы IC 4017, можно использовать отечественный аналог – микросхему К561ИЕ8. Мигающий светодиод лучше использовать красного цвета – у него выше напряжение импульса. Двухцветные мигающие светодиоды использовать нельзя, с ними схема работать не будет.

Смотрите видео

Техника безопасности:

    Обязательно соблюдайте полярность подключения устройства.

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

  • Перед использованием всю схему бегущих огней необходимо спрятать в какой-либо корпус или заизолировать во избежание коротких замыканий.
  • Простейшие бегущие огни всего на одной микросхеме без программирования

    Теги статьи:Добавить тег

    Бегущий огонь с тенью.

    Автор: Dimasik_R_M, diman_makar@mail.ru
    Опубликовано 30.08.2016
    Создано при помощи КотоРед.

    Как говорит знаменитая пословица: готовь сани летом.

    Хоть до нового года еще далеко, но начинать готовиться уже можно.


    Увидев однажды гирлянду “тающая сосулька”, захотелось сделать нечто подобное. Итак, поехали:

    Бегущие огни, собранные на транзисторах или микросхемах (схемы найдены на просторах интернета), не давали желаемого результата: во первых, между остаточной тенью движения огня должен быть промежуток времени, например 2-3 сек, а также, плавно затухающая тень.

    Не долго думая, набросал схемку, устройство смоделировано в Proteus 8 :

    Устройство состоит из:

    1) Генератор импусов собран на микросхеме U2 (таймер NE555) с минимальной обвязкой, которая работает в режиме мультивибратора (астабильный режим работы):

    подробнее можно ознакомитьтся тут

    Генератор вырабатывает импульсы с частотой 10Гц, частота которого и влияет на скорость перемещения бегущего огня.

    2) Блок запрета счета, собранный на микросхеме U3 (таймер NE555), работающий в монастобильном режиме (нужен импульс для запуска таймера), он и обеспечивает пауза между бугущим огнем.

    3) Блок перемещения бегущего огня собран на микросхеме К176ИЕ8, аналог CD4017 (подробнее о работе тут)

    4) Блок индикации, в состав которого входят светодиод D1-LED, токоограничивающий резистор R1, транзистора Q1 в качестве усилителя тока, сопративление R2 для ограничения скорости разрядки конденсатора, конденсатор С2 для планового затухания светодиода, и диода D1 для предотвращения разряда конденсатора через выводы микросхемы. Скорость затухания можно подобрать изменяя сопротивление R2 и ёмкость конденсатора C2.

    Демонстрация работы устройства в симуляторе:

    Описание работы устройства.

    При подачи питания на устройство, микросхема U2 (таймер NE555) с обвязкой начинает генерировать импульсы с частотой около 10Гц (работает в режима мультивибратора), импульсы подаются на тактовый вход (14) десятичного счетчика-делителя U1- к176ИЕ8 (CD4017), для разрешения счета на выводе 15 микросхемы U1 должен присутсвовать низкий уровень, который и выдает микросхема U3 (таймер NE555), в таком состоянии счетсик U1 проводит счет и состояние высокого уровня перемещается с Q0 по Q9 (зажигая светодиоды с 1ого по 8ой), при появлении достижения максимального значения на выводе 11 – Q9 микросхемы U1 появляется высокий уровень, который в свою очередь через цепочку R23, D21, Q11 запускает таймер, собранный на микросхеме U3 (таймер NE555), при запуске таймера на входе 15 микросхемы U1 устанавливается высокий уровень, тем самым запрещая дальнейший счет микросхемы U1, через 3 секунды на выводе микросхемы U3 устанавливается низкий уровень, тем самым разрешая дальнейший счет микросхеме U1, и счет начинается с самого начала, зажигая поочереди светодиоды. Блок индикации (описание выше) осуществляет быстрое зажигание и плавное гашение светодиодов (создавая затухающую тень).

    Устройство в железе.

    Поэкпеременировав, решил собрать всесто обычного столбца светодиодов настольную новогоднюю ёлку (осталось украсить)

    Максимальное потребление схемы при питании +5в составляет 18,71 мА, работоспособность схемы сохраняется при снижении питания до 2,7в, при этом потребление состовляет 7мА, яркость свечения, соответсенно, снижается(см.фото).

    Печатная плата выполнена ЛУТом (плата управления и индикации), при желании легко повторяется (печатная плата прилагается).

    Микросхема К176ИЕ8(К561ИЕ8, CD4017) – 1шт

    Микросхема NE555(1006ВИ1) – 2шт

    Диоды 1N4148 – 9шт (любые маломощьные)

    Транзисторы ВС847 – 9шт (любые NPN какие есть в закромах, даже кт315)

    Сопротивление 10 K – 3шт

    Сопротивление 300ом – 15шт

    Сопротивление 98 К – 8шт

    Сопративление 100К – 1шт

    Сопротивление 1к – 1шт

    Конденсаторы 4,7мкФ – 9шт

    Конденсатор 22мкФ – 1шт.

    Конденсаторы 0,1 мкФ – 2шт (можно не устанавливать)

    Фольгированный текстолит – 60мм х 40мм – 1шт, 55мм х 60мм – 1шт.

    Демонтсрация работы устройства:

    PS: Конечно можно собрать подобную конструкцию на микроконроллере, но для начинающих это целая проблема (нужен программатор и т.д.) ну, и, конечно же, куда девать старый хлам, который и выбросить жалко, и девать некуда, стоимость данной конструкции-сущие копейки.

    Урок 9 – Бегущие огни на Arduino UNO

    Продолжаем уроки в которых мы используем Arduino, резисторы и светодиоды. Мы уже делали Светофор, полицейский стробоскоп, отправляли сигнал sos и пр.
    Сегодня мы будем делать бегущие огни. Бегущие огни уже были в другом блоке уроков на Arduino: Урок 2 — Подключаем сдвиговый регистр 74НС595 к Arduino. «Бегущие» огни
    При подключении к сдвиговому регистру всего при подключении по 3 проводам мы можем управлять 8 светодиодами. Но вот чтобы подключить 10 светодиодов, нужно подключать 2 сдвиговых регистра и использовать всего 2 выхода из 8 доступных в регистре. Это не очень логично. Иногда бывает проще подключить к плате Arduino нужное количество светодиодов. Что я и планирую сделать. В примере будет 5 самых простых режимов бегущих огней на Arduino.

    Для урока нам понадобится:

    • Arduino UNO или Arduino Nano
    • Плата макетная беспаечная
    • Резисторы 220 ОМ
    • Соединительные провода папа-папа
    • Светодиоды 3 или 5 мм.

    Подключим наши 10 светодиоды вот по такой схеме.

    В живую будет выгладить так.

    Вы наверное скажите что схема не правильная и к пинам 0 и1 подключать не желательно. Вот именно не желательно, но можно если не использовать Serial port. А для облегчения кода нам будет очень удобно использовать данные пины. При загрузки кода в Ардуину светодиоды подключенные к 0 и 1 выходам будут мигать. Также при работе нашего скетча. Вместе с данными светодиодами на плате Arduino UNO буду включаться светодиода RX и TX. Но как я говорил в данном случаи ни чего старшного в этом нет.

    Описывать все режимы не буду. В видео немного поясняю. Немного корява и может не совсем понятно. Но я думаю по комментариям к коду можно разобраться.

    Первый пример бегущих огней на Arduino, последовательное включение одного светодиода с 1 по 10. По пинам на ардуино будет с 0 по 9. Это нужно учитывать при написании кода.

    Немного изменим данный пример и сделаем 2 цикла. Получим включение всех светодиодов и выключение в обратном направлении.

    Объединив код первого и второго примера получим включение одного светодиода в прямом и обратном направлении. Во втором цикли ставим j-2, потому что у нас пины начинаются с 0, а число светодиодов с 1 до 10. Также чтобы 10 светодиод не включался 2 раза вычитаем еще 1.

    Сходящиеся огни. Тут все по аналогии. Добавим переменную в которой будим рассчитывать половину светодиодов. Поэтому количество светодиодов должно быть четным. Либо что-то делать с центральным светодиодом. Можно оставить его постоянно включенным или наоборот всегда включенным.

    И по аналогии делаем расходящиеся огни.

    Как видно без использования сдвигового регистра код получается намного проще и меньше строчек. Один минус количество ограничено. Максимум 20 светодиодов можно подключить к Arduino Uno и 22 к Arduino NANO. Думаете что я ошибся с цифрами. Подписывайтесь на канал. И в следующем уроке в данном блоке уроков я покажу как можно это реализовать.

    Подписывайтесь на мой канал на Youtube и вступайте в группы в Вконтакте и Facebook.

    Спасибо за внимание!

    Понравилась статья? Поделитесь ею с друзьями:

    Ссылка на основную публикацию