Каков ток входа reset cd4026
Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y
Работоспособность сайта проверена в браузерах:
IE8.0, Opera 9.0, Netscape Navigator 7.0, Mozilla Firefox 5.0
Адаптирован для работы при разрешениях экрана от 1280х1024 и выше.
При меньших разрешениях возможно появление горизонтальной прокрутки.
По всем вопросам обращайтесь к Коту: kot@radiokot.ru
©2005-2023
Как подключить семисегментный индикатор к Arduino
В этой статье описывается схема подключения пары светодиодных семисегментных индикаторов к Arduino Uno с помощью микросхем-драйверов CD4026. При таком подходе для вывода произвольного числа используется всего 2 цифровых выхода контроллера.
Для примера будем выводить на индикаторы количество секунд, прошедших с момента начала работы.
Исходные компоненты
Для эксперимента нам понадобятся:
Принцип работы
Семисегментный индикатор — это просто набор обычных светодиодов в одном корпусе. Просто они выложены восьмёркой и имеют форму палочки-сегмента. Можно подключить его напрямую к Arduino, но тогда будет занято 7 контактов, а в программе будет необходимо реализовать алгоритм преобразования числа из двоичного представления в соответствующие «калькуляторному шрифту» сигналы.
Для упрощения этой задачи существует 7-сегментный драйвер. Это простая микросхема с внутренним счётчиком. У неё есть 7 выходов для подключения всех сегментов (a, b, c, d, e, f, g pins), контакт для сбрасывания счётчика в 0 (reset pin) и контакт для увеличения значения на единицу (clock pin). Значение внутреннего счётчика преобразуется в сигналы (включен / выключен) на контакты a-g так, что мы видим соответствующую арабскую цифру.
На микросхеме есть ещё один выход, обозначенный как «÷10». Его значение всё время LOW за исключением момента переполнения, когда значение счётчика равно 9, а его увеличивают на единицу. В этом случае значением счётчика снова становится 0, но выход «÷10» становится HIGH до момента следующего инкремента. Его можно соединить с clock pin другого драйвера и таким образом получить счётчик для двузначных чисел. Продолжая эту цепочку, можно выводить сколь угодно длинные числа.
Микросхема может работать на частоте до 16 МГц, т.е. она будет фиксировать изменения на clock pin даже если они будут происходить 16 миллионов раз в секунду. На той же частоте работает Arduino, и это удобно: для вывода определённого числа достаточно сбросить счётчик в 0 и быстро инкрементировать значение по единице до заданного. Глазу это не заметно.
Подключение
Сначала установим индикаторы и драйверы на breadboard. У всех них ноги располагаются с двух сторон, поэтому, чтобы не закоротить противоположные контакты, размещать эти компоненты необходимо над центральной канавкой breadboard’а. Канавка разделяет breadboard на 2 несоединённые между собой половины.
Далее, подключим один из драйверов в соответствии с его распиновкой
16 — к рельсе питания: это питание для микросхемы
2 «disable clock» — к рельсе земли: мы его не используем
3 «enable display» — к рельсе питания: это питание для индикатора
8 «0V» — к рельсе земли: это общая земля
1 «clock» — через стягивающий резистор к земле. К этому контакту мы позже подведём сигнал с Arduino. Наличие резистора полезно, чтобы избежать ложного срабатывания из-за окружающих помех пока вход ни к чему не подключен. Подходящим номиналом является 10 кОм. Когда мы соединим этот контакт с выходом Arduino, резистор не будет играть роли: сигнал притянет к земле микроконтроллер. Поэтому если вы знаете, что драйвер при работе всегда будет соединён с Arduino, можете не использовать резистор вовсе.
15 «reset» и 5 «÷10» пока оставим неподключенными, но возьмём на заметку — нам они понадобятся в дальнейшем
Контакты 3 и 8 на индикаторе обозначены как «катод», они общие для всех сегментов, и должны быть напрямую соединены с общей землёй.
Далее следует самая кропотливая работа: соединение выходов микросхемы с соответствующими анодами индикатора. Соединять их необходимо через токоограничивающие резисторы как и обычные светодиоды. В противном случае ток на этом участке цепи будет выше нормы, а это может привести к выходу из строя индикатора или микросхемы. Номинал 220 Ом подойдёт.
Соединять необходимо сопоставляя распиновку микросхемы (выходы a-g) и распиновку индикатора (входы a-g)
Повторяем процедуру для второго разряда
Теперь вспоминаем о контакте «reset»: нам необходимо соединить их вместе и притянуть к земле через стягивающий резистор. В последствии, мы подведём к ним сигнал с Arduino, чтобы он мог обнулять значение целиком в обоих драйверах.
Также подадим сигнал с «÷10» от правого драйвера на вход «clock» левого. Таким образом мы получим схему, способную отображать числа с двумя разрядами.
Стоит отметить, что «clock» левого драйвера не стоит стягивать резистором к земле, как это делалось для правого: его соединение с «÷10» само по себе сделает сигнал устойчивым, а притяжка к земле может только нарушить стабильность передачи сигнала.
Железо подготовленно, осталось реализовать несложную программу.
Программирование
#define CLOCK_PIN 2 #define RESET_PIN 3 /* * Функция resetNumber обнуляет текущее значение * на счётчике */ void resetNumber() { // Для сброса на мгновение ставим контакт // reset в HIGH и возвращаем обратно в LOW digitalWrite(RESET_PIN, HIGH); digitalWrite(RESET_PIN, LOW); } /* * Функция showNumber устанавливает показания индикаторов * в заданное неотрицательное число `n` вне зависимости * от предыдущего значения */ void showNumber(int n) { // Первым делом обнуляем текущее значение resetNumber(); // Далее быстро «прокликиваем» счётчик до нужного // значения while (n--) { digitalWrite(CLOCK_PIN, HIGH); digitalWrite(CLOCK_PIN, LOW); } } void setup() { pinMode(RESET_PIN, OUTPUT); pinMode(CLOCK_PIN, OUTPUT); // Обнуляем счётчик при старте, чтобы он не оказался // в случайном состоянии resetNumber(); } void loop() { // Получаем количество секунд в неполной минуте // с момента старта и выводим его на индикаторы showNumber((millis() / 1000) % 60); delay(1000); }
Результат
Подключаем контакт 2 с Arduino к контакту clock младшего (правого) драйвера, контакт 3 — к общему reset’у драйверов; разводим питание; включаем — работает!
Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 4.0 International
Производные работы должны содержать ссылку на http://wiki.amperka.ru, как на первоисточник, непосредственно перед содержимым работы.
Вики работает на суперском движке DokuWiki.
дисплеи-и-индикаторы/7-сегментный-индикатор.txt · Последние изменения: 2021/08/20 13:03 — mik
Инструменты страницы
- Показать исходный текст
- История страницы
- Ссылки сюда
- Наверх
Универсальный четырехразрядный секундомер (CD4001, CD4026)
Универсальный самодельный прибор, позволяющий измерить какой-то промежуток времени, точно, с точностью до сотыхдолей секунды. Вот для такого случая как раз и пригодится именно такой секундомер. Он четырехразрядный, позволяет измерять время от 0,01 секунды до 99,99 секунд. Питается прибор от электросети.
Временной интервал может быть подан на вход прибора как положительный импульс, длительность которого будет измерена. Или же может быть сформирован при помощи двух кнопок «Пуск» и «Стоп». В первом случае отсчет времени начинается по фронту входного импульса и заканчивается по его спаду.
Во втором случае, отсчет времени начинается с нажатием кнопки «Пуск», а завершается с нажатием кнопки «Стоп». Еще есть кнопка «Сброс» для обнуления показаний.
Принципиальная схема
Схема секундомера построена на основе микросхем CD4026, которые представляют собой десятичные счетчики с выходом на семисегментный светодиодный индикатор.
Рис. 1. Принципиальная схема четырехразрядного секундомера.
Микросхемы CD4026 аналогичны отечественным микросхемам К176ИЕ4, но аналогами их не являются, они аналогичные по действию, но имеют существенные отличия.
В отличие от микросхем К174ИЕ4, микросхемы CD4026 могут работать только с индикаторами с общим катодом, но есть важное преимущество, у них счетный вход, выполнен по схеме триггера Шмитта, да еще и с блокировкой единицей, подаваемой на вывод N. Плюс, схема гашения индикаторов подачей нуля на вывод S.
Секундомер питается от электросети через источник питания, выполненный на трансформаторе Т1. Кроме того, источником импульсов служит так же электросеть. Здесь используется трансформатор с двумя одинаковыми вторичными обмотками. Одна из обмоток служит для питания, вторая для формирования счетных импульсов.
Для измерения времени с точностью от 0,01 секунды требуется источник импульсов частотой 100 Гц. Для него используется верхняя, по схеме, вторичная обмотка трансформатора Т1.
Частота переменного тока в сети номинально 50 Гц. Нужно получить импульсы частотой 100Гц, для этого переменное напряжение с обмотки подано на мостовой выпрямитель на диодах VD1-VD4.
Как известно, мостовой выпрямитель является двухполупериодным, в результате на выходе диодного моста формируется пульсирующий ток, пульсирующий с удвоенной частотой, то есть, как раз необходимые 100 Гц.
Вот этот пульсирующий ток и подается на вход счетчика, и хорошо что входы счетчиков CD4026 имеют встроенный триггер Шмитта, то есть ненужно как-то формировать эти импульсы, можно просто подать на вход микросхемы в таком виде, как они есть. А цепь R2-C1 служит для того, чтобы подавлять различные высокочастотные помехи, которые могут быть в электросети.
Вторая, нижняя по схеме, обмотка Т1 служит для питания схемы секундомера. Напряжение с неё поступает на точно такой же выпрямительный мост, но на его выходе включен сглаживающий пульсации, конденсатор С2, достаточно большой емкости.
Схема управления секундомером выполнена на элементах микросхемы D1. Для управления счетным входом у микросхем CD4026 имеется вывод 2 (N). Чтобы закрыть вход, то есть, прекратить счет поданных на него импульсов, на вывод 2 нужно подать логическую единицу. А для открытия входа — ноль.
Именно поэтому, выводы 2 счетчиков D3-D5 подключены к общему минусу, потому что декады включены последовательно, и для прекращения счета достаточно закрыть вход самой первой, младшей, декады. В данном случае, это D2.
Так вот, элемент D1.3 служит для подачи логического уровня управления счетом на вывод 2 D2 Когда на обоих его входах нули, на его выходе единица, она и блокирует вход D2. Если на разъем Х1 подать импульс, то по его фронту на одном из входов D1.3 появляется логическая единица.
Следовательно, на выходе D1.3 — ноль, и вход счетчика D2 открывается, теперь он может считать импульсы, поступающие на его вход «С». По спаду импульса на разъеме Х1 на вход D1.3 поступает логический ноль, и на выходе будет опять единица. Счет прекратится.
Для ручного запуска и остановки при помощи кнопок S1 и S2 используется RS-триггер на логических элементах D1.1 и D1.2. В режиме «Стоп» триггер находится в таком положении, что на выходе элемента D1 1 имеется логический ноль. Если на разъем Х1 не поступает импульс, то на обоих входах D1.3 будет ноль, значит, на его выходе — единица.
Она поступает на вывод 2 D2 и блокирует вход D2.
Если нажать кнопку «Пуск», триггер установится в состояние единицы на выходе D1.1. На выходе D1.3 станет ноль, и счетчики начнут счет.
Остановить счет можно кнопкой «Стоп».
Детали
В качестве индикаторов можно использовать любые семисегментные светодиодные индикаторы с общим катодом. Конденсатор С2 на напряжение не меньше 10V.
Снегирев И. РК-01-2020.
Записки программиста
Страшное словосочетание «интегральная схема» (a.k.a. «микросхема» или «чип») всего лишь означает, что некоторая часто используемая электронная схема продается в готовом и компактном виде, скажем, небольшом корпусе с множеством ножек с двух сторон (так называемый DIP). Одной интегральной схемой, с которой я недавно познакомился, был счетчик 4026. О нем я и хотел бы сегодня рассказать.
Счетчик 4026 выполняет очень простую функцию. На вход он получает электрические импульсы, считает их количество, и подает на выход сигналы, пригодные для отображения полученного числа на семисегментном индикаторе. Вы наверняка много раз видели такие индикаторы. Они часто используются для отображения цифр, а иногда и букв. Плюс к этому у счетчика есть несколько управляющих ножек, например, сброс, а также ножка, через которую передается флаг переноса.
Так выглядит простейшая цепь, использующая этот счетчик:
При нажатии на кнопку цифра на индикаторе увеличивается на единицу. После девяти счет опять начинается с нуля.
Описание [PDF] семисегментного индикатора Kingbright SC56-11GWA, а также описание самого счетчика нашлись на Амперке, где эти элементы, собственно, и были куплены. Выше приведены самые важные картинки из их документации. Как видите, не нужно быть семи пядей во лбу, чтобы понять, что к чему подключается.
Однако даже тут есть ряд важных моментов:
- Счетчик сделан по технологии CMOS, которая чувствительна к статическому напряжению. Прежде, чем трогать микросхему руками, нужно заземлиться (например, при помощи антистатического браслета), ну или хотя бы докоснуться до чего-нибудь большого и металлического. Иначе микросхему можно вывести из строя.
- Все неиспользуемые входы микросхемы должны быть подключены к земле. В этих микросхемах нужно либо подавать ток, либо не подавать, безо всяких промежуточных состояний. Ножка, болтающаяся в воздухе, становится антенной, и может вывести микросхему из строя.
- Конденсатор на 100 мкФ, который вы видите на фото, установлен параллельно нагрузке и играет роль сглаживающего фильтра.
А вот более сложная цепь, уже с двумя микросхемами и считающая от 0 до 99:
Схема цепи, нарисованная в gschem (исходник):
Что нужно принять во внимание:
- Была добавлена еще одна кнопка, делающая обоим счетчикам reset. Иногда сразу после включения цепи на индикаторах вместо цифр отображается какой-то мусор. Поэтому в общем случае лучше всегда делать счетчикам reset прежде, чем использовать их.
- Был добавлен конденсатор емкостью 1 мкФ, подключенный параллельно первой кнопке. Дело в том, что иногда одно нажатие кнопки считается за несколько. У Платта это называется эффектом «дребезга контактов». Полагаю, название говорит само за себя, и объяснять эффект не стоит. Подключение конденсатора небольшой емкости параллельно кнопке полностью устраняет этот эффект.
- Заметьте, что в gschem у счетчика 4026 не отображаются ножки для подключения к плюсу и минусу. Что даже разумно. Поскольку эти ножки всегда подключаются напрямую к источнику питания, незачем загромождать ими схему. Заметьте также, что в gschem ножки располагаются не так, как они расположены физически. Но при этом номера у них подписаны правильные.
- В общем случае чем больше светодиодов горит на индикаторе, тем меньше их яркость. Например, цифра 1 светиться намного ярче, чем цифра 8. Однако при правильно подобранном сопротивлении резистора, подключенного последовательно со светодиодами индикатора, разница на глаз становится незаметной.
Fun fact! Используя что-то поумнее счетчика 4026, например, тот же Raspberry Pi с его GPIO, можно легко и просто сделать электронные часы или даже выводить текст. Вот один из возможных способов вывести весь латинский алфавит:
Только учтите, что для вывода хотя бы 4-х символов напрямую требуется уже 28 пинов, а у Raspberry Pi есть только 26 GPIO пинов. Поэтому обойтись без счетчиков 4026 все-таки не получится. Посылая им сбросы и инкременты, можно выводить что угодно, и пинов при этом будет достаточно.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.