TM1638 8 digits display with 4x4 Matrix Buttons easy to interface with Arduino
TM1368 LED scan controller makes controlling the 8 digit 7 segment so much easier. The display modules has 5 pins, VCC, GND, Clock and Data I/O, STB
Quick Specs
- Display Controller: TM1368
- Digit Size: 0.36" - 9mm
- Digits : 8
- Colour: Red
- KEY : 16 (2x8 Matrix Buttons)
Resources
*

TM1638 schematic (circuit) 8 digit 2x8 Matrix Buttons
#include
#include
#define STB 5
#define DIO 3
#define CLK 2
TM1638QYF module(DIO, CLK, STB);
word mode;
char text_buff[20];
void setup()
{
module.setupDisplay(true, 7);
mode = 0;//initial button zero
}
void update(TM1638QYF* module, word* mode) {
word buttons = module->getButtons();
// button pressed - change mode
if (buttons != 0) {
*mode = buttons >> 1;
if (*mode < 0) {
module->clearDisplay();
delay(100);
}
}
switch (*mode) {
case 0://S1
module->setDisplayToString("press 1"); break;
case 1://S2
module->setDisplayToString("press 2"); break;
case 2://S3
module->setDisplayToString("press 3"); break;
case 4://S4
module->setDisplayToString("press 4"); break;
case 8://S5
module->setDisplayToString("press 5"); break;
case 16://S6
module->setDisplayToString("press 6"); break;
case 32://S7
module->setDisplayToString("press 7"); break;
case 64://S8
module->setDisplayToString("press 8"); break;
case 128://S9
module->setDisplayToString("press 9"); break;
case 256://S10
module->setDisplayToString("press 10"); break;
case 512://S11
module->setDisplayToString("press 11"); break;
case 1024://S12
module->setDisplayToString("press 12"); break;
case 2048://S13
module->setDisplayToString("press 13"); break;
case 4096://S14
module->setDisplayToString("press 14"); break;
case 8192://S15
module->setDisplayToString("press 15"); break;
case 16384://S16
module->setDisplayToString("press 16"); break;
default:// unknown busson
sprintf(text_buff,"k= %d",*mode);
module->setDisplayToString(text_buff);
//module->setDisplayToString("?????");
break;
}
}
void loop()
{
update(&module, &mode);
}
*
*