nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 01:58



Reply to topic  [ 11 posts ] 
Странный 7 сегментный индикатор 
Author Message
Writer

Joined: 13 Jun 2013 21:48
Posts: 24
Location: г.Зерноград, Ростовская область
Reply with quote
Привет всем. Помогите разобраться с 7 сегментным индикатором. На вид самый обычный маленький 7 сегментный + точка индикатор на 3 разряда без маркировки, НО, имеет всего 6 выводов, хотя должен иметь 11. Я прозвонил его на предмет внутренних соединений, и вот что получается. Китайцы, видимо для того, чтобы экономить ноги контроллера, к которому этот индикатор подключается, очень хитро соединили внутри светодиоды. Не могу понять, как заставить светиться отдельные сегменты. Ну и вообще выводить на него цифры/буквы. Видимо, есть какая то закономерность, по которой нужно управлять. Набросал по быстрому в протеус 8.1 схемку. Помогите разобраться. Прикрепил изображение под спойлером и файл проекта для протеус 8.1

 
Attachment:
изображение_2022-11-04_163916.png
изображение_2022-11-04_163916.png [ 24.08 KiB | Viewed 3428 times ]


Attachments:
China_7seg_display.7z [17.58 KiB]
Downloaded 110 times

_________________
ZX-Spectrum 128(краснодарский вариант)+YM+Covox+3,5" FDD+5,25" FDD+Nemo controller+HDD+CD-ROM+PS/2 Keyboard+PS/2 Mouse(остальное в проекте...) (Всё самодельное)
04 Nov 2022 06:52
Profile
Senior
User avatar

Joined: 11 Oct 2018 00:52
Posts: 196
Location: г. Клинцы, Брянская обл.
Reply with quote
Эта схема известна как чарлиплексинг. Почитать можно здесь: https://ru.wikipedia.org/wiki/%D0%A7%D0 ... 0%BD%D0%B3


04 Nov 2022 07:51
Profile
Writer

Joined: 13 Jun 2013 21:48
Posts: 24
Location: г.Зерноград, Ростовская область
Reply with quote
FizikS wrote:
Эта схема известна как чарлиплексинг.

Спасибо! Как же я сам не догадался про третье состояние... :oops:
Теперь всё становится на свои места.
Получается, цифры надо выводить посегментно. Ну или комбинациями по несколько сегментов, которые возможны. Да уж, не знал, что это, оказывается, давно уже придумано и имеет название...

_________________
ZX-Spectrum 128(краснодарский вариант)+YM+Covox+3,5" FDD+5,25" FDD+Nemo controller+HDD+CD-ROM+PS/2 Keyboard+PS/2 Mouse(остальное в проекте...) (Всё самодельное)


04 Nov 2022 08:46
Profile
Doomed

Joined: 10 Aug 2022 07:27
Posts: 351
Reply with quote
Похож? https://www.ledlight-components.com/sal ... -inch.html


04 Nov 2022 22:16
Profile
Senior

Joined: 01 Jan 2022 04:34
Posts: 162
Location: USSR, Tashkent
Reply with quote
https://www.maximintegrated.com/en/desi ... /1880.html

а можно и микруху использовать для таких матриц


05 Nov 2022 00:09
Profile
Doomed

Joined: 10 Aug 2022 07:27
Posts: 351
Reply with quote
Во! Кто бы мог подумать).


05 Nov 2022 01:08
Profile
Writer

Joined: 13 Jun 2013 21:48
Posts: 24
Location: г.Зерноград, Ростовская область
Reply with quote
Mondx wrote:
Похож?

Да, один в один!

_________________
ZX-Spectrum 128(краснодарский вариант)+YM+Covox+3,5" FDD+5,25" FDD+Nemo controller+HDD+CD-ROM+PS/2 Keyboard+PS/2 Mouse(остальное в проекте...) (Всё самодельное)


06 Nov 2022 23:24
Profile
Doomed

Joined: 10 Aug 2022 07:27
Posts: 351
Reply with quote
Можно ещё своих 6 светодиодов добавить к этим же выводам.)


07 Nov 2022 01:19
Profile
Writer

Joined: 13 Jun 2013 21:48
Posts: 24
Location: г.Зерноград, Ростовская область
Reply with quote
Вроде да, можно. Я прямо не смотрел, но вроде там есть ещё свободные комбинации. Но я не буду этого делать. Это мне попалась зарядка для телефона с индикатором напряжения и тока зарядки. И там этот индикатор стоит. Так вот индикация тока в этой зарядке жутко врёт, да и ещё реализована через одно место. Просто подправить шунт для коррекции индикации тока не получается. Ну, китайцы, что тут сказать. А контроллер там стоит без маркировки на 14 ног, и по цоколёвке полностью совпадает с PIC контроллерами на 14 ног. У меня вот завалялся PIC16LF1503, вот хочу не спеша переделать зарядку, чтоб правильно всё показывала. Чисто ради спортивного интереса.
Уже думал, что и китайцы туда PIC поставили, только без маркировки. Но нет, китайский контроллер никак не определяется в программаторе...

_________________
ZX-Spectrum 128(краснодарский вариант)+YM+Covox+3,5" FDD+5,25" FDD+Nemo controller+HDD+CD-ROM+PS/2 Keyboard+PS/2 Mouse(остальное в проекте...) (Всё самодельное)


07 Nov 2022 13:02
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
FizikS wrote:
Эта схема известна как чарлиплексинг. Почитать можно здесь: https://ru.wikipedia.org/wiki/%D0%A7%D0 ... 0%BD%D0%B3

Про "charilieplexing" у нас уже было в 2014 году:

http://www.nedopc.org/forum/viewtopic.php?f=68&t=10827&p=116207&hilit=charlieplexing#p116207

_________________
:dj: https://mastodon.social/@Shaos


16 Nov 2022 01:19
Profile WWW
Doomed

Joined: 10 Aug 2022 07:27
Posts: 351
Reply with quote
Mifody wrote:
Чисто ради спортивного интереса.

Получилось?
Тренировался как то:
 
Code:
//  Светодиодный чарлиплексинг: 3x8 LED DL3-2532RB-6

#define L1                2
#define L2                3
#define L3                4
#define L4                5
#define L5                6
#define L6                7

#define T_SYS_US          500           //24 * 500 = 12000

#define in(x)             DDRD &= ~(1<<(x))
#define out(x)            DDRD |= 1<<(x)
#define on(x)             PORTD |= 1<<(x)
#define off(x)            PORTD &= ~(1<<(x))


void setup() {
  display(0, false, false);
}


void loop() {
  every_us(T_SYS_US)
    led();

  static uint16_t cnt;                  //тест
  every(500) {
    if (++cnt >= 1000 * 4)
      cnt = 0;
    display(cnt % 1000, cnt >= 1000, cnt >= 2000);
  }
}


const uint8_t pins[] = {                //распиновка: анод, катод
  //a      b      c      d      e      f      g      h
  L3,L2, L4,L2, L2,L5, L6,L2, L5,L2, L2,L3, L2,L4, L1,L2,
  L4,L5, L5,L3, L5,L4, L4,L3, L3,L6, L3,L4, L3,L5, L1,L3,
  L6,L1, L6,L3, L6,L5, L4,L6, L6,L4, L5,L6, L5,L1
};

static uint8_t segment[] = { 0, 0, 0 }; //буфер индикатора


void led() {
  static uint8_t i;                     //индекс на текущий сегмент
  static uint8_t j;                     //индекс буфера (текущее знакоместо)
  static uint8_t mask = 1<<6;           //маска на текущий сегмент в буфере

  off(pins[i]);                         //выключим ранее включенный сегмент
  in(pins[i++]);                        //анод
  in(pins[i++]);                        //катод
  if (i >= sizeof(pins)) {              //на следующий с начала
    i = 0;
    j = 0;
    mask = 1<<7;
  }

  if (segment[j] & mask) {              //включим новый сегмент
    on(pins[i]);
    out(pins[i++]);                     //анод = 1
    out(pins[i--]);                     //катод = 0
  }
  mask >>= 1;                           //новая маска
  if (!mask) {
    mask = 1<<7;
    ++j;
  }
}


const uint8_t font[] = {
 //abcdefgh
  B11111100,                            //0
  B01100000,                            //1
  B11011010,                            //2
  B11110010,                            //3
  B01100110,                            //4
  B10110110,                            //5
  B10111110,                            //6
  B11100000,                            //7
  B11111110,                            //8
  B11110110                             //9
};

// преобразуем в шрифт
static uint8_t getFont(uint8_t bin) {
  return bin <= 9 ? font[bin] : 0;
}


void display(uint16_t bin, bool dot1, bool dot2) {
  segment[0] = getFont(bin / 100) | dot1;
  segment[1] = getFont(bin / 10 % 10) | dot2;
  segment[2] = getFont(bin % 10);
}


09 Dec 2022 00:14
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 11 posts ] 

Who is online

Users browsing this forum: No registered users and 20 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.