Mehrere Funktionen gleichzeitig ansteuern (Threads)?

Aquarium:
kann man auch 3 oder 4 Aktionen (Pins) gleichzeitig und unabhängig von einander ansteuern?

Völlig "gleichzeitig" geht nicht, also ein paar millionstel oder tausendstel Sekunden werden zwischen den Aktionen immer liegen. Bei grottenschlechter Programmierung auch Sekunden. Unabhängig voneinander ist allerdings kein Problem.

Das Prinzip ist, für jede der Aktionen in der Loop eine Funktion zu haben:

void loop()
{
unter_loop1();
unter_loop2();
unter_loop3();
unter_loop4();
}

Und jede der unter_loop Funktionen arbeitet für sich selbst hin, und zwar OHNE die Verwendung irgendwelcher delay Funktionen. Stattdessen müssen delays über die Auswertung von Timern oder millis oder Timer-Interrupts realisiert werden.

Bei längerdauernden Aktionen mußt Du mit Statusvariablen arbeiten. Beispiel Blinken: Du schaltest den Blinker an und ermittelst den Zeitpunkt, wann er wieder ausgehen soll. Dann wird die Loopfunktion zum Blinken zwischendurch hunderte, tausende oder millionen mal aufgerufen und nichts passiert, bis die Zeit zum Ausschalten da ist. Dann schaltet die Blinkfunktion aus und setzt wieder die neue Aktionszeit für den Start des nächsten Blinkvorgangs.

Bei anderen "länger dauernden" Aktionen entsprechend.

Funktionen, die "länger dauern" als Du es unter "gleichzeitig" verstehst, sind in dem Programm dann komplett verboten und dürfen nicht verwendet werden.