It should be straightforward. Any examples you find should be able to work directly on a portion of you total LED resources.
As @Deva says, if you are looking for multiple independent effects each playing out on its own group of LEDs you’ll have to get your mind around the “multiple things at once” type approach that is mentioned on these fora about 17 times a day… there’s a reason it comes up so much, the methods work and it is quite gratifying to see your little machines cranking away as if you had several many UNOs on in there.
BTW at this time you might want to put some range checking in the low level call, so
if when you make an errant call, say to the 17th pixel or a non-existent 11th ring you get a head’s up.
I wrote a function that just prints a message on Serial port and hangs up. When I do something bad, it prints a message that I have done and appears to stop.
void errorStop(unsigned char theMessage)
for (; ; );
if (pixel < 0 || pixel > 9) errorStop(“bad pixel!”);
in the SetPixelRingColor function will fire off. Similarly others.
It’s admittedly quite crude, but easy to do, costs little enough, can be left in the final code and at least gives you a start on where to look.
It doesn’t matter if you leave it there, you can output to the Serial even if nothing is hooked up, just let it talk to no one because it shouldn’t talk at all.
Hook it up if it ever hangs and see if you get one of your messages.
I like to Seril print the name of the program, too, I wish I had always done as I have too many projects and too few notes about what code eventually got placed on them, I an totally without discipline, a xcharacter flaw that can make programming a challenge.