Ответ на пост «Подключение семисегментного индикатора к микросхеме CD4026BE»
Я решил оставить это тут. Тоже на CD4026
Микросхема 74HC959N + семисегментный индикатор
Всем привет! Записали обучающее видео про работу микросхемы 74HC959N. А также Вы узнаете, как управлять семисегментным индикатором на ее базе!
Приятного просмотра!
В Питере шаверма и мосты, в Казани эчпочмаки и казан. А что в других городах?
Мы постарались сделать каждый город, с которого начинается еженедельный заед в нашей новой игре, по-настоящему уникальным. Оценить можно на странице совместной игры Torero и Пикабу.
Реклама АО «Кордиант», ИНН 7601001509
Светодиодный семисегментный индикатор, дешифратор семисегментного индикатора. Практика
В этом видео я расскажу о светодиодном семисегментном индикаторе, его видах, и о его применении, в том числе в фильмах. Кроме того, расскажу об управлении этим индикатором с помощью специальной микросхемы - дешифратора.
Конечно же, в этом видио есть демонстрация работы семисегментного индикатора.
Основная идея моих видео - электроника, не на основе готового Arduino - это просто^^
Приятного просмотра!
Часы на ИВ-6 и Atmega88p
Ещё одни часы на ВЛИ в безмерную копилку уже существующих. Схема аналогична всем другим уже существующим. Использован преобразователь на КФ1211 для питания сеток и сегментов, также для питания нитей накала (соединены последовательно). Рулит всем Atmega88p, можно заменит на Atmega168, Atmega328, возможно, на Atmega8 тоже будет работать без изменения скетча. В качестве часов реального времени стоит DS3231. Питание 5 вольт подключается через micro usb разъем.
Настройка часов происходит при долгом нажатии на кнопку (больше 5 секунд). Далее нужно установить часы (кратковременное нажатие на кнопку), долгое нажатие, настройка минут, снова долгое нажатие.
При обычном нажатии на кнопку настраивается цвет RGB светодиодов, аналогично настройке часов.
Знаю что не совсем в ту ветку пишу, но более подходящей не нашел.
Архив с платой и скетчем https://drive.google.com/file/d/1psb3XmOIOJmYB2F9mVCHGZzAs3L...
Планирую переделать плату с индикаторами, вместо обычных светодиодов поставить адресные, и заказать у китайцев (изготовление платы для индикаторов не самое простое дело). Если кто-нибудь готов повторить такие часы и готов вписаться в заказ плат отпишитесь в коменты. Далее планирую корпус сделать, чертежи естественно будут в общем доступе
Ещё немного о семисегментных индикаторах, но с другой стороны
Всем привет! Попался мне сегодня в руки обычный семисегментный индикатор.
Вот такой вот малыш:
Статей про их применение и устройство на просторах сети интернет - не мерено. И, кто мало-мальски знаком с электроникой, всё о них знает..... Но позвольте, а всё ли? В общем крутил я его , вертел, в своих кривых руках, и задумался... Как много в нашем мире вещей, к которым мы привыкли, но не смотрим глубже, в суть этих вещей...
Казалось бы, ну сколько информации можно выжать/вложить из/в этого малыша? 10 цифр, да пару букв? и всё?... а вот фигу! Знаете ли вы , что только в одноразрядном семисегментном индикаторе с точкой, может быть 256(!!! )вариантов комбинаций?!
Не верите ? вот:
Тут рассмотрено всего семь сегментов , без учёта точки ,но она как раз и добавляет еще один бит - и получается ровно байт)
Уже не слАбо, правда? Но односегментники, как правило встречаются довольно редко, в основном они объединены в четырехразрядные сборки с точкой, разделяющей разряды (вспомните хотя бы огромные часы, расположенные в холле школы, поликлиники и так далее ...(самое распространенное применение - это, конечно, часы))...
Так вот...То, что казалось бы, что из таких четырёхразрядных сборок можно выжать только показания времени , и этим их функционал ограничивается - заблуждение.
В общем, прикинул я так сегодня на работе количество вариантов.... и результат меня впечатлил:
256x256x256x256 = 4 294 967 296 комбинаций!!!! БОЛЕЕ 4ЁХ МИЛЛИАРДОВ комбинаций! Вот такой вот малыш) . Кстати, ничего не напоминает?)) Люди, хорошо знакомые с информационными технологиями, уже наверное догадались о чем я) Что еще кодируется четырьмя байтами?) Правильно , уникальный сетевой адрес узла в компьютерной сети! Грубо говоря, этого хватает для адресации всех компьютеров в глобальной сети интернет. На сколько же это огромное количество!)
Ещё один пример :путем нехитрых расчётов, можно прикинуть, что семисегментный четырехразрядный индикатор способен показывать точное количество секунд на протяжении чуть более 136 лет!
P.S. ))))
Подключение семисегментного индикатора к микросхеме CD4026BE
Сначала поговорим о семисегментных индикаторах.
Семисегментные индикаторы нужны для индикации (логично, не правда ли?). Индикаторы могут выводить символы. Сам индикатор состоит из светодиодов, которые засвечивают свой сигмент. И поэтому, напряжение питания такого индикатора чаще всего составляет 3 Вольта, а ток 20 миллиАмпер (= 0,02 Ампера). При питании индикатора от напряжения выше 3 Вольт, нужно расчитывать резистор для индикатора, чтобы индикатор не сгорел. Немного о резисторах можно узнать здесь (не реклама) - https://pikabu.ru/story/rezistoryi_6843041?viev=amp . Это мой пост, если что.
А вот уже мой индикатор :) на микросхему не обращаем внимания
У семисегментного индикатора есть 8 выводов (выводы 1, 2, 4, 5, 6, 7, 9, 10.), засвечивающих свой сегмент. И еще 2 вывода - это катоды (выводы 3, 8). Отсчет выводов индикатора начинается с левого нижнего угла (вывод 1) и идет против часовой стрелки. Забыл сказать, что есть индикаторы с общим катодом и с общим анодом. Мы будем использовать с общим катодом. Семисегментные индикаторы бывают разных цветов. Бывают одноразрядные (могут выводить только один символ) и многоразрядные, то есть с возможностью вывода нескольких символов. У каждого сегмента есть свое буквенное обозначение.
Теперь поговорим о микросхеме CD4026BE. Эта микрохема - счетчик. Имеет 16 выводов.
Отсчет выводов нужно осуществлять от ямки на корпусе. Ставим микроконтроллер в плату. Ищем впадину на корпусе. Слева от впадины будет первая ножка.
Подачей на 1 ножку микросхемы сигнала высокого уровня происходит переключение счетчика на одну единицу.
Начнем собирать схему! На буду фоткать каждые 3 сделанные шага.
Подключаем плюс питания к 16 - ой ножке микросхемы, минус питания подключаем к 8 - ой ножке. Минус питания также подключаем к 15 - ой ножке.
Подключаем плюс к третьему и второму выводам. Подключаем резистор от минуса питания
100 - 1000 Ом к первому выводу.
Берем одноразрядный семисегментный индикатор. Подключаем его по схеме:
О питании:
Питание микросхемы составляет от 3 до 15 Вольт. Я подключил питание 5 вольт. При этом резисторы можно и не использовать. Подключаем плюс питания через кнопку к первой ножке микросхемы.
К кнопке подключаем конденсатор (до 1 - го мкФ). Можно подключать питание и смотреть на результат :) . Можно использовать 15 - тый вывод микросхемы для сброса счетчика. Подключаем резистор 2 кОм от минуса питания к кнопке. От этого же резистора тянем провод к 15 - тому выводу микросхемы. Кнопку подключаем к плюсу питания
Работа счетчика:
Можнр добавить еще один индикатор и микросхему. Для этого берем второй счетчик 4026 ставим его в плату, подключаем его так как и первую микросхему (конечно же с семисегментным индикатором). Только подключаем без резистора от первой ножки и кнопки переключения счетчика. Тянем провод от второй микросхемы к пятому выводу второй микросхемы. Объеденяем пятнадцатые выводы всех микртсхем и подключаем к кнопке сброса.
ВСЕ! у нас получился счетчик до 99! Можно подключить еще счетчиков. Только одной платы для этого точно не хватит ;)!
Помните, я стараюсь отвечать на все вопросы (заданные мне) в комментариях!
Всем пока!
Таймер на Arduino и управление с пульта на 433 MHz
Один мой приятель играет в хоккей и когда узнал, что я увлекаюсь программированием МК, попросил сделать ему и его команде таймер на шесть минут.
Задачи поставил следующие:
1. Управление дистанционно (чтобы не подъезжать к табло)
2. Звуковая индикация
3. Световая индикация
4. Возможность прибавлять/убавлять минуты/секунды, а также пауза и сброс таймера
Подобрал следующие компоненты
Ардуино Мини -1шт.
Порядка ста светодиодов красного свечения
Радиоканальные модули на 433 Мгц (приемник и передатчик)
Реле на 12 Вольт
Звуковая сирена "Иволга"
Поскольку я всего лишь любитель в области программирования, то особо прошу не пинать)))
Представляю вам, дорогие пикабушники-радиолюбители, код этого изобретения.
Может кому понадобится еще. Если будут вопросы, обращайтесь. Всегда рад помочь
Собственно сам код:
#include <SevenSegmentDisplay.h> //Библоитека для работы с самыми обычными индикаторами
SevenSegmentDisplay<false, QuadriDigit<9,13,12,11> > ss(2,3,4,5,6,7,8,1); // значение false или true определяет полярность дисплея: общий катод или общий анод
/////////Переменные времени
unsigned m = 6; //минуты: то,что друг просил
unsigned s = 0; //секунды
unsigned t = 0; //общее значение времени
unsigned long preMillis1 = 0;
unsigned long preMillis2 = 0;
unsigned long preMillis3 = 0;
/////////Кнопки. Переменные
int dp = HIGH; //Выход точки в состояние HIGH
int out_relay = LOW; //Выход реле в состояние LOW
unsigned long c = 0;
void setup()
{
// сюда подключаются каналы приемника
pinMode(A0, INPUT); //Старт/Стоп
pinMode(A1, INPUT); //+
pinMode(A2, INPUT); //-
pinMode(A4, OUTPUT); //Выход на реле
pinMode(10, OUTPUT); //Выход на точку
}
void loop()
{/////////работа кнопок/////////////////////////////
if (digitalRead(A0)==HIGH) //Если кнопка нажата и удерживается, то
{
dp_blink(); //мигает точка и
if (millis() - preMillis1 > 1000)
{
preMillis1 = millis();
{
countdown(); //ведется отсчет
}
}
}
else
if (digitalRead(A0)==LOW) //Если кнопка отжата, то
{
digitalWrite (10,HIGH); //точка постоянно горит
}
/////////Прибавление/убавление минут///////////////
if (millis() - preMillis2 > 500) //Задержка полсекунды
{
preMillis2 = millis();
{
if(digitalRead(A1)==HIGH)
{
m++; //на прибавление
c=0; //сброс реле
}
if(digitalRead(A2)==HIGH)
{
m--; //или убавление
if (m == 0) //Если минуты равны 0, то
{
m=0; //присвоить минутам 0
c=0; //сброс реле
}
}
}
}
/////////вывод на индикатор//////////////////////
t = m*100+s;
if (t == 0)
{
relay(); //вызов функции реле
flash(); //вызов функции мигания индиктора
}
ss.print(t);
}
////////Управление реле///////////////////////
void relay()
{
c++;
if (c == 1) //Время работы реле
{
digitalWrite (A4, HIGH);
}
else
digitalWrite (A4, LOW);
}
/////////мигание индикатора: мигает 0:00
void flash()
{
digitalWrite(9, LOW);
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
delay(250);
digitalWrite(9, HIGH);
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
delay(250);
}
/////////Отсчет/////////////////
void countdown()
{
if (s>0)
{
s--;
}
else if (s==0 && m>0)
{
s=59;
m--;
}
else if(s==0 && m==0)
{
t=0;
}
}
////////Мигание точки/////////////////////
void dp_blink()
{
if (millis() - preMillis3 > 500)
{
preMillis3 = millis();
if (dp == HIGH)
dp = LOW;
else
dp = HIGH;
digitalWrite(10, dp);
}
}
По ссылке найдете весь проект с библоитекой , а также файлы для Proteus v 7.7