Nur mal zur Sicherheit: Wie muss ich den LiPo denn anschließen?
LiPo-Minus an GND, LiPo Plus an Servo-Plus und Servo-Minus an GND?
Druckbare Version
Nur mal zur Sicherheit: Wie muss ich den LiPo denn anschließen?
LiPo-Minus an GND, LiPo Plus an Servo-Plus und Servo-Minus an GND?
Richtig !
Und falls Du noch eine andere Spannungsquelle für die Versorgung des M32 benutzt die Minus Leitungen miteinander verbinden.
Nur wirst Du keinen Lipo finden, den Du direkt an deine Servos anschliessen kannst.
Roland
Habe ich gerade so gemacht mit dem LiPo. Auch kein Erfolg. Ich dreh' noch durch.
Ich habe genau die gleichen Servos für meine Kamerahalterung in Betrieb, von jedem eins.
Auch an einem Mega32 und es funktioniert einwandfrei.
Ich bin fast sicher, dass es an der Versorgungsspannung liegt.
Entweder Verkabelung oder Spannungseinbrüche.
Hast Du ein Oszi zur Hand?
Roland
Nein, habe ich leider nicht.
Ich habe gerade mal anstatt des LiPos ein Netzteil drangehängt. Auch nichts.
Du sagst, die 3 Mini - Servos funktionieren einwandfrei !
Die 3 Grossen nicht, aber an deinem Heli tadellos !
Wenn Du alle Servos abziehst und nur ein Grosses dort ansteckst, wo sonst ein Mini - Servo war, funktioniert es dann ?
Probiere aber alle 3 Grossen einzeln aus, evtl. ist ja eins defekt .
Roland
Ich habe die ganze Zeit schon zwischen einem kleinen und einem großen gewechselt. Also, ich hatte immer nur einen Servo am System. Habe dann den kleinen an dem Port angeschlossen um zu sehen ob wirklich ein Servo-Signal anliegt, habe dan den kleinen abgezogen und den großen dran gehängt (am selben Port). So habe ich das mit allen dreien gemacht und die Versorgungsspannung jeweils den Tipps entsprechend aufgebaut.
Nachtrag: Habe auch noch ein stärkeres Netzteil probiert (max 1,5 A). Auch keine Änderung!
Hallo,
die Pins auf den Erweiterungsports sind standardmäßig alle als Eingang konfiguriert.
Bist Du Dir also sicher das die I/O Ports richtig konfiguriert sind und auch richtig schalten?
(Ausgang! Nicht nur einfach bei nem als Eingang konfigurierten Pin den Pullup hin und her schalten!)
Falls das OK ist, schalte mal einen der Pins langsam an und aus (mit 3 Sekunden pause dazwischen) und mess die Spannung mit einem Multimeter.
Häng dann auch mal eine LED über einen Widerstand (470 Ohm bis 2K Ohm) dran und schau ob die blinkt.
MfG,
SlyD
Ich denke mal wenn die kleinen Servos an einem Port funktionieren dann ist dieser korrekt geschaltet. Aber zur Sicherheit hier trotzdem mal mein Code:
void ServoInit(void);
{
DDRC |= IO_PD6;
DDRC |= IO_PC4;
DDRC |= IO_PC6;
servo1_pos_d=12;
servo2_pos_d=5;
servo3_pos_d=22;
}
void servo(int servo_nr,int position, int speed)
{
switch (servo_nr)
{
case 1:
servo1_pos_d=position;
break;
case 2:
servo2_pos_d=position;
break;
case 3:
servo3_pos_d=position;
break;
}
}
------------------------------------------------
und dies steht in der Timer-ISR in der rp6controllib.c
if(servo_timer>servo1_pos_d) PORTD &= ~IO_PD6; else PORTD |= IO_PD6;
if(servo_timer>servo2_pos_d) PORTC &= ~IO_PC4; else PORTC |= IO_PC4;
if(servo_timer>servo3_pos_d) PORTC &= ~IO_PC6; else PORTC |= IO_PC6;
if(servo_timer<200) servo_timer++; else servo_timer=0;
PD6 ist kein Ausgang:
DDRC |= IO_PD6;
Drehbereich von 0,5 bis 2,2 Millisekunden erscheint mir zuviel für ein RS2-Servo.