Allegria ! o relojoeiro louco está de volta !!

O título é deliberadamente provocativo porque teria sido:

Eu exibo um MATRICE: HW SW TÉCNICA E USO

Isto porque o que eu estou indo para descrever são o display dot matrix 8×8 (o 7×5 o 8×5) buscando compreender os métodos de hardware e software para a sua utilização. Por isso eu produziu alguns protótipos (estes foram estado da arte) relógios digitais que usam apenas estas matrizes. Ele afirma que as características HW são quase idênticos (ela apenas muda o pino) tanto ANODO comum que CATODO COMUM. Então, antes de entrar especificamente no’ baseando-se em algum vídeo para mostrar alguns desses protótipos.

NB: para exibir vídeos: destino clique sul ligação: irá abrir uma caixa de diálogo perguntando se você deseja abrir ou salvar o arquivo. Os vídeos podem ser vistos com o Windows Media Player ou semelhante para arquivos WMV.

Mini Binary Clock

Este vídeo demonstra como uma matriz simples 8×8 Você pode exibir um relógio “RAIL”. Se tivesse pensado em mente tempo atrás em vez do já apresentado em outro artigo meu !

O relógio cascata

Neste vídeo, os valores de relógio individuais são exibidos ponto por ponto: a sequência mostra a formação de valores a partir da esquerda, com as dezenas de horas e, em seguida, a seguir até ao minuto. O segundo exame é exibido por um terceiro LED / pixel a partir da esquerda no visor.

O relógio de deslizamento

Grandes personagens que compõem as horas, os minutos e os segundos para rolar da direita para a esquerda por tempo indeterminado. Dado o tempo necessário para a formação do caráter, você perde cerca de 2/3 segundos entre o cheio eo posterior exibição.

palavras relógio

Neste último vídeo um relógio “em palavras”. Neste caso não use um display de matriz de pontos, mas um dispositivo específico: o DL2416T. É uma exibição “inteligente” composto 4 dígitos com múltiplos segmentos que podem exibir números, letras e alguns caracteres especiais. este dispositivo, agora obsoleto, Ela agora está disponível em versões atualizadas, mas infelizmente muito “querido”. Aqueles em minha posse derivam da canibalização de algumas impressoras de matriz dos anos 80/90. Como você pode ver no vídeo, Este é o único protótipo terminado (PCB com tanto o visor e a parte “a Principal” com os componentes electrónicos de controlo e de micro Arduino_Nano).

CARACTERÍSTICAS DOS matriz de exibição

Na Internet há muitas imagens e exemplos sobre o uso dessas matrizes: Eles podem ser uma ajuda para appronfondire seu uso específico. No entanto, muitos exemplos são superficiais e, na minha opinião, não abrangente. Então, o que vou descrever é apenas o resultado de estudos e experiências pessoais. Qualquer referência é puramente uma coincidência.

Na figura abaixo pode ser visto: o visor 8×8, o módulo que abriga tanto o ecrã do seu controlador (MAX7219), o layout lógico atribuído e gerido por esboço, e, finalmente, a ocupação dos pinos da matriz no módulo. eu’ alojado na orientação do módulo de visualização tem uma única posição (8 direita e pin 8 para a esquerda) pelo qual se for colocado de cabeça para baixo, obviamente, ele não liga corretamente. A partir da quarta figura que você pode verificar a atribuição do pino de exibição com os do controlador (MAX7219), Por conseguinte, pode-se deduzir que são os cátodos (Chamarei “DIGIT“) e quais são os ânodos (Chamarei “SEGMENTOS“). A exibição em questão é CATODO COMUM.

A razão pela qual eu chamei os cátodos “DIGIT” e anodos “SEGMENTOS” Ela vem de como ele é gerenciado a partir do hardware ou software, o visor eo controlador associado. Estas exposições podem ser comparados à exibição 7 segmentos + 1 definido como “UMA”, “B”, “C”, “D”, “E”, “F”, “G”, “DP” (ponto decimal ou oitavo segmento). cada coluna 8 LED / pixel da matriz (ver figura terceiro) Pode ser uma exibição 7+1 segmentos e, em seguida, uma matriz pode ser comparada a uma cadeia de 8 visor segmentado. Para ligar um único LED / pixel é suficiente para aplicar o pin “cátodo” da coluna para a terra e o pino “anodo” o único segmento a um valor lógico “1” (+5V queda através R). E’ claro que, a fim de formar um caráter ou um número é necessário para ligar levou / pixel de acordo com um formato pré-determinado ao mesmo tempo (Persistência del'immagine ao olho): ou usar a multiplexação. Não faz sentido para conectar dígitos e segmentos (8+8 PIN) para as saídas de um microcontrolador (com resistores, obviamente, cair) e complicações desnecessárias programáticas.

Em meus projetos que eu sempre costumava pensar que o “principe” de “registro de deslocamento” pois com apenas 3 pin capaz de conduzir uma corrente de 8 matrizes ligados em cascata uns aos outros ou 8 exibição de um 7 segmentos. Com uma limitação (Então, vamos ver que não é) : apenas módulos “CATODO COMUM”. este chip (baixos custos se um módulo com tanto do visor vale a pena 1,5 uma 5 euro) é o MAX7219. As principais características:

  • 3 PIN para a condução (LOAD / CLOCK / data_in).
  • multiplexing integrada.
  • Regulável programada.
  • Pin data_out para ligar um outro visor.
  • Administra indiferentemente tanto ao visor segmento que as matrizes.
  • 7 registros achados para controles operacionais e 8 per i dígitos.
  • Limitação de brilho, mesmo do lado de fora com ajustador.

Como usar e programar o chip MAX7219

Usando este chip agora para todos os projetos que envolvem a gestão do display é uma matriz ou matriz de LED segmentado também para RGB. Sobre LED RGB logo eu publicar o “ESTRELA DO NATAL” embora não seja a temporada !. Nós aprofundar em seguida, com o chip e pin dos vários registros:

Dg0 / DG7 dirigir os cátodos da exibição, SEG_A / SEG_DP Voar os ânodos do display. Per i exibir um matrice Dg0 / DG7 Eles se referem às colunas enquanto SEG_A / DP Eles referem-se a LEDs individuais / coluna pixex. eu’ alocação de segmento / LED e seu valor binário deve ser configurado no Registro “DADOS” tendo em conta que o bit “DP” vale 128 (0x80). o pino DE Ela é relativa ao dados de entrada , pino Load / Cs selecionar o chip, pino CLK fornece relógio e, finalmente, o pino DOUT É o que permite a conexão em cascata de um outro chip para um máximo de 8. Última pin “EU COLOCO “para ajustar o valor de luminosidade, conectando um R 10K (um um aparador) o pólo positivo.

Vamos ver os registros:

Use e significado de registos individuais:

  • inscrição 0: Posto a “0x00” Ele serve apenas para exibir em cadeias. (0VVER qualquer operação durante a exibição específico).
  • Logs 1/8: Estes são os registros que atendem os segmentos individuais de inflamação de segmentos individuais (See Registar formato de dados).
  • inscrição 9: Decode_Mode: Ele precisa de chip para ver se ele é usado o código BCD ou nenhuma.
  • inscrição 10: Alterar brilho. valor a 0 uma 15. Com um valor de zero não vai sair da exibição, mas seu brilho mínimo. Você pode fazer efeitos luminosos trazer este registo de 0 uma 15 de uma forma progressiva e cadenciada.
  • inscrição 11: limite de varredura: na verdade, deve indicar quantos dígitos são digitalizados: uma mesa sobre a folha de dados mostra os valores a serem atribuídos.
  • inscrição 12: modo de operação (Desligar). Alternando o valor deste registo (da 0x00 um 0x01) Está obtido por ligar ou desligar a exibição (sem perder qualquer valor presente). Ela pode ajudar a criar a piscar efeito alternando a maneira medido dois valores.
  • inscrição 13/14: não.
  • inscrição 15: Teste dispositivo: você começa a iluminação de todos os LEDs ligados.

Basicamente para executar um comando específico, por favor, envie para o chip 2 byte: o endereço de registro e o valor que deve assumir como uma função do mesmo comando: por exemplo, normalmente começam você deve enviar a seqüência: “0C00“.

 

O software de gerenciamento

Aqui está a parte mais interessante: como gerenciar estas exposições. Na net, obviamente, você pode encontrar numerosos exemplos e bibliotecas e no início eu tinha baixado algumas dessas bibliotecas: LEDCONTROL e LEDCONTROLMS e utilizado para os primeiros testes . Não estou satisfeito são válidos, mas pesonalmente por isso que eu desenvolvi meu benefício a “Biblioteca sui generis” capaz de gerir tanto cátodo exibição anodo domune. I definido “sui generis” porque não foi escrito sobre as linhas, mas é na verdade um arquivo (.ino) que contém todas as funções necessárias e implementadas para ambas as matrizes que para 7 segmentos. E’ apenas incluir esse arquivo no desenho e, em seguida, fazer as chamadas. (Reservo-me o direito de converter este arquivo em uma verdadeira biblioteca). Como as palavras de abertura deste artigo diz respeito às matrizes vemos como eles podem ser gerenciados.

Primeiro, você deve definir quantas matrizes devem ser tratados: um ou mais. Se para uma única matriz, não há problemas particulares, quando se trata de connetterne mais de uma deverão ser aprovadas ou em PCB ou fazer conexões de vôo. Vemos essa figura:

A primeira matriz é ligado ao micro com o pino clássico LOAD / DIN / CLOCK: por isso, se ele é o único não precisa de nada. A partir da segunda ligações LOAD / CLK estão ligados entre si, mas a segunda matriz (ou o terceiro e assim por diante) sua DE Ele é ligado ao DOUT da matriz anterior. E’ tarefa do software alvo corretamente matrizes. (Lembre-se do registo “zero” ?) . O uso deste pequeno módulo facilita conexões:

As entradas são aqueles observados antes e o pino de saída são VCC, GND, CARGA, CLK, DOUT. Para o protótipo relógio deslizamento ou em cascata, Eu costumava 4 exibir acomodadas neste PCB:

 

À esquerda do pino de entrada principal, na parte inferior direita do pino de saída para ligar quaisquer outras matrizes. O espaço de cada módulo é delimitada por retângulos no vermelho. Não perca o pino VCC e GND.

Estamos tendo dito que nós fazemos os primeiros passos para a gestão. As primeiras operações a serem realizadas em “configuração” de quaisquer esboços são: (doravante para “DISPOSITIVO” identificar o chip e “EXIBIÇÃO” os algarismos individuais ou as colunas da matriz). Todas estas operações devem ser executadas para cada “dispositivo” presente. Deve-se notar que, quando o sistema é, na maioria dos casos, você vai ter um auto-teste do chip que irá ligar todos os LEDs para o qual ele pode ser uma boa idéia para realizar estas operações antes de qualquer outro caso contrário você terá a persistência de LEDs acesos.

  • Atribuição dos pinos do micro chip como saída.
  • Faça o Shutdown para inicializar o chip.
  • Ajustar o brilho.
  • Definido para a codificação.
  • Defina o modo de teste.
  • Defina o “Limite de varredura”.

Todas estas operações são geridas através de uma função em minha biblioteca definida como “Led_MX_Init” que configura os pinos, efectua a inicialização e atribui o método “CATODO” O “anodo” comum. Para maior comodidade para depuração desta biblioteca Eu também adicionei (através bandeira no INIT) a capacidade de visualizar de saída em série os valores devem ser enviados para os registos. Para o desenvolvimento da biblioteca Eu implementei um esboço que, serial, estabelecer um diálogo através de um menu que permite a execução de todas as funções da biblioteca para ambas as matrizes para exibição 7 segmentos.

Eu tinha especificado que o chip só pode gerenciar o cátodo COMUM exibição: verdade até certo ponto, porque você também pode usar os ANODO comum, mas as seguintes medidas:

  • A HW nível: inverter os sinais Dg0 / DG7 interposição de um inversor HEX (74LS04). Desta forma ANODOS chega ao valor lógica correta.
  • A SW livello: ativar o flag “ACMODE” função INIT na biblioteca. Na presença desta funções de activação que gerem os LEDs / pixel inverter o valor transmitido através do’ função especial (Led_Value = ~ Led_Value;).
  • No estado de’ biblioteca de arte usa esta função somente para exibição 7 segmentos.

Vamos agora especificamente para cada do relógio primeiros protótipos descritos os métodos e truques usados ​​no desenvolvimento do mesmo. Como se trata de relógios é claro que precisamos de um RTC do qual se lê a hora ea data. Não existem especificações particulares: você pode usar DS1307 o Ds3231 ou o PCF8583 (modelo vetusto). As únicas diferenças são a leitura dos registros e método de decodificação. Aliás eu não usar qualquer biblioteca para gerir estes RTC: Eu acessar diretamente para registrar com as funções de biblioteca “fio“.

O relógio binário: Este é o mais simples de todos os outros. O esboço gere um dispositivo (matriz 8×8) e após a inicialização do dispositivo e verificado para o funcionamento adequado da RTC, executa um ciclo na função “laço” leitura dos registros valores de tempo RTC, minutos,segundos,dia, mês. Como estes valores são formados “BCD” (as horas 12 Eles estão em binário 0001 0010) sem decodificação não é necessária para a sua visualização. Vamos voltar: Disse que a matriz pode ser considerada como um conjunto de 8 exibição, em que cada coluna representa a 8 segmentos (7+1) cuja codificação é atribuída no registo 1 para a coluna 1, 2 para a coluna 2 (e assim por diante para as outras colunas) respeitando a codificação imposta pelo chip (veja a figura “registo de dados“). Portanto, o truque é: para cada coluna de selecção e, em seguida, o valor é carregado “famosas 12 horas” Eles são atribuídos da seguinte forma:

E assim por diante para todas as outras colunas. E a máscara cobre os bits cuja exibição não é necessário. É, em seguida, para controlar a coluna de lascas por coluna (de 1 um 8 mas se apenas o específico 1, 2, 4, 5, e 7) e isso proporciona a função de biblioteca “LEDMTX_Setcolumn” que fornecem o número de dispositivo, o número da coluna e o seu valor.

O relógio de deslizamento: Isto é mais complexo do que o anterior, mas não é complicado e é única razão em’ algoritmo que determina o deslizamento dos valores. Ele se encaixa neste contexto outro arquivo (Led_Tabel.ino) que está na forma de matrizes, quais são as configurações binárias que deve assumir as colunas individuais para a representação de um caractere numérico (da zero a nove) para ambas as matrizes para exibição 7 segmentos. Agora, se estas exposições a configuração é determinada e inequívoca, para matrizes que têm disponível uma grade de 8×8 LED / pixel torna-se livre escolha do desenvolvedor para configurar os vários números como a maioria dos agrada.

Aqui está um exemplo: para visor segmentado o número zero tem a seguinte configuração: 0111 1110. Qualquer ponto decimal (Segmento “DP“) Ele pode ser inserido levando a “1” ele mordeu 8 ou ativando a bandeira na função apropriada. Assim, um byte para cada número e a função que executa o visor apontado pela matriz como uma função do número. (de zero ponta do primeiro byte da matriz, o segundo, e assim por diante).

Diferente é o sistema de matrizes: Na verdade, para o mesmo número que leva bem 8 configurações, ou seja, um byte para cada coluna. O mesmo número de zero é definida como se segue: “0,60,98,82,74,70,60,0“. Os valores são expressos em decimal e configuração é uma escolha pessoal. Segue-se que a função que exibe o número deve apontar para o primeiro byte de cada série * 8 (“0” * “8” = “0” e que aponta para o primeiro byte; “1” * “8” = 8 e que aponta para o primeiro byte que configura a um número). Então coluna / coluna torna a visualização. A figura abaixo é um exemplo de como eles podem ser compostos dos caracteres na grade 8×8.

Dito isso, ver o que é o algoritmo concebido por mim, para exibir os valores de um relógio por deslizamento da direita para a esquerda da coluna por coluna. Deslizante está no 4 dispositivos para um total de 4*8 = 32 coluna: Você, então, criar uma matriz de 32 coluna. I omitir a parte inicial da instalação (RTC, init 7219 etc.) e, em seguida, no ciclo “laço” você faz:

  • Lendo os registros RTC
  • Descodificação de horas valores, minutos e segundos de modo a obter os valores individuais das dezenas e as unidades. Estes valores são usados ​​para apontar no início da tabela de caracteres dos grupos individuais 8 byte.
  • A partir do valor das dezenas de horas uma rotina extrai o byte a byte relativo a partir da configuração da tabela e inserções na posição 32 matriz o valor extraído um de cada vez. Inicie neste ponto a matriz digitalizar a partir de posição “zero” mostra o conteúdo da primeira coluna do primeiro dispositivo para a esquerda e continua durante 32 posições (Os dispositivos são 4 ligados em série). Uma vez que esta verificação é ele desloca-se para a esquerda por uma posição ao longo da matriz, e o ciclo inicia-se novamente com o byte seguinte de configuração. Quando o ciclo está terminado 8 bytes continua com as unidades de horas até’ da segunda unidade com o mesmo sistema. Obtém-se assim o efeito de deslizamento É. Mas entre as leituras do outro’ RTC e sua exibição completa são perdidos 2/3 segundos por ciclo.

Neste ponto, vem em um aspecto ainda não é considerado na gestão de exibição. Como eu disse que os dispositivos são 4 ligados em série. Em seguida, também para dirigir o dispositivo inteiro (do primeiro ao último) sabendo que cada comando é composto por 2 byte (endereço / valor) Precisamos enviar um conjunto de bytes igual ao número do dispositivo no qual direcionar valores e comandos:

Ou, se o dispositivo é a quarta sequência é a seguinte: “0000 0000 0000 xxxx“. (Se o dispositivo foi a primeira sequência seria: “xxxx“)

Pomba: “0000” É o código de OPERAÇÃO NULL, “xxxx” é o comando a ser enviado para o quarto dispositivo (primeira à direita). Mas a serialização do quarto grupo de bytes (na prática, a última). O chip recebe o primeiro 4 mas uma vez que bytes no ciclo subsequente também recebe a zero, deslizante os vários bytes de um dispositivo. Para tudo isso ele fornece uma função específica através da leitura de uma tabela (preparado para 8 dispositivo) Eu 4 valores, obviamente, a partir da última. E’ Mas a mesma função que determina com base no número dispositivo para enviar muitos bytes.

Desculpe, mas é mais fácil de fazer do que dizer. Espero que eu era clara, mas CUIDADO tudo é relativo para a primeira posição dispositivo ao qual é atribuído o número 1.

O relógio cascata: Aqui estamos mais complexo, do ponto de vista da implementação, aqueles persentati até agora. Confesso que tive alguns problemas na construção do algoritmo certo para alcançar o efeito que você viu no filme. Ignorando também aqui as operações padrão que são realizados em “configuração” para ir directamente para o método de invenção. Em seguida, o ciclo “laço” Você começa a ler os valores RTC, convertendo-os em dezenas de horas e minutos, unidades de horas e minutos. Os segundos são exibidos pelo piscar no terceiro dispositivo da esquerda, lED “DP” da primeira coluna com base no valor do bit “1” segundos. Do filme pode ser visto como inicialmente todas as matrizes são definidos com os valores, mamãe, cada matriz altera apenas se o valor que deve exibir alterações em comparação com o anterior. Se todos os valores lidos a partir do RTC (dezenas de horas ou minutos, unidades de horas ou minutos) mudança, em seguida, actualizar o seu visor é activado. Assim, cada 60 segundos (“cerca de” porque a tela cheia de uma matriz ocupa um pouco de tempo) Ele atualiza os minutos ou horas, etc.. Para conseguir o efeito “cachoeira” dos LEDs individuais de cada coluna que têm de ser tomadas a partir da mesa (Foram produzidos três para que você possa alterar a fonte de dados) o único byte (primeira-oitavo) e começa a piscar o primeiro LED (pouco 1) por 15 Senhora, em seguida, continuar com o segundo, mas fazendo de modo que disse LED anterior permanece acesa (de acordo com a configuração do carácter). Os bytes zero é ignorado. O ciclo é repetido até que a conclusão dos oito bytes. Quando este ciclo é passado para o próximo caractere até a conclusão. Eu 15 ms de atraso entre um flash e o outro são um compromisso entre a velocidade de execução e efeito desejado. Claramente, o piscar dos segundos não serão precisos, especialmente se eles mudam ao mesmo tempo, a hora eo minuto.(da 23.59 uma 00.00).

Não é fácil para descrever este mecanismo, me mesmo depois de ter produzido e modificado pela adição de parâmetros variáveis, Mal posso ricomprenderlo (!!!). Se você é um iniciante em programação, as rotinas são suficientemente comentou para ser entendido.

O relógio de voz: E aqui está a’ passado (esperando, entretanto, para não tê-lo aborrecido). Eu também queria mencionar isto, a fim de fazer uma comparação entre os diferentes módulos de display: neste caso, tirou da gaveta do material antigo, mas ainda totalmente funcional, é o DL2416T uma exibição especial hoje substituído por DLR2416. Infelizmente, este último é caro.

A diferença entre os dois modelos podemos vê-lo com esta figura:

A primeira consiste em 4 visor segmentado (14 se eu não ter contado errado) enquanto que a segunda é uma matriz de 7×5. As características destes exibição, compatível, como ambas as funções dos pinos, Eles podem ser resumidos como:

  • 4 dígito individualmente endereçável (“00”, “01”, “10”, “11”).
  • Dispositivo individualmente endereçável (dois pinos selecção)
  • apagável individualmente.
  • Conjunto de caracteres especiais, alfanumérico e numérico.
  • Gestão de multiplexação automática.
  • comida 5 um 6V max.
  • Gestão cursor
  • Outras características na folha de dados de cada.

Na figura abaixo, válida para os dois modelos, o pino de conexão:

Nós verificamos: 2 pino para selecção (CE1 / 2), 2 pin para a gestão do cursor (CUS,CUE), dois pinos para a seleção de dígitos (A0 / A1), PIN CLR cancelamento, PIN BL para desligamento sem perda de valores (úteis para o blincaggio), 7 PIN (D0 / D6) para ENTRADA DE DADOS, Finalmente, o pino NÓS para a escrita do valor. Uma transição high-low-HIGH permite a escrita de que está definido. valor óptimo experiente: 5nos.

em seguida, a complexidade da conexão com dois monitores (como no protótipo), Eu tinha que produzir um PCB como este:

I ter concebido um circuito como o referido PWB serve apenas o alojamento das duas telas por pinos de ligação em paralelo D0 / D6 e trazendo para conectar-se “a Principal” i pin A0 / A1, NÓS, CL1, CL2, BL1, BL2. I pin CUS e CUE Neste contexto, eles não são usados ​​e estão definidas para valores padrão (nível lógico “0” e “1”). Uma nota especial diz respeito ao pino CL1 / 2 e BL1 / 2: de acordo com a folha de dados para o cancelamento de um display ou seu abblencamento que são independentes da seleção da mesma tela: Não pode ser (mas é uma escolha) conectados em paralelo, se você quiser excluir ou desativar a única tela. O que eu esperava mais tarde no software. Aqui, em vez do PCB da placa principal para o micro Arduino_Nano e os dois 74HC595.

 

Vamos passar então para o coração do protótipo.

É claro que, dado o número de conexões (6 per i DADOS DE ENTRADA) e 9 para comandos, Eles iriam ficar sem tudo pin ARDUINO (Um ou Nano para ser deixando de fora os mega etc.), por isso precisamos de uma abordagem diferente, como pode ser visto neste diagrama de circuito:

No gráfico podemos ver 2 74HC595 (registro de deslocamento) onde no primeiro eles são definidos nas saídas pino D0 / D6 em relação à da entrada de dados do mostrador, enquanto na segunda o pino de comando são definidos: Ao/A1, CL1 / 2, BL1 / 2, CE1 / 2. Os dois chips são ligados em cascata e de acordo com as regras do registo de deslocamento (recepção de dados em série para transmiti-los em paralelo). sinal QH que se conecta a entrada de dados o segundo.

O esquema está relacionada com a primeira versão em que não é estritamente necessário para separar os sinais OE, THE, CLK porque leva o sinal é individualmente OE que controla a saída Suporte / Q7 (caso contrário, eles estão em alta impedância). E’ no entanto a minha escolha a separação de sinais. o sinal SR (master reset) Ele serve para repor o chip. O pino de comando estão ligados ao pino Arduino; o sinal “NÓS” É independente do resto e é atribuída a um outro micro pino.

Como para chips 7219 Você pode ser definida “inteligente” porque, em adição à função de registo de deslocamento, precisa de comandos para a activação de funções, Eu 74hc595 eles são “estúpido” porque eles simplesmente limitado a receber os bits de série e se estes são > 8 passar bits sucessivos para a próxima ficha, e assim por diante. Aproveitando-se deste sistema, o algoritmo para controlar a exibição individual pode consistir em:

  • Enviar a um chip 8 pedaços relacionados com a configuração de caracteres (8 bit sempre de zero).
  • Enviar para a próxima ficha do bit de controle para selecionar a configuração de visualização e os dígitos; operações, estes, levada a cabo na sequência.
  • Estabilizar os sinais que permitam a’ OE os dois chips.
  • sinal do interruptor “NÓS” para a escrita real em exposição.

E’ claro que ter que escrever sobre 8 dígito (2 visualização por 4 dígito) sigole as letras que compõem o texto completo (como você pode ter visto o filme) necessário determinar a sequência precisa de comandos e o caractere a ser enviado . A este respeito, ter construído o quadro seguinte.

Enquanto você lê esta tabela ?. exemplo: você deseja carregar a exibição “1” dígito “0” com um personagem: em seguida, você é enviado para o primeiro chip e o valor do personagem de acordo com o chip valor decimal “62“. A saída de bit de layout (Q0 / Q7) Ele corresponde aos sinais A1 / A0, BL2, CL2, CE2, BL1, CL1, CE1 que eu estou no nível lógico “1” (não operacional) ou nível lógico “0” operacional. Não engane os números mostrados na tabela como eu têm sido utilizados para calcular o valor corretamente quando eles são zero ou um. Outra coisa a ter em mente é que, dependendo de como os chips foram conectados aos sinais, e, em seguida, para exibir, não é dito que o primeiro chip deve necessariamente ser o único para os dados ou que para os sinais.

Ainda um pouco de paciência: Também completamos este protótipo com o seu software. Como sabem também, neste caso, se trata de gerir um relógio. O esboço não é complexa mas pode ser brevemente descrito como se segue:

  • activação de Solita’ RTC com a controlos de presença e de eficiência habitual que, na ausência do sistema.
  • Configuração do pino conectado ao chip 74HC595.
  • No circuito “laço” leitura dos valores RTC, transcodificação do mesmo e preparação de uma corda consiste das palavras “São as horas ” os valores de tempo (dezenas e as unidades) intercaladas com um ponto, em seguida “THE ” valor do dia, transcodificação do mês e transcodificação da semana. Assim, no final da string conterá:
  • É o horário de xx.xx xx Maio Sexta-feira —-> exemplo. Os espaços entre uma palavra e outra são obtidos com o personagem “00” binário que não produz nada visível.
  • Depois de construir a string, de acordo com o seu comprimento real é inserida em uma matriz d 8 posição de byte 8, o primeiro caractere da string.
  • Ele executa um ciclo 8 ciclos para enviar os valores da matriz para 8 exibição dei dígitos (conjunto de comandos específicos para mostrar e dígitos e data_value).
  • Ele mantém a matriz de mudança 8 bytes da direita para a esquerda.
  • É repete o ciclo.

Obtém-se, desta forma, o efeito de deslizamento que a velocidade programada de 250 ms pode ser considerado ideal para a visualização.

 

CONCLUSÃO:

Eu reconheço que este artigo é bastante longo e, provavelmente, eu descrevo coisas óbvias e risapute. Mas do meu ponto de vista para ver formas e escolhas de implementação, Eles sempre podem ser uma boa fonte de informação especialmente para aqueles que são iniciantes ou simplesmente um amador como eu.

Se, então, eu escrevi algumas imprecisões, por favor não desculpa.

Obrigado pela sua atenção.

GVSOFT Maio 2018

PS: se você estiver interessado em escrever documentação esboço e relacionado a gvsoft75@hotmail.com.

 

 

 

 

2 respostas
  1. theremino
    theremino diz:

    Eu estava vendo coisas, ou em um dos relógios loucos anteriores havia uma explicação de como decodificar o sinal DCF77?
    Eu tentei o item, mas não consegue encontrá-lo.

Deixe uma resposta

Quer juntar-se a discussão?
Sinta-se livre para contribuir!

Deixe uma resposta