ich habe die folgenden Zeilen und aktuell werden diese nacheinander abgearbeitet und an die PIN gesendet.
Ich möchte aber das beide PIN (9 und 10) gleichzeitig angesprochen werden. Mit dem && funktioniert es nicht. Oder habe ich eine Klammer nicht gesetzt?
Dessen Reaktionszeit dürfte das nacheinander schreiben der Pins bei weitem überschreiten.
(Mindest aber die Reaktionszeit der Person, die beides feststellen soll)
Gleichzeitig ist ein elastischer Begriff.
In diesem Fall einen Vibrationsmotor einzuschalten und einen Ton auszugeben ist sehr zeitunkritisch da:
die 2 Ausgabegeräte unterschiedliche An und Ausschaltverzögerungen haben.
der Mensch diese 2 verschiedenen Aktionen leicht gleichzeitig erkennt auch wenn diese einige mS früher/später starten / enden.
auch wenn der Mensch erkennt daß diese 2 Signale nicht gleichzeitig sind der Mensch das nicht als Problem ansieht.
Darum genügen hintereinander aufgerufenen Funktionen für diese 2 Pins.
digitalWrite(Pin, Zustand) braucht zur Ausführung ca 4µS (wenn ich mich richtig erinnere)
Also
digitalWrite(9,HIGH);
digitalWrite(19,HIGH);
schalten die beiden Pins mit einer Verzögerung von ca 4µS.
Für einen Menschen ist das unmöglich zu erkennen.
Externe Elektronik kann das außeinander halten und unte Umständen falsch funktionieren.
In diesem Fall kann man den Port, wo die beiden PIN dranhängen direkt ansteuern und darum beide Pins gleichzeitig setzen. Das gilt nur für bestimmte Pinkombinationen : die Pins müssen auf dem gleichen Port liegen.
Das dachte ich mir auch. Ich habe in der Hardwareschaltung beides ablaufen lassen und es sind keine Sekunden Unterschied. Es ist so gering, das man es nicht wahrnehmen kann. Aber das Arduino port register manipulation control tutorial schaue ich mir mal an.