Nick's Pong Clock, Arduino and Sure 2416 panels advice

Hi, and welcome !

Since you admit to being a newbie it might be worth checking out some info on PWM brightness control of LEDs since that's how these displays work. A good place to start could be the Jeremy Blum youtube tutorial, here: Tutorial 02 for Arduino: Buttons, PWM, and Functions - YouTube This will give you the basic concept if you don't have that covered.

The displays do have a brightness level capability, which will work for you. The sketch for this clock uses it in the fade functions here:

/*
 * fade_down
 * fade the display to black
 */
void fade_down() {
  char intensity;
  for (intensity=14; intensity >= 0; intensity--) {
    ht1632_sendcmd(0, HT1632_CMD_PWM + intensity); //send intensity commands using CS0 for display 0
    ht1632_sendcmd(1, HT1632_CMD_PWM + intensity); //send intensity commands using CS0 for display 1
    delay(FADEDELAY);
  }
  //clear the display and set it to full brightness again so we're ready to plot new stuff
  cls();
  ht1632_sendcmd(0, HT1632_CMD_PWM + 15);
  ht1632_sendcmd(1, HT1632_CMD_PWM + 15);
}


/*
 * fade_up
 * fade the display up to full brightness
 */
void fade_up() {
  char intensity;
  for ( intensity=0; intensity < 15; intensity++) {
    ht1632_sendcmd(0, HT1632_CMD_PWM + intensity); //send intensity commands using CS0 for display 0
    ht1632_sendcmd(1, HT1632_CMD_PWM + intensity); //send intensity commands using CS0 for display 1
    delay(FADEDELAY);
  }
}

So you can see that using the constant defined in the HT1632 library HT1632_CMD_PWM and adding the intensity value from 0 (off) to 15 (max brightness) you can set the brightness of the panels. So that bit's pretty straightforward.

Now you just need to work out what intensity you want to run the things normally (presuming the default 15 for daytime running) and what intensity works for you as a night mode (that will require some testing I'm thinking) and add a function that sets the intensity to those values as desired. Something like:

/*
  dim or return the displays to full brightness
 */
void dimTheClock(boolean dimIt) {
  char intensity = 15;                                               // level for full brightness
  if (dimIt) intensity = 8;                                          // choose a value that suits your taste for this
  ht1632_sendcmd(0, HT1632_CMD_PWM + intensity); //send intensity commands using CS0 for display 0
  ht1632_sendcmd(1, HT1632_CMD_PWM + intensity); //send intensity commands using CS0 for display 1
  }
}

And where you want to set your clock display dim, call it with

dimTheClock(true);

And where you want to drive the clock brightly, use

dimTheClock(false);

Hope you can get to where you need to from here, cheers !
Geoff