Бегущие огни

Программа

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

Тексты наших программ будут состоять из 3 основных частей: описание микроконтроллера и типов переменных, аппаратно-зависимая процедура начальной инициализации микроконтроллера, собственно алгоритм бегущих огней.

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

Кроме того, я буду отдельно выделять описание варианта для компилятора СС5Х, так это специфический компилятор. Кроме того,здесь используется “ручное управление” с помощью логических операций, без помощи со стороны компилятора.

Схемы стоп-сигнала “бегущие огни” своими руками на машине

Мигающие огни реализованы на микросхеме счетчике К561ИЕ8. По сути это десятичный счетчик, то есть который считает до 10, а потом “замирает”, либо начинает все сначала. Так как в нашем случае организована обратная связь, то все будет повторяться снова и снова. Вместо нашей микросхемы можно взять импортный аналог CD4017. Примечателен тот факт, что эта микросхема имеет даже те же самые выводы для обеспечения своей работоспособности, что и отечественная. Очевидно в свое время наши содрали микросхему один к одному. Но это нам даже под руку! Так вот, светодиоды на данной схеме будут загораться от HL1- HL2  до HL11 – HL12, попарно, так подключены параллельно. Как только загорается следующая пара светодиодов, предыдущая гаснет, как только гаснет пара HL11- HL12, то вновь зажигается HL1- HL2 и так до бесконечности, пока мы не отключим питание (или не сломается наша схема…). Сигнал с ножки 5 идет на ножку 15 и именно из-за этого цикл повторяется. В итоге, такое поочередное включение огней на выходе счетчика будет эмитировать бегущие огни на стоп-сигнале. Светодиоды подключены попарно так как предполагается, что бегущие огни будут перемещаться от центра стоп-сигнала к его краям. В этом случае в центре размещается пара HL1- HL2,  далее по краям пара HL3-4, потом HL5-6, HL7-8, HL9-10, HL11-12. При таком монтаже светодиодов получиться эффект, когда свет перемещается от центра к концам, как мы уже сказали. Если пофантазировать, то можно придумать и свой какой-то алгоритм перемещения бегущих огней. 

 Первоначально мы упомянули лишь о применяемом счетчике, однако здесь используются две микросхемы. Одна из которых мультивибратор DD1 К561ЛА7, она задает импульсы с какой частотой одна пара  светодиодов будет загораться за другой. Изменяя емкость конденсатора C1 вы можете менять время переключения между парами светодиодов в стоп – сигнале. Вторая микросхема-счетчик DD2 К561ИЕ8 или CD4017. Это микросхема по факту поступления на нее импульсов на 14 ногу перебирает свои выходы (3, 2, 4, 7, 10, 1, 5, 6, 9, 11). Заметьте, что микросхема имеет 10 выходов, а у нас задействовано только 6, а вот с 7 уже все идет на 15 ножку для зацикливания. То есть при необходимости можно увеличить число огней последовательно загорающихся друг за другом до 9, а 10 канал будет идти на 14 ножку.

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

Если говорить о питании, то в серии микросхем начинающейся на 5 уже встроен стабилизатор, поэтому они могут работать в довольно значительном диапазоне, до 14 вольт. Для верности можно использовать LM 7809, как микросхему стабилизатор, для питания всей схемы. Они снизит напряжение до 9 вольт, а потом стабилизаторы снизят напряжение в микросхемах до 5 вольт. Ведь именно на этом напряжении работает транзисторная логика микросхем. Конденсаторы С2 и С3 являются здесь фильтрами питания, при установке в машине их применение не особо целесообразно, то есть можно без них!

Принципиальная схема стоп-сигнала с функцией “бегущие огни”. Микросхема может быть заменена на CD4017, при этом маркировка выводов при присоединении сохраняется один к одному. Если вам надо будет использовать все выходы микросхемы, то подключаем все следующим образом…

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

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

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

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

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

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

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

Рисунок 2

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

https://youtube.com/watch?v=rCA8XBqbGQc

Инструкция по сборке

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

Последовательность выполнения работы

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

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

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

Бегущие огни на 10 светодиодах

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

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

Принципиальная схема бегущих огней

Данное устройство, основу которого составляют две микросхемы и десять транзисторов, условно можно разделить на три функциональных блока: задающий генератор, блок управления и схему индикации. Как и большинство подобных конструкций, предлагаемый модуль изготовлен с использованием счетчиков импульсов. Задающий генератор, формирующий импульсы управления, выполнен на микросхеме IC2, которая включена по схеме нестабильного мультивибратора. При этом рабочая частота задающего генератора определяется величиной сопротивления резистора R1 и значением емкости конденсатора С1. При использовании данных элементов с указанными на принципиальной схеме параметрами частота следования управляющих импульсов будет около 15 ГЦ. С выхода задающего генератора (вывод IC2/3) управляющие импульсы подаются на блок управления, основу которого составляет микросхема IC1, являющаяся счетчиком импульсов. На десяти выходах этой микросхемы обеспечивается последовательное формирование напряжения логической единицы. Первоначально на всех выходах счетчика импульсов присутствуют напряжения логического нуля. Другими словами, уровень напряжения на каждом из выходов микросхемы IC1 (выводы IC1/1-7.9-11) будет низким и недостаточным для того, чтобы открылся транзистор, база которого подключена к соответствующему выходу.

При поступлении от задающего генератора первого управляющего импульса на вход счетчика CLK (вывод IC1/14) на выходе DO0 (вывод IC1/3) сформируется напряжение логической единицы, то есть на этот выход будет подано напряжение более высокого уровня. Таким образом, на одном из выходов блока управления появится управляющее напряжение, которое подается на соответствующий вход блока индикации. В рассматриваемой схеме блок индикации выполнен на транзисторах Т1-Т10 и светодиодах D1-D10.

С выхода DO0 (вывод IC1/3) напряжение высокого логического уровня поступает на базу транзистора Т10 и обеспечивает его отпирание. В результате через открытый переход «коллектор-эмиттер» транзистора Т10 анод светодиода LD10 оказывается подключенным к плюсу источника питания, что приводит к свечению этого диода. Поступление на вход микросхемы IC1 следующего управляющего импульса от задающего генератора обеспечит формирование напряжения логической единицы на выходе DO1 (вывод 1С 1/2). При этом на выходе DO0 вновь появится напряжение низкого логического уровня, транзистор Т10 закроется, а светодиод LD10 погаснет. В то же время транзистор Т9 откроется, а диод LD9 начнет светиться.

При подаче на вход счетчика IC1 непрерывной последовательности из десяти управляющих импульсов напряжение высокого логического уровня будет поочередно формироваться на выходах DO0-DO9, чем будут обеспечены последовательные вспышки светодиодов от LD10 до LD1. Если эти светодиоды расположить один возле другого, то, как уже отмечалось, благодаря инерции нашего зрения, создастся видимость того.что светящийся диод «бежит» по цепочке. После того как на вход счетчика будет подана следующая последовательность из десяти управляющих импульсов, произойдет повторный цикл поочередных вспышек светодиодов. И так будет продолжаться до отключения питания.Остается добавить, что использование в данной схеме транзисторов Т1-Т10 в качестве управляющих работой светодиодов ключей обусловлено тем, что токовая нагрузка микросхемы IC1 весьма незначительна. Поэтому непосредственное подключение отдельных светодиодов к ее выходам может привести к неисправности микросхемы

Сердце бегущих огней

То, что AVR микроконтроллеры Atmel обладают высокими эксплуатационными характеристиками – всем известный факт. Их многофункциональность и лёгкость программирования позволяет реализовывать самые необыкновенные электронные устройства. Но начинать знакомство с микроконтроллерной техникой лучше со сборки простых схем, в которых порты ввода/вывода имеют одинаковое назначение.

Одной из таких схем являются бегущие огни с выбором программ на ATtiny2313. В данном микроконтроллере есть всё необходимое для реализации подобных проектов. При этом он не перегружен дополнительными функциями, за которые пришлось бы переплачивать. Выпускается ATtiny2313 в корпусе PDIP и SOIC и имеет следующие технические характеристики:

  • 32 8-битных рабочих регистра общего назначения;
  • 120 операций, выполняемых за 1 тактовый цикл;
  • 2 кБ внутрисистемной flash-памяти, выдерживающей 10 тыс. циклов запись/стирание;
  • 128 байт внутрисистемной EEPROM, выдерживающей 100 тыс. циклов запись/стирание;
  • 128 байт встроенной оперативной памяти;
  • 8-битный и 16-битный счётчик/таймер;
  • 4 ШИМ канала;
  • встроенный генератор;
  • универсальный последовательный интерфейс и прочие полезные функции.

Энергетические параметры зависят от модификации:

  • ATtiny2313 – 2,7-5,5В и до 300 мкА в активном режиме на частоте 1 МГц;
  • ATtiny2313А (4313) – 1,8-5,5В и до 190 мкА в активном режиме на частоте 1 МГц.

В ждущем режиме энергопотребление снижается на два порядка и не превышает 1 мкА. Кроме этого данное семейство микроконтроллеров обладает целым рядом специальных свойств. С полным перечнем возможностей ATtiny2313 можно ознакомиться на официальной страничке производителя www.atmel.com.

Скетч и схема ленивого (вежливого) указателя поворота на Arduino

Итак, о применении Arduino в качестве головного устройства в качестве ленивых поворотников можно поспорить, так как это тоже не совсем идеальное решение, имеющее свои минусы. Скажем необходимо будет постоянное питание после включения зажигания, дабы обеспечить быстродействие, необходимо будет подключение силовых цепей. При этом сама обвязка из лишних радиодеталей здесь в принципе ни к чему, ведь в этом случае можно запрограммировать просто микроконтроллер и применять только его. Но этот минус является и плюсом, ведь позволить программировать Ардуино может себе каждый, у кого он есть, а для микроконтроллеров потребуется еще и программатор. Как раз написание программы и будет одной из самых сложных задач. Здесь новичку придется потратить не один час своего свободного времени и изучения работы алгоритмов, но благо есть интернет и есть мы. Поэтому вот скетч.

Int switchPinR=8; int switchPinL=7; int ledPinR=11; int ledPinL=12; boolean ledOn = false; int i=0; int z=0; void setup() { // put your setup code here, to run once: pinMode(switchPinR, INPUT); pinMode(switchPinL, INPUT); pinMode(ledPinR, OUTPUT); pinMode(ledPinL, OUTPUT); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: //2 label: if (digitalRead(switchPinR) == HIGH && digitalRead(switchPinL) == HIGH) { digitalWrite(ledPinR, HIGH); digitalWrite(ledPinL, HIGH); i=0; while (i=7) { break; } } } else { digitalWrite(ledPinR, LOW); digitalWrite(ledPinL, LOW); z=0; } //зацикливание аварийки if (digitalRead(switchPinR) == HIGH && digitalRead(switchPinL) == HIGH) {goto label;} //Правый поворотник. if (digitalRead(switchPinR) == HIGH) { digitalWrite(ledPinR, HIGH); i=0; while (i=7) { break; } } } else { digitalWrite(ledPinR, LOW); z=0; } //Левый поворотник. if (digitalRead(switchPinL) == HIGH) { digitalWrite(ledPinL, HIGH); i=0; while (i=7) { break; } } } else { digitalWrite(ledPinL, LOW); z=0; } } }

Вкратце можно резюмировать, что в скетче имеется 2 входа и 2 выхода. При этом при входе положительного, то есть высокого уровня сигнала на входе (8,7), мы получаем определенное количество морганий (z или i) на соответствующем выходе (11,12). Если кратко, то как-то так

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

Вначале отрабатывают левый и правый указатель, затем включается и аварийная световая сигнализация. Связано это с тем, что она может включиться только при условии высокого входа одновременно на входе 8 и 7. А это условие исполнится только на второй цикл, ведь нажать одновременно две кнопки разом не получится просто физически. Быстродействие микроконтроллера позволит считать высокий выход с какой-то кнопки быстрее и решит, что это все-таки условие срабатывания указателя поворота, а не аварийная сигнализация. Хотя не стоит об этом заморачиваться, разве что сказать спасибо на дороге будет проблематично

Еще одной особенностью программы является несколько необычный выход на аварийную сигнализацию. Вначале отрабатывают левый и правый указатель, затем включается и аварийная световая сигнализация. Связано это с тем, что она может включиться только при условии высокого входа одновременно на входе 8 и 7. А это условие исполнится только на второй цикл, ведь нажать одновременно две кнопки разом не получится просто физически. Быстродействие микроконтроллера позволит считать высокий выход с какой-то кнопки быстрее и решит, что это все-таки условие срабатывания указателя поворота, а не аварийная сигнализация. Хотя не стоит об этом заморачиваться, разве что сказать спасибо на дороге будет проблематично.

Просмотры

  • Простой и надёжный металлоискатель своими руками – 201 864 просм.
  • Ремонт микроволновой печи своими руками – 187 676 просм.
  • Простой металлоискатель своими руками – 183 512 просм.
  • Зарядное из компьютерного блока питания. – 180 961 просм.
  • Автомобильные зарядные устройства. Схемы. Принцип работы. – 155 864 просм.
  • Простая и надёжная схема терморегулятора для инкубатора – 144 365 просм.
  • Простое автоматическое зарядное устройство – 110 688 просм.
  • Самогонный аппарат своими руками – 109 811 просм.
  • Как самому поменять разъём USB? – 102 458 просм.
  • Разнообразие простых схем на NE555 – 101 969 просм.

Скетч

p070_running_bar.ino
// светодиодная шкала подключена к группе пинов расположенных
// подряд. Даём понятные имена первому и последнему пинам
#define FIRST_LED_PIN  2
#define LAST_LED_PIN   11
 
void setup()
{
  // в шкале 10 светодиодов. Мы бы могли написать pinMode 10
  // раз: для каждого из пинов, но это бы раздуло код и
  // сделало его изменение более проблематичным.
  // Поэтому лучше воспользоваться циклом. Мы выполняем
  // pinMode для (англ. for) каждого пина (переменная pin)
  // от первого (= FIRST_LED_PIN) до последнего включительно
  // (<= LAST_LED_PIN), всякий раз продвигаясь к следующему
  // (++pin увеличивает значение pin на единицу)
  // Так все пины от 2-го по 11-й друг за другом станут выходами
  for (int pin = FIRST_LED_PIN; pin <= LAST_LED_PIN; ++pin)
    pinMode(pin, OUTPUT);
}
 
void loop()
{
  // получаем время в миллисекундах, прошедшее с момента
  // включения микроконтроллера
  unsigned int ms = millis();
  // нехитрой арифметикой вычисляем, какой светодиод
  // должен гореть именно сейчас. Смена будет происходить
  // каждые 120 миллисекунд. Y % X — это остаток от
  // деления Y на X; плюс, минус, скобки — как в алгебре.
  int pin = FIRST_LED_PIN + (ms  120) % 10;
  // включаем нужный светодиод на 10 миллисекунд, затем —
  // выключаем. На следующем проходе цикла он снова включится,
  // если гореть его черёд, и мы вообще не заметим отключения
  digitalWrite(pin, HIGH);
  delay(10);
  digitalWrite(pin, LOW);
}

Описание микроконтроллеров и типов переменных

Если вы еще не прочитали статьи о портах ввода-вывода, самое время сделать это

Так как я буду считать, что вы знаете, как устроены и работают порты.

В целом, для всех микроконтроллеров эта часть выглядит практически одинаково. Вот пример для STM8

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

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

Аналогично выглядит и описание для AVR, только адреса мы задаем по другому, например

__attribute__((io(0x28)))

И для PIC

__at(0x007)

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

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

Особый случай, CC5X

Этот компилятор не позволяет (я уже говорил об этом раньше) описывать битовые поля с длинной отличной от одного бита. Поэтому и описание будет совсем иным

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

А для упрощения текста программы мы создаем две вспомогательные функции. GetRunLed (макрос), которая возвращает текущее состояние выходных выводов порта. SetRunLed, которая позволяет задать состояние выходных выводов порта. В этих функциях мы используем логические операции для манипуляции битами.

Аrduino и промышленные решения

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

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

В конструкции рекламных дисплеев больших габаритов применяют сверхъяркие светодиоды со световым потоком 70-100 Лм.

В одноцветных (монохромных) светодиодных матрицах у каждого элемента существует два состояния: включено/выключено. Для передачи полноцветной информации используют RGB светодиоды с ШИМ-контроллерами управления яркостью для каждого цвета.

Пояснения к коду

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

    • Инициализировать переменную-счетчик, присвоив ей первоначальное значение. В нашем случае:

    • Указать условие, до достижения которого будет повторяться цикл. В нашем случае:

    • Определить правило, по которому будет изменяться счетчик. В нашем случае (см. ниже об операторе ).
  • Например, можно сделать цикл . В этом случае:

    • Переменной присваивается значение 10
    • Это значение удовлетворяет условию

    • Поэтому блок кода, помещенный в цикл, выполняется первый раз
    • Значение уменьшается на единицу, согласно заданному правилу, и принимает значение 9
    • Блок кода выполняется второй раз.
    • Всё повторяется снова и снова вплоть до значения равного 0
    • Когда станет равна 0, условие не выполнится, и выполнение цикла закончится
    • Контроллер перейдет к коду, следующему за циклом

  • Помещайте код, который нужно зациклить, между парой фигурных скобок , если в нем больше одной инструкции.
  • Переменная-счетчик, объявляемая в операторе , может использоваться внутри цикла. Например, в данном эксперименте последовательно принимает значения от 2 до 11 и, будучи переданной в , позволяет настроить 10 портов одной строкой, помещенной в цикл.
  • Переменные-счетчики видны только внутри цикла. Т.е. если обратиться к до или после цикла, компилятор выдаст ошибку о необъявленной переменной.
  • Конструкция в пояснении выше не является уравнением! Мы используем оператор присваивания для того, чтобы в переменную поместить значение, равное текущему значению , уменьшенному на 1.
  • Выражение — это т.н. оператор инкремента, примененный к переменной . Эта инструкция даст тот же результат, что

  • Аналогично инкременту работает оператор декремента , уменьшающий значение на единицу. Подробнее об этом в статье про .
  • Тип данных используют для хранения целых чисел без знака, т.е. только неотрицательных. За счет лишнего бита, который теперь не используется для хранения знака, мы можем хранить в переменной такого типа значения до 65 535.
  • Функция возвращает количество миллисекунд, прошедших с момента включения или перезагрузки микроконтроллера. Здесь мы используем ее для отсчета времени между переключениями светодиодов.
  • С помощью выражения мы определяем, который из 10 светодиодов должен гореть сейчас. Перефразируя, мы определяем какой отрезок длиной в 120 мс идет сейчас и каков его номер внутри текущего десятка. Мы добавляем порядковый номер отрезка к номеру того порта, который в текущем наборе выступает первым.
  • То, что мы гасим светодиод с помощью всего через 10 мс после включения не заметно глазу, т.к. очень скоро будет вновь вычислено, какой из светодиодов включать, и он будет включен — только что погашенный или следующий.

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

Вторым проектом в серии бегущих светодиодных огней является схема с использованием счетчика CD4017 Decade Counter и 555 таймера IC.

Необходимые компоненты

1 х CD4017 декадный счетчик IC 1 х 555 таймер IC Резистор 1 x 18 кОм (1/4 Вт) 1 х 2,2 кОм резистор (1/4 Вт) Потенциометр 1 х 100 кОм 1 х 1 мкФ — 50 В конденсатор (поляризованный) Керамический дисковый конденсатор 1 х 0,1 нФ (код 100 пФ 101) 10 х 8 мм ярко-белые светодиоды 5 В блок питания

Принцип работы схемы бегущих огней на LED, используя микросхему

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

Первое, что видно на принципиальной схеме — есть две части: часть таймера 555 и часть интегрального счетчика CD4017 со светодиодами. ИС таймера 555 в этом проекте настроена как нестабильный мультивибратор.

В этом режиме он генерирует импульс, частота которого определяется компонентами R1 (2,2 кОм), R2 (18 кОм), VR1 (100 кОм) и C1 (1 мкФ). Частотой импульса можно управлять, регулируя POT 100 кОм.

Этот импульс подается на ИС счетчика декадных сигналов CD4017 в качестве его тактового входа. Понимая работу CD4017, для каждого тактового импульса, который он получает на входе тактового входа, счет увеличивается на 1, и в результате каждый выходной контакт будет ВЫСОКИМ для каждого соответствующего тактового импульса.

Так как это десятичный счетчик, мы получим счет 10, и, поскольку мы подключили ярко-белые светодиоды к выходным контактам, каждый светодиод включится, когда соответствующий контакт станет ВЫСОКИМ.

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

Поделитесь в социальных сетях:FacebookX
Напишите комментарий