PAINEL DE MENSAGENS COM STM32F103C8T6
USANDO A PLACA PE-STM32

Quando projetei a placa PE-STM32 eu a fiz na intenção de me auxiliar em uma série de projetos. A ideia era facilitar e agilizar ao máximo o desenvolvimento e testes com o microcontrolador STM32F103C8T6. Inseri na placa uma quantidade razoável de recursos e um deles foram 3 displays matrizes de ponto (LEDs). Nesse artigo você poderá ver um pouco da teoria envolvida no controle desse tipo de matriz de ponto, sem o uso de CI's como o MAX7219 com o controle feito literalmente "na unha" e no final você terá um pequeno painel de mensagens com matrizes de LEDs.


UM POUCO DE TEORIA

Antes de prosseguir com qualquer explanação sobre o funcionamento do circuito, seria interessante tentar compreender mais sobre o principio “fisiológico” e também “psicológico” sobre o qual este tipo de painel se apoia: a Persistência Retiniana e o fenômeno Phi.

O conceito da Persistência Retiniana é conhecido desde o antigo Egito e apesar dos trabalhos desenvolvidos por sir Isaac Newton, só em 1824 é que Peter Mark Roget definiu-o satisfatoriamente como "a capacidade que a retina possui para reter a imagem por cerca de 1/20 à 1/5 segundos após o seu desaparecimento do campo de visão".

Por muito tempo acreditou-se que este fenômeno fisiológico fosse o responsável pela síntese do movimento. Porém posteriormente chegou-se a conclusão que ele constitui um obstáculo à formação das imagens animadas, pois tende a sobrepô-las na retina, misturando-as entre si.

O que salvou o cinema, por exemplo, como aparato técnico foi a inserção de um intervalo “negro” entre a projeção de um fotograma para outro, permitindo atenuar a imagem persistente que ficava retina pelos olhos (retina). O fenômeno da retina explicada através do exemplo do cinema, é o fato de justamente não se ver este intervalo (quadro) negro.

A síntese do movimento pode, na verdade, ser explicada através de um fenômeno psíquico e não óptico ou fisiológico, e foi analisado por Max Wertheimer e Hugo Musterberg entre 1912 e 1916 ao qual se deu o nome de fenômeno Phi. Este providencia uma “ponte” mental entre as figuras expostas aos olhos permitindo ver uma série de imagens estáticas como apenas um movimento continuo, isto é, se duas imagens são expostas aos olhos em diferentes posições uma após a outra e com pequenos intervalos de tempo, os observadores julgam que se trata apenas de uma imagem que se move da primeira para a segunda posição.

Baseado neste principio, pode-se através de uma matriz de pontos (LEDs) criar a ilusão do movimento de um caractere ou mesmo de uma sequência deles, apenas montando-os em posições diferentes (sequência lógica) com pequenos intervalos de tempo para cada montagem, exatamente como o que é feito com os fotogramas no cinema. O intervalo “negro” é feito com o “desligar” momentâneo de toda a matriz de LED’s.


O CIRCUITO

Para essa experiência eu utilizei a Placa PE-STM32, disponível nesse site para consulta. Sendo assim, recomendo a leitura do artigo a respeito da placa. A figura acima mostra a página 3 do circuito da placa que contém os 3 displays tipo matriz de ponto.

Note que as matrizes de LEDs utilizadas tem 5 colunas com 7 linhas, totalizando 35 LEDs por matriz. No mercado existem vários tipos, com cores, tamanhos, e outras variantes interessantes. As matrizes presentes na placa são bem pequenas de 0,7 polegadas.

U3 (74HC154), é um demux de 4 para 16 linhas . A entrada deste CI recebe um valor BCD e este valor é refletido na sua saída na forma de posição decimal. É importante salientar que este CI tem a saída "barrada" (invertida), ou seja, o pino na saída vai a nível lógico “0” sempre que selecionado, permanecendo todos os outros em nível lógico “1. Dessa forma fica fácil controlar até 16 colunas com apenas 4 pinos de I/O. Nas entradas A,B,C e D foram ligados os pinos de I/O do microcontrolador PB4, PB5, PB6 e PB7 respectivamente. Além destes o pino PA7 que controla o pino G1 de U3. Quando este pino é levado ao nível lógico “1”, todas as saídas são colocadas também em nível lógico “1”, e quando colocado em nível lógico igual a “0” temos o dado BCD da entrada ABCD, refletido na saída do CI na forma de posição decimal.

Os transistores Q1 a Q15 são do tipo PNP, pois são ativados pela saída “barrada” do 74HC154. Note que não há qualquer resistor limitador para os LEDs da matriz. Apesar de termos 3.3VDC alimentando cada LED da matriz, devemos considerar a queda de tensão provocada pelo transistor e a queda de tensão provocada por U4. Somando as mesmas a tensão cai para perto de 2.3V, tensão próxima ao limite dos LEDs das matrizes escolhidas. Além disso, temos também que lembrar que devido à varredura, o tempo em que cada LED permanece ligado é de apenas alguns milissegundos.

Nas linhas temos o CI U4 (ULN2003), um drive com saída inversora capaz de suportar até 500mA por pino e tensões de até 50VDC. O uso de um CI no lugar de transistores aqui é um facilitador já que todas as linhas estão conectadas entre si. As entradas desse CI, I1 a I7 foram ligadas aos pinos de I/O do microcontrolador PA0 a PA6.

Para comunicação RS-232 foi utilizado um MAX3232 (alimentação 3,3V) presente na placa e descrito na folha 2 do esquema da mesma.


A MONTAGEM


A montagem do "circuito" pode ser vista na imagem acima. Utilizando a placa PE-STM32 ficou fácil e bastou conectar os pontos utilizando cabinhos tipo jumper fêmea-fêmea de 20cm. Para quem deseja refazer essa experiência sem a placa, não tem jeito. A montagem precisa considerar todos os componentes aqui apresentados nas imagens, além do módulo BluePill. Essa montagem poderá ser feita em matriz de contatos, placa padrão ou ainda em placa de circuito impresso especificamente desenhada para isso. Eu não vou me ater em detalhes aqui e deixo a sua escolha!


O PROGRAMA

O programa foi desenvolvido utilizando a ferramenta SW4STM32 da ST Microelectronics em conjunto com a biblioteca Standart Peripheral Lib e foi ricamente comentado. Além disso, uma breve explicação sobre o seu funcionamento (função de controle das matrizes) está presente no vídeo.


CONCLUSÃO

Os conceitos envolvidos no controle desse tipo de matriz são bastante interessantes e estão presentes em muitos painéis de mensagens que vemos em nosso dia-a-dia. Compreender um conceito lhe permitirá aplicá-lo em qualquer outra condição. Estou falando aqui de matrizes de LEDs muito maiores que as presentes na placa, e até mesmo com LEDs "diferentes". Espero ter ajudado de alguma forma! Boas montagens, experiências, etc! Até a próxima!


DOWNLOADS:

- Pacote com arquivos (.c, .h, .bin)



Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.