du verwechselst Grund, Ursache, Anlass und Wirkung.
Und dass dir das eine oder andere nicht bekannt ist, heißt nicht, dass es das nicht gäbe.
Auch dein Verständnis vom Verhalten und Zusammenpiel von Arduino-Progammen mit Peripherie ist anscheinend noch etwas voreingenommen, naiv oder unreflektiert, siehe z.B. Reset-Button, und oben hast du selber vom Auslesen von unpogrammierten Arduino-Pins gesprochen.
Was eine Servoplatine mit PCA9685 IC (wie der deinigen) z.B. macht, schau mal hier:
https://www.adafruit.com/product/815
https://learn.adafruit.com/16-channel-pwm-servo-driver
Insbesondere scheint dir gar nicht kar zu sein, was Servos hier genau veranlasst, eine bestimmte Position anzufahren.
Und gerade dass sie das u.U. tun, OBWOHL dein Anwenderprogramm, das du selber aufgespielt hast, nach wie vor drauf war (und nur neu gestartet wurde), bedeutet nicht, dass dies der Servocontroller von sich aus macht, weil er vom angeblich "unprogramierten" Arduino kein Signal dazu bekäme - und nochmal: RESET MACHT KEINE PROGRAMME UNWIRKSAM!!
Allerdings kenne ich dein Anwenderprogramm nicht und weiß auch nicht, ob deine Servoplatine evt außer ihren eigenen Timern auch eigene Controller-Steuer-Funktionen dafür besitzt.
Immerhin wird ein PCA9685 ausschließlich von einem aktiven Programm über 2 i2c-Pins angesteuert, für alle Servo-Funktionen. Möglicherweise arbeitet dein Anwenderprogramm nur in verschiedenen "Stufen" nach Einschalten oder Neustart.
Ich sehe jedenfalls keine Veranlassung für deinen PCA9685, eine "Grundstellung" anzusteuern, ohne dass er via I2C einen definitiven Befehl dafür bekommen hätte.
Lesezeichen