Neopixel Mode change with a button

There are a few options to consider:

  • remove the delays and have the display functions do a portion of the work each time they are called
  • use an interrupt on your pushbutton that sets a flag, and check for the flag periodically in each display function
  • read your pushbutton periodically in each display function

The first option is probably best from a design viewpoint, but difficult to code. The second option would be a good compromise between design and coding effort. The last option is least desirable from a design perspective, but likely the easiest to code.