ErriezTM1637
v1.1.0
这是适用于 Arduino 的 2 引脚串行 TM1637 芯片库,针对尺寸和速度进行了优化。它支持组合的 LED 驱动器控制器和按键扫描接口来检测一键按下。
将电源和 2 个数据引脚连接到 Arduino 板的数字引脚:
以下 TM1637 引脚应连接到矩阵中的 LED 和按钮:
别针 | TM1637 | Arduino UNO / Nano / Micro / Pro Micro / Leonardo / Mega2560 | WeMos D1 和 R2 / 节点 MCU | WeMos LOLIN32 |
---|---|---|---|---|
1 | 电压控制电路 | 5V(或3.3V) | 3V3 | 3V3 |
2 | 接地 | 接地 | 接地 | 接地 |
3 | 时钟脉冲 | 2(数字引脚) | D2 | 0 |
4 | 迪奥 | 3(数字引脚) | D3 | 4 |
TM1637 使用两根线与 MCU 串行通信:
注意:串行接口与 I2C 或 TWI 不兼容,因为没有使用带读/写位的设备地址。
Arduino IDE |示例 | Erriez TM1637 按钮和 LED 驱动器:
埃里兹TM1637
初始化
// 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 ();
}
显示开/关
// Turn display off
tm1637.displayOff();
// Turn display on
tm1637.displayOn();
关闭所有 LED
// Turn all LED's off
tm1637.clear();
获取钥匙
// Get 8-bit key-scan
uint8_t keys = tm1637.getKeys();
将字节写入显示寄存器
// 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 );
将缓冲区写入显示寄存器
// Creat buffer with LED's
uint8_t buf[] = { 0b10000110 , 0b00111111 , 0b00111111 , 0b00111111 , 0b00111111 , 0b00111111 };
// Write buffer to TM1637
tm1637.writeData( 0x00 , buf, sizeof (buf));
该库对 AVR 目标使用优化的引脚控制。其他目标使用默认的 digitalRead() 和 digitalWrite() 引脚控制函数。
输出基准示例:
木板 | 时钟脉冲 | 读取按键 | 写字节 | 写入 16 字节缓冲区 | 显示清晰 |
---|---|---|---|---|---|
专业迷你 8MHz | 84kHz | 352us | 344us | 1080us | 1072us |
UNO 16MHz | 170kHz | 156us | 152us | 496us | 480us |
WeMos D1 和 R2 80MHz | 205kHz | 261us | 137us | 396us | 396us |
WeMos D1 和 R2 160MHz | 300kHz | 233us | 96us | 275us | 271us |
请参阅维基页面。