Esta é uma biblioteca de chips serial TM1637 de 2 pinos para Arduino, otimizada para tamanho e velocidade. Ele suporta um controlador de driver de LED combinado e uma interface de varredura de teclas para detectar o pressionamento de uma tecla.
Conecte alimentação e 2 pinos de dados aos pinos DIGITAIS da placa Arduino:
Os seguintes pinos TM1637 devem ser conectados aos LEDs e botões em uma matriz:
Alfinete | TM1637 | Arduino UNO/Nano/Micro/Pro Micro/Leonardo/Mega2560 | WeMos D1 e R2 / Nó MCU | WeMos LOLIN32 |
---|---|---|---|---|
1 | CCV | 5V (ou 3,3V) | 3V3 | 3V3 |
2 | GND | GND | GND | GND |
3 | CLK | 2 (pino DIGITAL) | D2 | 0 |
4 | DIO | 3 (pino DIGITAL) | D3 | 4 |
O TM1637 se comunica com uma serial MCU usando dois fios:
Nota: A interface serial não é compatível com I2C ou TWI, pois nenhum endereço de dispositivo com bit de leitura/gravação é utilizado.
ArduinoIDE | Exemplos | Botão Erriez TM1637 e driver de LED:
ErriezTM1637
Inicialização
// Include TM1637 library
# include < ErriezTM1637.h >
// Connect display pins to the Arduino DIGITAL pins
# define TM1637_CLK_PIN 2
# define TM1637_DIO_PIN 3
// Create tm1637 object
TM1637 tm1637 (TM1637_CLK_PIN, TM1637_DIO_PIN);
void setup ()
{
// Initialize TM1637
tm1637. begin ();
}
Exibição ativada/desativada
// Turn display off
tm1637.displayOff();
// Turn display on
tm1637.displayOn();
Desligue todos os LEDs
// Turn all LED's off
tm1637.clear();
Obtenha as chaves
// Get 8-bit key-scan
uint8_t keys = tm1637.getKeys();
Escreva Byte para exibir o registro
// Write segment LED's to the first display registers 0x00..0x0F with value 0x00..0xff to
// display numbers and characters. Just an example which depends on the hardware:
tm1637.writeData( 0x01 , 0x01 );
Escreva buffer para exibir registros
// Creat buffer with LED's
uint8_t buf[] = { 0b10000110 , 0b00111111 , 0b00111111 , 0b00111111 , 0b00111111 , 0b00111111 };
// Write buffer to TM1637
tm1637.writeData( 0x00 , buf, sizeof (buf));
A biblioteca usa controle de pinos otimizado para alvos AVR. Outros destinos usam as funções padrão de controle de pinos digitalRead() e digitalWrite().
Exemplo de benchmark de saída:
Quadro | CLK | Ler chaves | Escrever Byte | Gravar buffer de 16 bytes | Tela clara |
---|---|---|---|---|---|
Pró Mini 8MHz | 84kHz | 352us | 344us | 1080us | 1072us |
ONU 16MHz | 170kHz | 156us | 152us | 496us | 480us |
WeMos D1 e R2 80 MHz | 205kHz | 261us | 137us | 396us | 396us |
WeMos D1 e R2 160 MHz | 300kHz | 233us | 96us | 275us | 271us |
Consulte a página Wiki.