TM1637Display.h problems

Hello i have a problem with my code:
The most in lines as the second minutes line overwrites the hour line and i can set up only two digits hours or minutes:

 if (display.update()) {
  display.showNumberDecEx(timeClient.getHours(),0b01000000,false,2,0);
 display.showNumberDecEx(timeClient.getMinutes(),0,false,2,2);
}
#include "TM1637Display.h"
#include "Adafruit_NeoPixel.h"
#include "NTPClient.h"
#include "WiFiManager.h"


// Which pin on the Arduino is connected to the NeoPixels?
#define PIN 17
#define CLK 18
#define DIO 23

TM1637Display display(CLK, DIO);

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 35
uint8_t globalcount = 0;
bool cleardisplay = true;


//========================USEFUL VARIABLES=============================
int UTC = 2; // UTC = value in hour (SUMMER TIME) [For example: Paris UTC+2 => UTC=2]
const char *ssid     = "MyWifi"; 
const char *password = "TopSecretPassword";

int Display_backlight = 1; // Adjust it 0 to 7
int led_ring_brightness = 100; // Adjust it 0 to 255
int led_ring_brightness_flash = 200; // Adjust it 0 to 255

// ========================================================================
// ========================================================================

const long utcOffsetInSeconds = 3600; // UTC + 1H / Offset in second

// Adjust the color of the led ring
#define red 00
#define green 20
#define blue 255

// When setting up the NeoPixel library, we tell it how many pixels,
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int flag = 0;

// Define NTP Client to get time
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds*UTC);

void setup() {
  pinMode(25, OUTPUT);   //broken  
  pinMode(26, OUTPUT);

  Serial.begin(115200);
  Serial.println("\n Starting");
  WiFi.begin(ssid, password);


  while ( WiFi.status() != WL_CONNECTED ) {
    delay ( 500 );
    Serial.print ( "." );
  }

  timeClient.begin();
  display.setBrightness(0x0a);
  display.clear();

  pixels.begin(); // INITIALIZE NeoPixel pixels object
  pixels.setBrightness(led_ring_brightness);
  

  for(int i=0; i<35;i++){
  pixels.setPixelColor(i, pixels.Color(red, green, blue));
  pixels.show();
  delay(50);
  }

  flash_cuckoo();// white flash

}

void loop() {




  // Update the time
  timeClient.update();
  Serial.print("Time: ");
  Serial.println(timeClient.getFormattedTime());
  unsigned long epochTime = timeClient.getEpochTime();
  struct tm *ptm = gmtime ((time_t *)&epochTime); 
  int currentYear = ptm->tm_year+1900;
  Serial.print("Year: ");
  Serial.println(currentYear);
  
  int monthDay = ptm->tm_mday;
  Serial.print("Month day: ");
  Serial.println(monthDay);

  int currentMonth = ptm->tm_mon+1;
  Serial.print("Month: ");
  Serial.println(currentMonth);

  if((currentMonth*30 + monthDay) >= 121 && (currentMonth*30 + monthDay) < 331){
  timeClient.setTimeOffset(utcOffsetInSeconds*UTC);} // Change daylight saving time - Summer
  else {timeClient.setTimeOffset((utcOffsetInSeconds*UTC) - 3600);} // Change daylight saving time - Winter

  // switch on the ring in blue
  pixels.clear(); // Set all pixel colors to 'off'
  blue_light();

  // write the time on the display
 //display.showNumberDecEx(timeClient.getHours(),0b01000000,true,2,0);
 //display.showNumberDecEx(timeClient.getMinutes(),0b01000000,true,2,2);
 //display.showNumberDec(timeClient.getMinutes(), false);

//global_number=timeClient.getMinutes+(timeClient.getHours)*100;

 if (display.update()) {
 //display.setSegments(segs,1,globalcount%4);
  display.showNumberDecEx(timeClient.getHours(),0b01000000,false,2,0);
 display.showNumberDecEx(timeClient.getMinutes(),0,false,2,2);

 


 // display.showNumberDecEx(timeClient.getMinutes(),0b01000000,true,2,2);
    }



	  //display.showNumberDec(1923, false);
   // display.showNumberDec(301, true); // Expect: 0301
   // display.showNumberDec(301, false); // Expect: _301

  // switch on the blue leds
  digitalWrite(26,1);

  // Animation every hour
  if(timeClient.getMinutes()== 00 && flag==0)
  {
    display_cuckoo();
    flag=1;
  }
   if(timeClient.getMinutes()>=01)
  {
    flag=0;
  }


}

void blue_light(){

  pixels.setBrightness(led_ring_brightness);
  pixels.setPixelColor(0, pixels.Color(red, green, blue));
  pixels.setPixelColor(1, pixels.Color(red, green, blue));
  pixels.setPixelColor(2, pixels.Color(red, green, blue));
  pixels.setPixelColor(3, pixels.Color(red, green, blue));
  pixels.setPixelColor(4, pixels.Color(red, green, blue));
  pixels.setPixelColor(5, pixels.Color(red, green, blue));
  pixels.setPixelColor(6, pixels.Color(red, green, blue));
  pixels.setPixelColor(7, pixels.Color(red, green, blue));
  pixels.setPixelColor(8, pixels.Color(red, green, blue));
  pixels.setPixelColor(9, pixels.Color(red, green, blue));
  pixels.setPixelColor(10, pixels.Color(red, green, blue));
  pixels.setPixelColor(11, pixels.Color(red, green, blue));
  pixels.setPixelColor(12, pixels.Color(red, green, blue));
  pixels.setPixelColor(13, pixels.Color(red, green, blue));
  pixels.setPixelColor(14, pixels.Color(red, green, blue));
  pixels.setPixelColor(15, pixels.Color(red, green, blue));
  pixels.setPixelColor(16, pixels.Color(red, green, blue));
  pixels.setPixelColor(17, pixels.Color(red, green, blue));
  pixels.setPixelColor(18, pixels.Color(red, green, blue));
  pixels.setPixelColor(19, pixels.Color(red, green, blue));
  pixels.setPixelColor(20, pixels.Color(red, green, blue));
  pixels.setPixelColor(21, pixels.Color(red, green, blue));
  pixels.setPixelColor(22, pixels.Color(red, green, blue));
  pixels.setPixelColor(23, pixels.Color(red, green, blue));
  pixels.setPixelColor(24, pixels.Color(red, green, blue));
  pixels.setPixelColor(25, pixels.Color(red, green, blue));
  pixels.setPixelColor(26, pixels.Color(red, green, blue));
  pixels.setPixelColor(27, pixels.Color(red, green, blue));
  pixels.setPixelColor(28, pixels.Color(red, green, blue));
  pixels.setPixelColor(29, pixels.Color(red, green, blue));
  pixels.setPixelColor(30, pixels.Color(red, green, blue));
  pixels.setPixelColor(31, pixels.Color(red, green, blue));
  pixels.setPixelColor(32, pixels.Color(red, green, blue));
  pixels.setPixelColor(33, pixels.Color(red, green, blue));
  pixels.setPixelColor(34, pixels.Color(red, green, blue));
  pixels.setPixelColor(35, pixels.Color(red, green, blue));
  pixels.show(); 

}

void flash_cuckoo(){
    pixels.setBrightness(led_ring_brightness_flash);
    pixels.setPixelColor(0, pixels.Color(red,green,blue));
    pixels.setPixelColor(1, pixels.Color(red,green,blue));
    pixels.setPixelColor(2, pixels.Color(red,green,blue));
    pixels.setPixelColor(3, pixels.Color(red,green,blue));
    pixels.setPixelColor(4, pixels.Color(red,green,blue));
    pixels.setPixelColor(5, pixels.Color(red,green,blue));
    pixels.setPixelColor(6, pixels.Color(red,green,blue));
    pixels.setPixelColor(7, pixels.Color(red,green,blue));
    pixels.setPixelColor(8, pixels.Color(red,green,blue));
    pixels.setPixelColor(9, pixels.Color(red,green,blue));
    pixels.setPixelColor(10, pixels.Color(red,green,blue));
    pixels.setPixelColor(11, pixels.Color(red,green,blue));
    pixels.setPixelColor(12, pixels.Color(red,green,blue));
    pixels.setPixelColor(13, pixels.Color(red,green,blue));
    pixels.setPixelColor(14, pixels.Color(red,green,blue));
    pixels.setPixelColor(15, pixels.Color(red,green,blue));
    pixels.setPixelColor(16, pixels.Color(red,green,blue));
    pixels.setPixelColor(17, pixels.Color(red,green,blue));
    pixels.setPixelColor(18, pixels.Color(red,green,blue));
    pixels.setPixelColor(19, pixels.Color(red,green,blue));
    pixels.setPixelColor(20, pixels.Color(red,green,blue));
    pixels.setPixelColor(21, pixels.Color(red,green,blue));
    pixels.setPixelColor(22, pixels.Color(red,green,blue));
    pixels.setPixelColor(23, pixels.Color(red,green,blue));
    pixels.setPixelColor(24, pixels.Color(red,green,blue));
    pixels.setPixelColor(25, pixels.Color(red,green,blue));
    pixels.setPixelColor(26, pixels.Color(red,green,blue));
    pixels.setPixelColor(27, pixels.Color(red,green,blue));
    pixels.setPixelColor(28, pixels.Color(red,green,blue));
    pixels.setPixelColor(29, pixels.Color(red,green,blue));
    pixels.setPixelColor(30, pixels.Color(red,green,blue));
    pixels.setPixelColor(31, pixels.Color(red,green,blue));
    pixels.setPixelColor(32, pixels.Color(red,green,blue));
    pixels.setPixelColor(33, pixels.Color(red,green,blue));
    pixels.setPixelColor(34, pixels.Color(red,green,blue));
    pixels.setPixelColor(35, pixels.Color(red,green,blue));
    pixels.show();

  for (int i=led_ring_brightness_flash; i>10 ; i--){
  pixels.setBrightness(i);
  pixels.show();
  delay(7);
  }
  blue_light();

}

void display_cuckoo(){
flash_cuckoo();
delay(2000);

}

the second one is overwriting the first one and I cannot use hours and minutes at the same time, both commands used seperately work

maybe this can help you

I did it like this but can't find my old program.

// Create an  unsigned int variable:
        unsigned int disTime;

//Get the current hour and multiply by 100:
      disTime = 100 * timeClient.getHours() + timeClient.getMinutes();

// If the current time is, say, 21:43, disTime should be 2143.
// Then send disTime to display:
    display.showNumberDecEx (disTime, 0b01000000, false, 4, 0;

You may have to play with the "false, 4, 0".

EDIT:
Oh phooey, just remembered the problem when hours = 0 but can't remember how I got around it. Maybe it will come to me in my sleep and I will pass it along (if I wake up). You can probably figure it out yourself. Good luck. :slightly_smiling_face:

Thanks this is what I wanted.
Its working for now and now I only need to think about the 0 hour problem.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.