Hallo

Wie bist Du denn auf die Idee gekommen, so etwas auszuprobieren?
Über eine gedankliche Strommessung an der 5V-Leitung. Dabei fiel mir dann auf, dass der Steuerpin intern ja weder zu + noch zu - verbunden sein kann, bei Belastung also möglicherweise etwas zu messen wäre. Nach ein paar Timeingversuchen beim Einlesen der Spannung klappt es nun ganz gut. Die Verzögerung im Demo kommt vom relativ langem Verzögern zwischen den Auswertungen in der Hauptschleife (5*200ms). Da kann man aber noch einiges rausholen, das sind noch die allerersten Versuche.

Zum Messzeitpunkt: Innerhalb der 20ms-Zyklen wird erst der Impuls ausgegeben, dann kurz gewartet und dann erst der Wert eingelesen. Mit 5V-Referenz, schnellem Prescaler /16 (bei 8MHz-Kontrollertakt. Der ADC-Interrupt ist gleichzeitig der Timer für die Servointerrupts.) und 10Bit-Sampling lese ich Spitzenwerte von ca. 4.

Wichtig ist die kurze Wartezeit nach dem Impuls, denn es dauert bei dem verwendeten Takt bis zu 10 Aufrufe der ISR bis der Wert am Pin auf 0V sinkt. (Ich messe im Beispiel oben genau 100 Aufrufe nach dem Impuls) Der Wert bleibt auf 0 bis das Servo belastet wird. Beim Drehen ohne Last bleibt der Wert auch bei 0, aber möglicherweise kann man mit Last auch schon die Drehung selbst erkennen. Ich habe es auch noch nicht an einem freien ADC-Pin ausprobiert, in meinem Versuch ist ein 10k-PullDown verschaltet.

Bei mir funktioniert das mit den 5€-Miniservos und den 3€-Servos gut, mit den großen 5€-Servos funktioniert es noch nicht. Andere Typen stehen mir zum Testen nicht zur Verfügung. Anwenden möchte ich das bei einem Greifer, aber auch für Spinnenbeine dürfte das interesant sein.

Gruß

mic