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
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
Geändert von rolber (05.01.2012 um 19:44 Uhr)
Robotik & Arduino Homepage
http://www.ardumega.de
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
Robotik & Arduino Homepage
http://www.ardumega.de
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
Robotik & Arduino Homepage
http://www.ardumega.de
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!
Geändert von dirty_bird_981 (05.01.2012 um 20:45 Uhr)
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
Geändert von SlyD (06.01.2012 um 14:33 Uhr)
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.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Lesezeichen