Startknopf

strohhirn:
Aber das problem an dieser variante ist das ich das programm1 nur 1mal anschalten kann, danach kann ich es nicht verlassen oder reseten ich muss erst den ganzen arduino reseten.

Bei einer Schrittsteuerung machst Du es so, dass jeder Programmschritt eine Nummer bekommt. Gültige Programmschrittnummern sind dann beispielsweise 1 bis 9 und alles andere oder eine bestimmte andere Zahl wird betrachtet als "keinen Programmschritt ausführen".

Für Dich kannst Du z.B. definieren, dass Programmschrittnummer 999 für "Schrittsteuerung wird nicht ausgeführt" steht. "0" könnte man auch nehmen, aber Deine Programmschrittnummer heißt offenbar "status" und die "0" verwendest Du auch bereits als gültigen Programmschritt, also bietet sich 999 schon an für "Schrittsteuerung wird nicht ausgeführt".

Wenn Du nun die Variable "status" in der setup()-Funktion auf 999 setzt:
status=999;
Und dann beim Drücken des Tasters änderst Du den Status auf den ersten auszuführenden Programmschritt:
status=0;
Zwischen den Programmschritten schaltest Du weiter 1, 2, 3, usw. bis zum letzten Programmschritt,
da setzt Du dann am Ende des letzten Programmschritts wieder
status=999;

Und immer wenn in der loop der Status 999 gefunden wird, macht die Schrittsteuerung (Programm1) eben nichts.

Erst wenn beim nächsten Drücken des Tasters wird status wieder auf 0 gesetzt und die Schrittsteuerung läuft wieder neu ab.

Am Ende darf auch kein logischer Fehler in der Schrittabfolge drin sein, sonst laufen einzelne Schritte oder das gesamte Programm mehrfach ab, oder die Schrittsteuerung bleibt stehen und blockiert sich selbst. Damit man keine logischen Fehler einbaut, ist es sinnvoll dem Programm eine klare Struktur zu geben und die Funktionen übersichtlich zu halten.