#include #include // Module connection pins (Digital Pins) #define CLK 2 #define DIO 3 // The amount of time (in milliseconds) between tests #define TEST_DELAY 500 const uint8_t SEG_DONE[] = { SEG_B | SEG_C | SEG_D | SEG_E | SEG_G, // d SEG_C | SEG_D | SEG_E | SEG_G, // o SEG_C | SEG_E | SEG_G, // n SEG_A | SEG_D | SEG_E | SEG_F | SEG_G // E }; TM1637Display display(CLK, DIO); void setup() { } void loop() { int k; uint8_t data[] = { 0x7f, 0xff, 0x7f, 0x7f }; // uint8_t data[] = { 15, 31, 63, 127 }; display.setBrightness(0x0f); // All segments on display.setSegments(data); delay(TEST_DELAY*4); // Selectively set different digits data[0] = display.encodeDigit(0); data[0] = 0b00000111; // GFEDCBA data[1] = display.encodeDigit(1); data[2] = display.encodeDigit(2); data[3] = display.encodeDigit(3); display.setSegments(data, 4, 0); delay(TEST_DELAY); // display 4 char at pos 0 for (k = 0; k <4; k++) { display.setSegments(data, 1, k); delay(TEST_DELAY); // display 1 char at pos k } display.setSegments(data+2, 2, 2); delay(TEST_DELAY); display.setSegments(data+2, 2, 1); delay(TEST_DELAY); display.setSegments(data+1, 3, 1); delay(TEST_DELAY); // Show decimal numbers randomSeed(analogRead(0)); bool lz = false; // without leading zeros for (uint8_t z = 0; z < 2; z++) { for (k = 0; k < 10000; k += 4*k+7) { // display.showNumberDec(k, lz); delay(TEST_DELAY); display.showNumberDec(random(10000), lz); delay(TEST_DELAY); } lz = true; // with leading zeros } // Show decimal number whose length is smaller than 4 for (k = 0; k < 4; k++) data[k] = 0; display.setSegments(data); // all off // show number 153 (%3d) without leading zero at pos 1 display.showNumberDec(153, false, 3, 1); delay(TEST_DELAY); // show number 22 (%2d) without leading zero at pos 2 display.showNumberDec( 22, false, 2, 2); delay(TEST_DELAY); display.showNumberDec(8, true, 1, 3); delay(TEST_DELAY); display.showNumberDec(4, true, 2, 2); delay(TEST_DELAY); display.showNumberDec(2, true, 1, 1); delay(TEST_DELAY); display.showNumberDec(5, true, 1, 0); delay(TEST_DELAY); // Brightness Test 0-7,8-15 for (k = 0; k < 4; k++) data[k] = 0xff; for (k = 0; k < 16; k++) { display.setBrightness(k); display.showNumberDec(k, true); delay(TEST_DELAY); //display.setSegments(data); delay(TEST_DELAY*2); } display.setBrightness(0); display.setSegments(SEG_DONE); // while (1); delay(2000); }