Arduio Zähler

Hallo Leute
Ich hab ne Frage! Ich möchte einen Zähler bauen, der mir einen Ausgang doppelt so schnell schaltet als ein anderer Ausgang. Aber es sollte zusammen passieren, desshalb kann ich delay nicht verwenden.
Mein Ansatz ist folgender:

void loop ()
{

  for (int a = 0; a < 101 ; a++)
  {
    if(a == 100)
    {
       out1_switch = !out1_switch;
       digitalWrite(Output1, out1_switch);
    }
    
    if(a == 50)
    {
       out2_switch = !out2_switch;
       digitalWrite(Output2, out2_switch);
    }

    Serial.println(a);
  }
}

Das Problem ist nun, beide schalten genau gleich schnell, einfach versetzt, da der eine schaltet wenn der Zähler auf 100 ist, der andere wenn er auf 50 ist. Die Schaltgeschwindigkeit ist logischerweise identisch.
Gibt es eine Möglichkeit, nicht if(a == 50) zu verwenden, sondern diese Schaltung alle 50 Schritte auszuführen?
Danke schon mal für etwaige Inputs! 8)

if( ( a % 50 ) == 0 )
Uwe

Danke Uwe für die schnelle Antwort! Das habe ich gesucht!

Allerdings geht nicht if( ( a % 50 ) == 0 ), sondern if( ( a % 50 ) == 1 )

Danke!

Ist aber dann wohl nicht zu ganz genau, da er dann bei 1 und 51 schaltet und nach 100 nicht 101 kommt, wo er wieder schalten würde, sondern der loop erstmal wieder bei 0 beginnt, wo er beim ersten Durchgang nicht schaltet.

Mit Uwes Vorschlag und einer for Schlaufe, die bis 99 Zählt (for (int a = 0; a < 100 ; a++)) sollts doch eigentlich gehen und einigermassen genau sein, oder nicht?

Hi Hitsuji
Meine Anwendung ist nicht Zeitkritisch. Ist ein Frequenzgenerator für einen anderen uC, einen STM32. Ich brauche vom Arduino lediglich 4 Ausgänge bei denen einer nach dem anderen doppelt so schnell toggelt. Mit dem if( ( a % 50 ) == 0 ) hat das LED nicht richtig getoggelt sondern eher rumgemurkst, 8) mit if( ( a % 50 ) == 1 ) habe ich was ich will :smiley: