Hallo blenderkind,
Meine Servos hängen auf einem zweiten 4,8V-Akkupack. Plus(rot) auf Plus Extraakku, Minus(braun) auf GND-RP6 und Signal auf Signal-RP6. Minus-Extraakku auf GND-RP6. Das ist aber nur eine Zwischenlösung weil zuviel Ballast. Geplant habe ich eine Spannungsregler-Platine mit je einem 5V/2A-Regler pro 4 Servos (4x0,5A normaler Servostrom), versorgt vom RP6-Akkupack.
Ein großes Problem ist die gleichzeitige Ansteuerung der Servos. Fast alle Beispiele für Servoansteuerungen starten alle Servos zur gleichen Zeit und stoppen sie dann einzeln je nach Drehwinkel. Der Gesamtstrom ist dabei beim Start der Servos enorm! Ich bastle im Moment an einer anderen Lösung. Die Servos erhalten ihre Impulse nacheinander. Mein Code für eine 100kHz-ISR und 8 Servos sieht im Moment so aus (und ist noch nicht richtig getestet):
Code:
ISR(TIMER2_COMP_vect)
{
static uint16_t count=0;
static uint8_t impuls=0, servo=0;
if(!impuls)
{
if(servo == 0) { impuls=vla; servo0_on; }
if(servo == 1) { impuls=vli; servo0_off; servo1_on; }
if(servo == 2) { impuls=hla; servo1_off; servo2_on; }
if(servo == 3) { impuls=hli; servo2_off; servo3_on; }
if(servo == 4) { impuls=hra; servo3_off; servo4_on; }
if(servo == 5) { impuls=hri; servo4_off; servo5_on; }
if(servo == 6) { impuls=vra; servo5_off; servo6_on; }
if(servo == 7) { impuls=vri; servo6_off; servo7_on; }
if(servo == 8) servo7_off;
if(servo < 9) servo++;
} else impuls--;
if(count < 2000) count++; else { count=servo=impuls=0; if(p) p--; }
}
Gruß
mic
Lesezeichen