Multiple TM1637 Functions

Hello, new to arduino here. Im tryin to make a project where I have 4 tm1637 displays workin at the same time. One has a clock and the other 3 are counters. Im only concerned with the clock and one counter for now. I have the clock and counter but I cant make them work properly, each on their own works fine. Once I include the clock, the counter stops working. Here’s the code

 #include <Arduino.h>
#include <TM1637Display.h>
#include "SevenSegmentTM1637.h"
#include "SevenSegmentExtended.h"

// Module 1 connection pins (Digital Pins)
#define CLK1 22
#define DIO1 33

// Module 2 connection pins (Digital Pins)
#define CLK2 24
#define DIO2 35

// Module 3 connection pins (Digital Pins)
#define CLK3 26
#define DIO3 37

// Module 4 connection pins (Digital Pins)
#define CLK4 28
#define DIO4 39

SevenSegmentExtended      display1(CLK1, DIO1);

const unsigned int clockSpeed = 67;    // speed up clock for demo

TM1637Display display2(CLK2, DIO2);// define dispaly 1 object
TM1637Display display3(CLK3, DIO3);// define dispaly 1 object
TM1637Display display4(CLK4, DIO4);// define dispaly 1 object

   uint8_t data[] = {0x0, 0x0, 0x0, 0x0 };  // all segments clear
   
// run setup code




void setup()
{
 
  Serial.begin(9600);         // initializes the Serial connection @ 9600 baud
  display1.begin();            // initializes the display
  display1.setBacklight(100);  // set the brightness to 100 %
  delay(0000);                // wait 1000 ms


  display2.setBrightness(0x0f);// set brightness of dispaly 1  
  display3.setBrightness(0x0f);// set brightness of dispaly 1
  display4.setBrightness(0x0f);// set brightness of dispaly 1

  display2.setSegments(data);// // fill display 2 with whatever data[] array has  
  display3.setSegments(data);// // fill display 3 with whatever data[] array has
  display4.setSegments(data);// // fill display 4 with whatever data[] array has 
  
  pinMode(4,INPUT);
  display2.setBrightness(6); 

  pinMode(3,INPUT);
  display2.setBrightness(6);


 } 
  
  int numb=0;
  int pres=0;


void loop(){

 
 display4.showNumberDec(numb,false, 4,4); 
  
   if(numb<100)
 {
   if(digitalRead(4)==1)
    {
    if(pres==0)
   {
   ++numb;
    pres=1;
   }
    }
  else
  {
    pres=0;
    }
 }           
 //inicio resta
 delay(100);

   if(numb>0)
 {
   if(digitalRead(3)==1)
   {
    if(pres==0)
   {
    --numb;
    pres=1;
   }
    }
   else
  {
    pres=0;
    }
 } 

{
  byte hours    = 00;                           // initialize hours
  byte minutes  = 00;                           // initialize minutes

  for ( ; hours < 90; hours++) {                // count hours   up to 90
    for ( ; minutes < 60; minutes++) {          // count minutes up to 59
      display1.printTime(hours, minutes, true);  // display time
      delay(60000 / clockSpeed);                // clock delay ms
    };
    minutes = 0;                                // reset minutes


 }
 }
 }

Hi your code is hard to read...

Please correct your post above and add code tags around your code:
[code]`` [color=blue]// your code is here[/color] ``[/code].

It should look like this:// your code is here
(Also press ctrl-T (PC) or cmd-T (Mac) in the IDE before copying to indent your code properly)

Welcome to the Forum. Please read these two posts:

General Guidance and How to use the Forum
and
Read this before posting a programming question …
You may also find useful information that would answer your question here:
Useful links - check here for reference posts / tutorials
If you have already posted without using code tags, open your message and select “modify” from the pull down menu labelled, “More”, at the lower right corner of the message. Highlight your code by selecting it (it turns blue), and then click on the “</>” icon at the upper left hand corner. Click on the “Save” button. Code tags can also be inserted manually in the forum text using the code and /code metatags.

Oooops  delay(0000);                // wait 1000 ms

You realize that when you this

  for ( ; hours < 90; hours++) {                // count hours   up to 90
    for ( ; minutes < 60; minutes++) {          // count minutes up to 59
      display1.printTime(hours, minutes, true);  // display time
      delay(60000 / clockSpeed);                // clock delay ms
    };

everything else is stopped, right ?

studying blink without delay and the examples about millis() will help out

Some TMS1637 boards need to have C3 and C4 removed.

Can you explain why it stops? im new to this and now very little programming.

because when you call delay() it waits right there (and here you do it 5400 times for 895ms each...)... nothing else happens in the mean time. So only that display gets updated

Any suggestions on what I should change?

as I said above - studying blink without delay and the examples about millis(). Don't use delay() if you want to do multiple things "at the same time"