|
|
  |
Чем или как создать управление микросхемой Lc7821 |
|
|
|
May 18 2015, 09:50
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(love777888 @ May 18 2015, 12:24)  Люди я наверное только один все понимаю? я расписал полностью одно знакомество, чтобы зажечь один сегмент в том или ином знакоместе необходимо один его номер.анод заземлить, чтобы включить одно знакоместо с одним сегментом или несколькими в этом же знакоместе (зависит сколько анодов сидит на земле), необходимо подать на сетку тот же общий провод, или 5вольт тоесть потенциал 0 и выше. фото сделал где в одном знакоместе горят все аноды- сегменты. извиняюсь что ошибся с цоколевкой. Да, понимаете только вы один, т.к. делали работу сами. Но ясно объяснить другим то, что делали, вы не можете из-за косноязычия  . Не пишите такими длинными предложениями, если не умеете описывать сделанное. Пишите короткими топорными фразами - типа "сегмент зажегся, когда с сделал то-то и то-то". Не пытайтесь обобщать (это у вас совершенно не получается), а пишите конкретно то, что делали. Если вы и на этот раз не прислушаетесь к совету, то придется вас заставлять в явной форме сообщать номера заземленных контактов вместе с фото того, что при этом получилось. Иначе работать с вами на дистанции невозможно. P.S. А для начала переделайте на рисунке номера контактов в правильную систему, чтобы вам по ней можно было и вопросы задавать и ваши ответы понимать. После этого я назову вам номер сегмента и номер знакоместа, где надо зажечь, а вы ответите номерами контактов, которые вам для этого пришлось заземлить. Только тогда ситуация имеет шанс проясниться. ====================================================================== Цитата(demiurg1978 @ May 18 2015, 12:33)  Чтобы зажечь один сегмент, на сетку + 5 V, на анод общий провод. А если сегмент и сетка имеют один и тот же потенциал (оба 0 или оба +5V), то что тогда? Этот вопрос важен, т.к. транзисторный ключ (в той схеме, что я привела) не может выдать на выходе ноль, а работает лишь в триггерном режиме: либо -30V, либо +5V. Пока нет ответа от demiurg1978, просьба к love777888 получить ответ экспериментально: подать +5V одновременно на сетку и анод, и сказать, что будет.
|
|
|
|
|
May 18 2015, 10:52
|
Местный
  
Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709

|
Понимаете, Ксения. Проанализировав схему я вывел следующее: + 32 вольта соединен с общим проводом питания + 5 V. Относительно - 32 V + 32 V + 5 V = 37 вольт. Значит это - анодное напряжение. А общий - сетки. Нельзя на сетки подавать напряжение больше чем на анод. Иначе лампа быстро сдохнет. Предлагаю следующую итоговую схему. ULN2003 - коммутирует общий провод - управление сетками = буфер-защита МК. PNP или P-Channel MOSFET транзистор - коммутирует +5 V - управление анодами. Активный сигнал для управления сетками - 1. Активный сигнал для управления анодами - 0. По сути динамическая индикация светодиодов. Аноды-аноды. Катоды-сетки. CODE //*.h //======================================================================== #ifndef SEVEN_SEGM_LED_IND_H
#define SEVEN_SEGM_LED_IND_H
#include "seven_segm_led_ind.h" //========================================================================
//======================================================================== #include <ioavr.h>
#include "avrlibtypes.h" //========================================================================
//======================================================================== #define ANODS_PORT PORTA #define ANODS_PIN PINA #define ANODS_DDR DDRA
//#define ANODS_2_PORT PORTA //#define ANODS_2_PIN PINA //#define ANODS_2_DDR DDRA
#define KATODS_PORT PORTC #define KATODS_PIN PINC #define KATODS_DDR DDRC //========================================================================
//======================================================================== #define ANOD_HANDRED_1 1<<3 #define ANOD_TEN_1 1<<4 #define ANOD_ONE_1 1<<5
#define ANOD_TEN_2 1<<4 #define ANOD_ONE_2 1<<5 //------------------------------------------------------------------------ #define A 1<<6 #define B 1<<7 // A #define C 1<<3 // F B #define D 1<<2 // G #define E 1<<1 // E C #define F 1<<5 // D #define G 1<<4 #define H 1<<0 //------------------------------------------------------------------------ #define ZERO (A | B | C | D | E | F) #define ONE (B | C) #define TWO (A | B | D | E | G) #define THREE (A | B | C | D | G) #define FOUR (B | C | F | G) #define FIVE (A | C | D | F | G) #define SIX (A | C | D | E | F | G) #define SEVEN (A | B | C) #define EIGHT (A | B | C | D | E | F | G) #define NINE (A | B | C | D | F | G) //========================================================================
//======================================================================== #define MAX_LED_INDS 4
#define ANODS_MASK (ANOD_HANDRED_1 | ANOD_TEN_1 | ANOD_ONE_1 | ANOD_TEN_2 | ANOD_ONE_2) #define KATODS_MASK (A | B | C | D | E | F | G) //========================================================================
//======================================================================== extern u08 dsp_buf [];
void clr_dsp_buf (void); //========================================================================
//======================================================================== typedef struct index_anods { u08 i; u08 anod; } index_anods; //========================================================================
//======================================================================== void proc_7_segm_ind (void); //========================================================================
//======================================================================== #endif //========================================================================
// *.c //======================================================================== #include "seven_segm_led_ind.h" //========================================================================
//======================================================================== struct index_anods __flash tab_index_anods [] = { {0x01, ANOD_HANDRED_1}, {0x02, ANOD_TEN_1}, {0x03, ANOD_ONE_1}, {0x04, ANOD_TEN_2}, {0x00, ANOD_ONE_2}, };
u08 __flash table_7_segm_char [10] = { ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, }; //========================================================================
//======================================================================== u08 dsp_buf [MAX_LED_INDS]; //------------------------------------------------------------------------ // Очистка буфера дисплея.
u08 dsp_buf [MAX_LED_INDS];
void clr_dsp_buf (void) { u08 i;
for (i=0; i<MAX_LED_INDS; i++) dsp_buf[i] = 0x00; } //========================================================================
//======================================================================== void proc_7_segm_ind (void) { static u08 _proc_7_segm_ind;
static u08 cnt_7_segm_ind;
switch (_proc_7_segm_ind) { case 0: ANODS_DDR = 0xFF; cnt_7_segm_ind = 0; set_timer (ST_PROC_CNT, DEC_NO_RERUN, 1); _proc_7_segm_ind = 1; break;
case 1: if (wait (ST_PROC_CNT)) { u08 cnt = cnt_7_segm_ind;
volatile u08 anods; volatile u08 katods;
ANODS_PORT = 0; KATODS_DDR = 0;
cnt_7_segm_ind = tab_index_anods [cnt].i; anods = tab_index_anods [cnt].anod;
katods = table_7_segm_char [dsp_buf [cnt_7_segm_ind]];
ANODS_PORT = anods; KATODS_DDR = katods;
set_timer (ST_PROC_CNT, DEC_NO_RERUN, 1); } break;
default: _proc_7_segm_ind = 0; break; } } //========================================================================
С динамической индикацией проблем не будет. Подправил и запустил старый проект.
Сообщение отредактировал demiurg1978 - May 19 2015, 04:38
Эскизы прикрепленных изображений
|
|
|
|
|
May 18 2015, 10:55
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(demiurg1978 @ May 18 2015, 13:38)  Понимаете, Ксения. Проанализировав схему я вывел следующее: + 32 вольта соединен с общим проводом питания + 5 V. Относительно - 32 V + 32 V + 5 V = 37 вольт. Значит это - анодное напряжение. А общий - сетки. Нельзя на сетки подавать напряжение больше чем на анод. Иначе лампа быстро сдохнет. Если, по вашим словам, -32V приложены не от земли, а от шины +5V, то тогда +5V, которые я прошу подать на сетку, в точности соответствуют потенциалу анода и не могут быть выше него. Т.е. такое соединение нельзя отнести к случаю, когда "на сетке напряжение больше чем на аноде". (просила "подать +5V одновременно на сетку и анод") Т.е. в этом случае аноды мы не заземляем, а подключаем к +5V. В этом случае потенциал сетки никак не может превзойти потенциал анода. Более того, при использовании ключей, работающих как триггеры между +5V и -32V, вообще НИКОГДА не может возникнуть ситуация, когда потенциал сетки был бы "положительнее" потенциала анода, т.к. ключ фактически перекидывает потенциал сетки между потенциалами катода и анода. И, пожалуйста, не надо писать программы (это сильно преждевременно), пока мы не определились с зажиганием индикаторов от уровня TTL. Тем более что у ТС микросхемы ULN2003 тоже наверняка нет.
|
|
|
|
|
May 18 2015, 13:21
|
Местный
  
Группа: Участник
Сообщений: 207
Регистрация: 1-05-15
Из: Брест
Пользователь №: 86 471

|
Цитата(Xenia @ May 18 2015, 12:50)  Пока нет ответа от demiurg1978, просьба к love777888 получить ответ экспериментально: подать +5V одновременно на сетку и анод, и сказать, что будет. Экпериментально подал +5 вольт, на сетки и на аноды все светиться как и от земли. Скажите откуда вы взяли в схеме +32 вольта? Что у микропроцессорной части земля, что у других блоков-одно и тоже на прозвонку показывает мультиметр 0000. Там отдельный стабилизатор на -32 вольта с отдельной обмоткой но выпрямитель его связан с общим проводом схемы.
Сообщение отредактировал love777888 - May 18 2015, 13:28
|
|
|
|
|
May 18 2015, 13:41
|
Местный
  
Группа: Участник
Сообщений: 207
Регистрация: 1-05-15
Из: Брест
Пользователь №: 86 471

|
Цитата(Xenia @ May 18 2015, 10:23)  demiurg1978 высказался совершенно правильно - прекращайте поверку "сразу всего", а проверьте толком работу одного единственного сегмента! (по собственному выбору). Удается ли вам управлять знакоместом, где выбранный вами сегмент зажигается? Удается ли заменить один светящийся сегмент в цифре на другой? В каких условиях это происходит (т.е. какие контакты дисплея вы при этом заземляете)? Знакоместо полностью управляется, все отдельные его сегменты и сама его сетка. Еще раз о принципе засветки: мы подаем землю или +5в на сетку и мы активируем знакоместо, но для того что бы, что то там светилось, я говорю про сегменты знакоместа подаем на свой сегмент массу или +5в.
|
|
|
|
|
May 18 2015, 13:46
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(love777888 @ May 18 2015, 16:41)  Знакоместо полностью управляется, все отдельные его сегменты и сама его сетка. Еще раз о принципе засветки: мы подаем землю или +5в на сетку и мы активируем знакоместо, но для того что бы, что то там светилось, я говорю про сегменты знакоместа подаем на свой сегмент массу или +5в. Вот и отлично, что они светятся - тогда транзисторные ключи, неспособные давать чистую землю на выходе, нам как раз подойдут. Для нас нет разницы в том, относительно земли или шины +5V приложено отрицательное напряжение, т.е. если мы станем подавать напряжения на аноды и сетки от одинаково устроенных ключей, то в светящемся состоянии у сеток будет равные потенциалы с анодами, но никогда не выше. А 32 там вольта или 37, ключу в общем-то все равно, т.к. его рабочее напряжение заведомо выше.
|
|
|
|
|
May 18 2015, 15:06
|
Местный
  
Группа: Участник
Сообщений: 207
Регистрация: 1-05-15
Из: Брест
Пользователь №: 86 471

|
GRUNDIG FINE ARTS R3 Еще про типы люминсцентных индикаторов взято с радиокотов http://radiokot.ru/forum/viewtopic.php?t=8441Накопалось несколько основных вариантов схем включения: 1. Условно назовем - однополярная: накал - постоянное положительное напряжение, сетки и аноды - постоянное положительное напряжение 12..30В в рабочем режиме, 0 - запертые, самая примитивная; 2. Пусть будет - с положительным питанием  : накал переменным напряжением от отдельной двухсекционной обмотки трансформатора, ее средняя точка м.б. заземлена или приподнята относительно земли, сетки и аноды - постоянное положительное напряжение 20..30В в рабочем режиме, 0 или небольшой минус - запертые; 3. Пусть будет - с отрицательным питанием: накал переменным напряжением от отдельной двухсекционной обмотки трансформатора, ее средняя точка имеет относительно земли потенциал примерно -25..-30В, сетки и аноды - 0 или небольшой плюс в рабочем режиме, -25..-30В - запертые. Вот походу у меня третий вариант.
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|