Há quase 12 anos, brinquei um pouco com displays de 14 segmentos (aqui e aqui). A montagem na segunda parte mostra a dificuldade de usar estes displays unitários: um monte de resistores e um monte de conexões.
Somente agora me deparei com um módulo que simplifica isso. O módulo possui quatro dígitos e utiliza um controlador com interface I2C.
O controlador é o HT16K33, que tem semelhanças com o MAX7219 (no sentido de ter memória interna que armazena o estado dos LEDs e realizar a multiplexação automaticamente). O HT16K33 também suporta a conexão de teclas (que não veremos aqui) e possui uma interface I2C padrão. O endereço pode ser configurado na faixa de 0x70 a 0x77, o que é suportado pelo módulo.
O módulo possui cinco conexões: os sinais SCL e SDA do I2C, o GND e dois sinais de alimentação, VCC e VI2C. O primeiro alimenta o controlador e os displays, o segundo está ligado aos resistores de pull-up nos sinais de I2C. Segundo o datasheet do controlador, o VCC deve ser 5V (vi relatos de funcionamento a 3,3V) e o VI2C a tensão de operação do microcontrolador que comanda o I2C. No caso da ligação de mais de um módulo em um barramento I2C, somente um dos módulos deve ter o VI2C conectado.
Para controlar os displays, vamos enviar comandos via I2C. Após um comando, podem ser enviados dados para serem escritos na memória. A tabela a seguir resume os comandos:
A iniciação do controlador consiste em:
- Ligar o oscilador (comando 0x21)
- Iniciar a memória (comando 0x00 seguido de 8 bytes)
- Escolher a intensidade (opcional, comando 0xE0 a 0xEF)
- Ligar o display (comando 0x81)




Nenhum comentário:
Postar um comentário