Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 08.10.2011, 21:20  
roma9112
Гражданин KAZUS.RU
 
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
roma9112 на пути к лучшему
По умолчанию Re: Светодиодный индикатор и нагрузка на порты

Сообщение от oleg110592 Посмотреть сообщение
если надо зажигаем или если не надо не зажигаем в каждом разряде сегмент А, за тем если надо зажигаем или если не надо не зажигаем в каждом разряде сегмент В и т.д.
Любопытно, раньше не знал такой метод, надо покумекать...
Реклама:
roma9112 вне форума  
Непрочитано 08.10.2011, 21:31  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Светодиодный индикатор и нагрузка на порты

Сообщение от st_1 Посмотреть сообщение
Проехали...
Я успел прочитать затёртый пост...
Прошу прощения там, мне показалось, сильно нахвастался - нехорошо.
Сообщение от roma9112 Посмотреть сообщение
Любопытно, раньше не знал такой метод, надо покумекать...
Когда увидел подобную схему впервые, тоже не смог долго вьехать -надо ли пример Вам на СИ, AB?
oleg110592 вне форума  
Непрочитано 08.10.2011, 21:39  
roma9112
Гражданин KAZUS.RU
 
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
roma9112 на пути к лучшему
По умолчанию Re: Светодиодный индикатор и нагрузка на порты

Не плохо бы примерчики! Заранее спасибо!
roma9112 вне форума  
Непрочитано 08.10.2011, 22:11  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
Плохо Re: Светодиодный индикатор и нагрузка на порты

типа как-то так (прерывания каждые 2мс при тактовой 8 мГц )
IAR AVR MEGA48:
Код:
#define SEI()			asm("sei")
#define SETBIT(x,y) (x |= (y))      // Set bit y in byte x
#define CLRBIT(x,y) (x &= (~(y)))   // Clear bit y in byte x
#define CHKBIT(x,y) (x & (y))       // Check bit y in byte x
#define TOGGLEBIT(x,y) (x^=y)

//     A
//    --
// F |  | B
//    --  G
// E |  | C
//    --  ~H
//     D
#define SegA	1‹‹2
#define SegB	1‹‹0
#define SegC	1‹‹4
#define SegD	1‹‹7
#define SegE	1‹‹6
#define SegF	1‹‹1
#define SegG	1‹‹3
#define SegH	1‹‹5

#define digit_0	(SegA | SegB | SegC | SegD | SegE | SegF)
#define digit_1	(SegB | SegC)
#define digit_2	(SegA | SegB | SegG | SegE | SegD)
#define digit_3	(SegA | SegB | SegG | SegC | SegD)
#define digit_4	(SegF | SegG | SegB | SegC)
#define digit_5	(SegA | SegF | SegG | SegC | SegD)
#define digit_6	(SegA | SegF | SegE | SegD | SegC | SegG)
#define digit_7	(SegA | SegB | SegC)
#define digit_8	(SegA | SegB | SegC | SegD | SegE | SegF | SegG)
#define digit_9	(SegA | SegB | SegC | SegD | SegF | SegG)

const __flash unsigned char seg7[10]={
digit_0,
digit_1,
digit_2,
digit_3,
digit_4,
digit_5,
digit_6,
digit_7,
digit_8,
digit_9
};

#define CAT0   	     PORTC_Bit2
#define CAT1	     PORTC_Bit4
#define CAT2	     PORTC_Bit3
#define CAT3	     PORTB_Bit4
#define SEGMENTS    PORTD

__regvar __no_init unsigned char Led0 @ 8;
__regvar __no_init unsigned char Led1 @ 9;
__regvar __no_init unsigned char Led2 @ 10;
__regvar __no_init unsigned char Led3 @ 11;
__regvar __no_init unsigned char DigitIndex @ 12;

/*
==================================================  ==============================
	Timer0 interrupt.
==================================================  ==============================
*/
#pragma vector = TIMER0_OVF_vect
__interrupt void Timer0_Ovf (void)
{

    CAT0 = 1;
    CAT1 = 1;
    CAT2 = 1;
    CAT3 = 1;
    SEGMENTS = DigitIndex;
    if (CHKBIT(Led0,DigitIndex)) CAT0 = 0;
    if (CHKBIT(Led1,DigitIndex)) CAT1 = 0;
    if (CHKBIT(Led2,DigitIndex)) CAT2 = 0;
    if (CHKBIT(Led3,DigitIndex)) CAT3 = 0;
    DigitIndex››=1;
    if (DigitIndex==0) DigitIndex=1‹‹7;
}
void main()
{
//... все настраиваем типа:
    CLKPR=0x80;
    CLKPR=0x00;
// Port B initialization
    PORTB=1‹‹3|1‹‹2|1‹‹1;
    DDRB=1‹‹5|1‹‹4;
// Port C initialization
    PORTC=0x38;     //111000
    DDRC=0x7C;      //1111100
// Port D initialization
    PORTD=0x00;
    DDRD=0xFF;
//TIMER0 initialize - prescale:64
// WGM: Normal
// desired value: 2mSec
// actual value:  2,000mSec (0,0%)
 	TCCR0B = 0x00; //stop
 	TCNT0 = 0x06; //set count
 	TCCR0A = 0x00; 
 	TCCR0B = 0x03; //start timer
// Timer/Counter 0 Interrupt(s) initialization
    TIMSK0=0x01;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    ADCSRB=0x00;
// ADC initialization
// ADC Clock frequency: 250,000 kHz
// ADC Voltage Reference: Int., cap. on AREF
// ADC Auto Trigger Source: None
// Digital input buffers on ADC0: Off, ADC1: Off, ADC2: On, ADC3: On
// ADC4: On, ADC5: On
    DIDR0=0x03;
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x87;

   SEI(); // разрешаем прерывания
   DigitIndex=1‹‹7;
// на экране видим 1234
   Led0=seg7[1];
   Led1=seg7[2];
   Led2=seg7[3];
   Led3=seg7[4];
   while(1)
   {
// цикл
   }
}

Последний раз редактировалось oleg110592; 08.10.2011 в 22:16.
oleg110592 вне форума  
Сказали "Спасибо" oleg110592
roma9112 (09.10.2011)
Непрочитано 09.10.2011, 14:52  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,004
Сказал спасибо: 3,023
Сказали Спасибо 3,194 раз(а) в 2,166 сообщении(ях)
ForcePoint на пути к лучшему
Плохо Re: Светодиодный индикатор и нагрузка на порты

1. Я-бы не стал.
2. Ввиду явной бессмысленности вопроса без указания точной марки индикатора (цвет ~ рабочее напряжение), и напряжения питания) решим задачку графически для ATmega + American Opto Plus A564CG (картинка). Ток получается около 70 мА с сильной зависимостью от температуры и напряжения питания. Допуская скважность 4 - для индикатора он, вероятно (100 мА * 4/10), избыточен.
Для mega, принимая, что в среднем засвечено 4 сегмента, - суммарный средний ток порта получается порядка 280 мА, что превосходит не только требования по максимальному току на линию порта, но и на порт в целом (см. примечания к таблице DC Characteristics).
3. Работать может и будет, но не известно, как долго. Да ещё и глючить сможет по полной из-за помех по земле.

"махровая китайщина детектед".
Изображения:
Тип файла: png LED+mega.PNG (42.0 Кб, 62 просмотров)
ForcePoint вне форума  
Непрочитано 09.10.2011, 17:13  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Светодиодный индикатор и нагрузка на порты

Еще раз повторю - ЗАСВЕЧИВАЕТСЯ ТОЛЬКО ОДИН СЕГМЕНТ В РАЗРЯДЕ -ну поймите - это только максимум 4 светодиода по 15мА на 4 ноги микроконтроллера и это, поверте не страшно. Ну лучше это чем 8 светодиодов на 8 ног микроконтроллера. Эта махровая китайщина уже работает (надежно) в нескольких тыс. изделий в течении 6 лет.
oleg110592 вне форума  
Непрочитано 09.10.2011, 18:06  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Светодиодный индикатор и нагрузка на порты

Сообщение от oleg110592 Посмотреть сообщение
Ну лучше это чем 8 светодиодов на 8 ног микроконтроллера.
Чем это лучше? Попробуйте хотя бы знакогенератор написать для такого варианта - причём со спец-символами. В классическом все просто: 1 байт = 1 знак, только точку подставить если надо. Что за устройство вы выпускаете тысячами штук, что экономия 4 копеек за 4 резистора (это даже не оптовая цена) подвигла на такие подвиги?
niXto вне форума  
Непрочитано 09.10.2011, 23:56  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Светодиодный индикатор и нагрузка на порты

Устал доказывать... Знакогенератор такой же точно как и при поразрядном. Выгода очевидна:
+ 4 лишних резистора (уж не будем ставить транзисторов с резисторами в базу) по 2 коп. украинских за дополнительных 4 резистора это 8 коп. + 8 паек по 9 коп. это 72 коп. итого 80 коп.
На 1000 изделий это 800 гривен = 100$. А если продать 1000 изделий в месяц (это реальная цифра - поверьте на слово) - за год получится 1200$ экономии.
oleg110592 вне форума  
Непрочитано 10.10.2011, 00:07  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Светодиодный индикатор и нагрузка на порты

Сообщение от oleg110592 Посмотреть сообщение
Еще раз повторю - ЗАСВЕЧИВАЕТСЯ ТОЛЬКО ОДИН СЕГМЕНТ В РАЗРЯДЕ -ну поймите - это только максимум 4 светодиода по 15мА на 4 ноги микроконтроллера и это, поверте не страшно.
Осталось уточнить... через ногу сегмента... 60мА бегает???
st_1 вне форума  
Непрочитано 10.10.2011, 00:19  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Светодиодный индикатор и нагрузка на порты

60мА НЕ БЕГАЕТ- бегает 15мА МАКСИМУМ - уже начала преследовать мания - может я в чем то ошибся и надо отзывать для модификации мои устройства .
Что-то и сам запутался 15мА это при полной посегментной индикации. А если нагружено на один сегмент 4 катода, то 5В минус падение на светодиоде 2В = 3В через один катод при резисторе 200 Ом ток 15мА * 4, да признаю бегает 60мА это в статике. Произвел сейчас реальный замер - плата MEGA48 + 3разрядный индикатор, на индикаторе число 108(есть одовременно горящие сегменты), китайский тестер - измеренное потребление платы 25,9 мА. Надо попробовать число 8.8.8.. Да для 3 разрядного индикатора ток через сегмент может быть максимум 45мА допустимо 40мА. Недавно приносили на ремонт 6 летний приборчик с такой индикацией (сгорела аналоговая часть) - индикатор не деградировал, светит как и светил, ноги микроконтроллера не отгорели.
Код:
60mA      60mA      60mA
|-|_______|-|_______|-|__
1mS  7mS  1mS  7mS   1mS
Это нагрузка на один сегмент (если горят сегменты во всех разрядах)
На самом деле в некоторых приборах точки не зажигают и числа на индикаторе 888 не будет, например тот же барьер в старшем разряде только числа от 1 до 3 например 388 вольт самое плохое число. Тут даже можно соеденить сегмент F с катодом старшего разряда (он никогда гореть не должен - больше 399 вольт отображать нет необходимости) экономия ног. Можно соеденить сегмент H с катодом младшего разряда (точка крайняя справа врядли пригодится). Две ноги уже сэкономили. Есть у меня в загашнике такая разработка на 14ногом PIC.
Все, признал - правда махровая китайщина

Последний раз редактировалось oleg110592; 10.10.2011 в 11:13.
oleg110592 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Способы вывода данных на семисегментный индикатор artyomugr Микроконтроллеры, АЦП, память и т.д 44 04.08.2011 17:25
Нужен линейный светодиодный или ЖК индикатор nick1954 Информация по радиокомпонентам 6 02.12.2010 18:00
"Стрелочный" индикатор на ЖК128х64 Victor_72 Микроконтроллеры, АЦП, память и т.д 28 16.03.2010 11:31
Не работает индикатор HT1610 sanya_160906 Микроконтроллеры, АЦП, память и т.д 0 18.03.2007 00:58
Индикатор для часов asav Делимся опытом 3 29.05.2006 02:38


Часовой пояс GMT +4, время: 19:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot