One of four displays not updating

Hello everyone,

I created a small gauge cluster for my truck using an uno and four TM1637 4 digit 7 segment displays. It currently displays two temperatures, one pressure, and a timer (soon to be another pressure). All displays turned on and updated individually, they also all now turn on in their final place. One display in particular does not update every loop like it is supposed to, more specifically the value that the display is supposed to display does not update and I do not know why (the initial value when I turn the cluster on is correct). In the code below it is “keepTime” that does not update on display1. It also does not update in the serial port. I have changed things around and moved different values different displays, it always seems to be display1 that does not update, and it also does not update in the serial port no matter what value I put into display1.

Any ideas? I really hope it is something dumb.

Thanks!

#include <max6675.h>

#include <Arduino.h>
#include <TM1637Display.h>

#define CLK 2//pins definitions for TM1637 and can be changed to other ports       
#define DIO 3
#define CLK1 4
#define DIO1 5 
#define CLK2 10
#define DIO2 11
#define CLK3 12
#define DIO3 13

#define TEST_DELAY   2000

const uint8_t SEG_DONE[] = {
	SEG_B | SEG_C | SEG_D | SEG_E | SEG_G,           // d
	SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,   // O
	SEG_C | SEG_E | SEG_G,                           // n
	SEG_A | SEG_D | SEG_E | SEG_F | SEG_G            // E
	};

TM1637Display display(CLK, DIO);
TM1637Display display1(CLK1, DIO1);
TM1637Display display2(CLK2, DIO2);
TM1637Display display3(CLK3, DIO3);

int ktcSO = 7;
int ktcCS = 8;
int ktcCS1 = 6;
int ktcCLK = 9;
int i = 0;
int value = 0;
int newvalue = 0;
int numReadings = 0;

float pres = 0;

unsigned long keepTime = 0;
unsigned long checkTime = 0;

MAX6675 ktc(ktcCLK, ktcCS, ktcSO);
MAX6675 ktc1(ktcCLK, ktcCS1, ktcSO);


  
void setup() {
  Serial.begin(9600);
  delay(500);
}

void loop() {
  
value = 0;
pres = ((analogRead(A5)-119)/8.18);
  
      for (int i = 0; i <= 10; i++) {
        value = value + pres;
        delay(1);
      }
    
  
  newvalue = value/10;
  
  display.setBrightness(0x0f);
  display1.setBrightness(0x0f);
  display2.setBrightness(0x0f);
  display3.setBrightness(0x0f);  
    
   Serial.print("Deg C = "); 
   Serial.print(ktc.readCelsius());
   Serial.print("\t Deg F = ");
   Serial.println(ktc.readFahrenheit());

   Serial.print("Deg C = "); 
   Serial.print(ktc1.readCelsius());
   Serial.print("\t Deg F = ");
   Serial.println(ktc1.readFahrenheit());
   
    
    display2.showNumberDec(ktc1.readFahrenheit());
    display3.showNumberDec(ktc.readFahrenheit());


    display.showNumberDec(newvalue);
    display1.showNumberDec(keepTime);
    
    

if ((millis()-keepTime)>60000)
{
  keepTime = checkTime/60000;
}
    

Serial.println(newvalue);
   delay(120);
}

The value of checkTime is not being updated in your code so

keepTime = checkTime / 60000;

is doing nothing to the value of keepTime