Перейти к содержанию

Два и более 8-сегментных индикатора от одного МК


oner

Рекомендуемые сообщения

Всем привет!

В случае, если к МК нужно подключить один 8-сегментный индикатор, достаточно задействовать 8 ножек МК:

we-w7u6pmhE.jpg

В случае, если нужно подключить 2 и более 8-сегментных индикатора к одному МК, полагаю, возможно использовать те же 8 ножек МК для подачи сигнала данных, а как тогда коммутировать (+) питания индикатора? Подавать его с вывода другого порта? Тогда каким образом программно синхронизировать передачу данных на индикаторы с подачей питаний на них? Чтобы за счет большой частоты подачи сигналов создавалось впечатление, что на двух индикаторах одновремнно ототбражаются разные цифры?

opJGyP9cZgA.jpg

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

Отталкиваюсь от такого кода:

Скрытый текст

 


#define F_CPU 8000000L
#include <avr/io.h>
#include <util/delay.h>

//---------------------------------------------
void segchar (unsigned char seg)
{
	switch (seg)
	{
		case 1: PORTD = 0b11111001; break;
		case 2: PORTD = 0b10100100; break;
		case 3: PORTD = 0b10110000; break;
		case 4: PORTD = 0b10011001; break;
		case 5: PORTD = 0b10010010; break;
		case 6: PORTD = 0b10000010; break;
		case 7: PORTD = 0b11111000; break;
		case 8: PORTD = 0b10000000; break;
		case 9: PORTD = 0b10010000; break;
		case 0: PORTD = 0b11000000; break;
	}
}
//---------------------------------------------
int main(void)
{
	unsigned char i;
	unsigned butcount=0,butstate=0;
	DDRD = 0xFF;
	DDRB = 0x00;
	PORTD = 0b00000000;
	PORTB = 0b00000001;
	while(1)
	{
		for (i=0;i<10;i++)
		{
			while(butstate==0)
			{
				if (!(PINB&0b00000001)){
					if (butcount < 5)
					{
						butcount++;
					}
					else
					{
						i=0;
						butstate=1;
					}
				}
				else
				{
					if (butcount > 0)
					{
						butcount--;
					}
					else
					{
						butstate=1;
					}
				}
		}
			segchar(i);
			_delay_ms(500);
			butstate = 0;
		}
		
		

	}
}

 

 

 

Изменено пользователем oner
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

или видосы https://www.youtube.com/watch?v=FE3NaNO6CMc&t=467s

// int rc 8000000Hz
#include <avr/io.h>
#include <avr/interrupt.h>

char SEGMENT[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

volatile unsigned char segcounter = 0;
volatile int display1 = 0;

ISR (TIMER2_OVF_vect)
{
	PORTC &=~ ((1<<PC7)|(1<<PC6)); // Гасим все разряды
	segcounter++;

	switch (segcounter)
	{
		case 1: PORTD = ~(SEGMENT[display1 % 100 / 10]);
			PORTC |= (1<<PC7);
			break;
		case 2: PORTD = ~(SEGMENT[display1 % 10]);
			PORTC |= (1<<PC6);
			segcounter = 0;
			break;
	}
}

int main (void)
{
	DDRC |= (1<<PC7)|(1<<PC6);
	DDRD |= (1<<PD6)|(1<<PD5)|(1<<PD4)|(1<<PD3)|(1<<PD2)|(1<<PD1)|(1<<PD0);
	
	TCCR2 |= (1<<CS22)|(1<<CS20); 
	TIMSK |= (1<<TOIE2);
	
	sei();

	while(1)
	{
		display1=97;
	}
}

 

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

9 часов назад, oner сказал:

В случае, если нужно подключить 2 и более 8-сегментных индикатора к одному МК,

Глупости все это.  В этом случае применяются регистры. Ну например 74НС595. А еще лучше специализированную микросхему ну например MBI5168. Здесь вообще три ноги используется и можно их соединять последовательно для увеличения числа индикаторов.  

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Я несколько лет назад сделал себе термофен на AtMega8. В управлении использовал индикаторы:

3х8 - индикация установленной температуры;

3х8 - индикация реальной температуры воздуха;

2х8 - обороты вентилятора фена (20-99%).

Итого 8 индикаторов по 7+1 сегментов.

Все индикаторы с общим анодом, индикация динамическая. Аноды индикаторов коммутируются дешифратором 74HCT138 с дополнительными транзисторными ключами. В Протеусе на схеме нет катодных резисторов, а на плате в катодных цепях индикаторов на контроллер установлены резисторы по 300 Ом.

Вот скрин фрагмента схемы при симуляции в программе Proteus:

7e53a0f4c0c2.jpg

Как видно - при симуляции все сегменты нормально симулируются.

А это фото самого блока во время работы (ещё был не до конца собран и настроен). Зелёный 3х8 - установленная температура, красный 3х8 - реальная температура, 2х8 - обороты вентилятора:

63cf905d48e8.jpg

Как видно на фото - яркости индикаторов более чем достаточно.

Изменено пользователем Shahabbas

Технические вопросы решаю в теме , в личке не обсуждаю !!!

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Современные ультраяркие, да и просто) индикаторы обеспечивают необходимую яркость. Проблемы будут, если собирать на индикаторах, выдраных из системных блоков 20-25 летней давности :D. Пытался как-то от жадности их использовать, но нормально смог их применить только с 572пв5/ICL7107 (или какая там под led)

Настоящему коту и в декабре март!

Ссылка на комментарий
Поделиться на другие сайты

Порекламирую свою реализацию динамической семисегментной индикации

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Я как-то делал цифровой амперметр для автомобильного ЗУ на ATtiny13 - там нужно было две циферки отображать: единицы ампер и сотни миллиампер. Ножек у МК, понятно, мало - так я индикаторную матрицу 2x7 на микрыч через К176ИЕ4 подвесл - заняло всего две лапки (для дерганья за выводы R и C счетчика) + еще две для переключения общих анодов индикаторов - итого, индикатор 2x7 "съел" у микрухи всего четыре ноги. К тому же, сэкономил семь резисторов - ведь в К176ИЕ4 уже есть генератор тока для сегментов)) А вывод запятых просто повесил на плюс питания - светиться стали, разумеется, обе; но правую я тупо замазал каплей черной нитрокраски... Получилось вполне работоспособно - уже полгода фурычет...

Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, Prozac сказал:

индикатор 2x7 "съел" у микрухи всего четыре ноги

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

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, mvkarp сказал:

 то можно и двумя ножками обойтись. :)

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

Ссылка на комментарий
Поделиться на другие сайты

Только что, mvkarp сказал:

Можно и без строба. Данные выдавать быстро, но редко. :) Засветкой сегментов во время передачи можно будет пренебречь

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

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

15 минут назад, ARV сказал:

пропускания через RC-фильтр импульсов синхронизации.

Одновибратор с перезапуском будет формировать более правильный фронт. Или после RC триггер Шмитта.

Ссылка на комментарий
Поделиться на другие сайты

Только что, mvkarp сказал:

Одновибратор с перезапуском будет формировать более правильный фронт. Или после RC триггер Шмитта.

Ну я о нищебродском решении, когда каждый корпус на счету :) глуповато ставить кучу корпусов только ради того, чтобы решить задачу на attiny13, разумнее взять МК пожирнее. Хороший вариант нищебродского решения показал @oldmao

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, ARV сказал:

когда каждый корпус на счету

Так, это и есть дилема. Лишние корпуса или побольше ног у МК. :)
Я про одновибратор - только из-за наклона фронтов импульса. Регистр может "не понять" мягкого отношения к нему со стороны внешних сигналов. :)
В схеме от @oldmao этот недостаток не устранен. :(

 

Ссылка на комментарий
Поделиться на другие сайты

57 минут назад, mvkarp сказал:

Так, это и есть дилема. 

Странная какая то дилема. Экономим ногу контролера которую всеравно использовать не можем и ставим дополнительные корпуса. Какая-ж тут экономия

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, mvkarp сказал:

Ну, если светодиодиком помигать - то, конечно

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

Изменено пользователем musa56
Ссылка на комментарий
Поделиться на другие сайты

Цитата

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

Так причем здесь экономия-то? Это, скорее, позиция ;) - просто бесит порой, когда молодежь Ардуины использует, чтобы пару рзаз диодиком моргнуть :) А мне совесть ни позволяетзасовывать в схему такую микруху, 75% которой не будет задействованна - вот и грешу миниманлизмом. Бритва Оккама, блин: "Не плодите сущности"... :)

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Prozac сказал:

Бритва Оккама

Мой любимый принцип :)

И, кстати, лепить к attiny13 несколько корпусов тогда как можно обойтись без них (или хот бы без части их) - это и надо бритвой отсекать. Если уж минимализм, так минимализм.

Изменено пользователем ARV

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...