You appear to have 12 different buttons. These will take up some SRAM.
Adafruit_GFX_Button on_btn, off_btn, on_btn1, off_btn1, on_btn2,
off_btn2, on_btn3, off_btn3,
on_btn10, on_btn11, on_btn12, on_btn13;
...
// Array of button addresses to behave like a list
Adafruit_GFX_Button *buttons[] = { &on_btn, &off_btn, &on_btn1, &off_btn1, &on_btn2, &off_btn2,
&on_btn3, &off_btn3, &on_btn10, &on_btn11,
&on_btn12, &on_btn13, NULL
};
...
I doubt if you want to draw all 12 buttons on one screen.
The buttons[] array is just pointers. Not much memory.
I would put the correct set of buttons into a pointer array for each screen.
I think that I have posted examples on the Forum for this. i.e. diff set of button pointers for several screens.
I only put "simple" examples in the Library distribution.
You have to be a little careful with Uno memory. 50 buttons with lots of screen arrays might get expensive.
David.
Edit. Attached an example sketch.
button_multiple.zip (2.35 KB)