Ga zeker niet met seriële data werken tussen die hoofd-pic en die 4 sub-pics, telkens je een waarde wijzigt,
ga je je verlichting zien "knipperen", doordat het even duurt om die seriële data te verwerken.
4x 8 poorten (32) is niet nodig hoor

1x 8 poorten, en 4x 2 poorten is genoeg ... (16 pinnen, de helft dus)
Je zet die 8 poorten van die hoofd-pic, en alle sub-pics, parallel.
vervolgens hang je tussen je hoofd-pic, en elke sub-pic, 2 extra pinnen.
je zet voor sub-pic 1, de 8 bits op die 8 poorten, en zet vervolgens een pin die op sub-pic 1 is aangesloten, op hoog.
In sub-pic 1, ga je tussen elke PWM cyclus in, even kijken of die poort hoog is, zoja, dan lees je de waarde van die 8 inkomende poorten in,
en zet die 2de pin die tussen sub-pic 1 zit, en de hoofd-pic, ook op hoog, waarna je verder kan met je pwm routine in die pic.
hoofd-pic weet nu dat sub-pic 1 de data goed heeft ontvangen, en zet die ene pin naar sub-pic 1, terug laag.
Vervolgens doe je bovenstaande handelingen ook voor sub-pic 2 (dus pinnetje hoog, wachten tot sub-pic 2 dit begrepen heeft enz ...)
Daarna voor sub-pic 3, enz ...
Zodoende kost elke volgende sub-pic, telkens maar 2 extra pinnen.
Als je deze logica trouwens toepast tussen al je hoofd-pics, heb je ook een vorm van "controle".
Stel, hoofd-pic 1, moet iets doorsturen naar hoofd-pic 2, maar hoofd-pic 2 is nog bezig met iets, dan kan diezelfde truuc met die 2 extra pinnen toepassen.
- Je zet een pin van pic 1 naar pic 2 op hoog, pic 1 wacht op het hoog worden van een pin van pic 2 naar pic 1.
- vervolgens gaat pic 1 pas zenden naar pic 2. Als eerste teken, stuur je door hoeveel tekens pic 2 mag verwachten, als 2de teken, stuur je het "adres" dat moet luisteren naar de data.
- na de communicatie, zet je die 2 pinnen tussen die beide pic's, terug laag.
- pic 2 kijkt of het ontvangen adres overeen komt met zijn ingestelde adres. Zoja, dan doet hij een verwerking van de data, en stuurt die data naar de volgende pic.
Zonee, dan doet hij niks met die data, maar stuurt de data wel door naar de volgende pic.
- Je hebt dan weer 3 pinnetjes nodig om van pic 2 naar pic 3 te gaan, enz ...
Dit systeem heeft enkele voordelen:
- Je kan prints maken die op hetzelfde adres luisteren, de data komt heus wel toe

- Als er een print is, die moet reageren op het indrukken van een schakelaar ofzo, moet je via "polling", niet gaan luisteren naar die prints.
Zo'n print kan op eigen initiatief z'n data beginnen doorsturen naar de volgende pic enz ... terwijl in't begin van de keten misschien héél andere data al op weg is door de bus.
Uiteindelijk komt alles overal wel toe.
Hopelijk is m'n uitleg een beetje duidelijk, anders moet je hier maar gerichte vragen gaan stellen

succes,
Kris