Robojax

Lesson 20: Using TM1637 4 digit display

Lesson 20: Using TM1637 4 digit display

Please select other codes for this lecture from the links below.

Related or required files and link to this lesson

Part 2: LCD, LED and OLED Screens

In this lecture we learn how to use TM1637 four digit seven segment display to display integer and hexadecimal vlaues. Decimal point can't be dispalyed easily.
A counter example which counts from 0 is shown.


 /*
 *  Robojax Arduino Step By Step Course
 * Lesson 20-2  Introduction to TM1637 4 digits LED Display
 This is counter code.
 * 
 *  This code has been modefied from the Arduino library
 
 
   Please watch video instruction here https://youtu.be/cJqmXjERwkQ
 This code is available at http://robojax.com/course1/?vid=lecture11
 
with over 100 lectures Free On  YouTube Watch it here http://robojax.com/L/?id=338
Get the code for the course: http://robojax.com/L/?id=339 
 *  Updted by Ahmad Shamshiri for Robojax 
 *  in Ajax, Ontario, Canada
 * 
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been download from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
#include <Arduino.h>
#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 5
#define DIO 6

// The amount of time (in milliseconds) between tests
#define TEST_DELAY   15000

uint8_t allDigits[] = { 0xff, 0xff, 0xff, 0xff };
uint8_t blank[] = { 0x0, 0x0, 0x0, 0x0 };// blank value for all digits


TM1637Display display(CLK, DIO);

void setup()
{
 display.setBrightness(0x0f);  
}

void loop()
{
  // count up to 2000
  for(int i=0; i<=2000; i++)
  {
   display.showNumberDec(i);  
  }
  delay(3000);
  // count down from 1700 to zero
  for(int i=1700; i>=0; i--)
  {
   display.showNumberDec(i);  
  }
  delay(5000);
  display.setSegments(blank);
  display.showNumberDec(125, false, 3,1);
  delay(TEST_DELAY);
  
  display.setSegments(blank);
  display.showNumberDec(384,true);
  delay(TEST_DELAY);

  display.setSegments(blank);
  display.showNumberDec(736,false);
  delay(3000);  




  display.setSegments(blank);
  display.showNumberDec(153, false, 3, 1);
  delay(TEST_DELAY);

  display.setSegments(blank);  
  display.showNumberDec(22, false, 2, 2);
  delay(TEST_DELAY);

  display.setSegments(blank);  
  display.showNumberDec(0, true, 1, 3);
  delay(6000);

  display.setSegments(blank);  
  display.showNumberDec(0, true, 1, 2);
  delay(3000);

  display.setSegments(blank);  
  display.showNumberDec(0, true, 1, 1);
  delay(3000);

  display.setSegments(blank);  
  display.showNumberDec(0, true, 1, 0);
  delay(3000);


  while(1);
}