PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RC Fahrtregler als servos ansteuert



NumberFive
16.02.2005, 11:12
ich habe folgenden code:



#define SETBIT(ADDRESS,BIT)(ADDRESS |=(1<<BIT))
#define CLEARBIT(ADDRESS,BIT)(ADDRESS &= ~(1<<BIT));
#define SERVO_MIN 2000
#define SERVO_MID 3000
#define SERVO_MAX 4000

#define SERVO1 OCR1A
#define SERVO2 OCR1B

// PWM Timmer
SIGNAL(SIG_OVERFLOW1)
{
TCNT1 = 0;

/* configure to set outputs on compare match so we can turn on the
* pulse in the next statement */
TCCR1A |= BV(COM1A1)|BV(COM1A0)|BV(COM1B1)|BV(COM1B0);

/* force compare match to set outputs */
TCCR1A |= BV(FOC1A)|BV(FOC1B);

/* configure to clear outputs on compare match so that the output
* compare function ends the pulse */
TCCR1A &= ~(BV(COM1A0)|BV(COM1B0));
}

void init_servos(void)
{
/* Use Timers 1 generate the pulses for 2 R/C servos; each
* */
/*
* configure OC1A for mode 0: normal, top=0xffff prescale=8 (f~=30):
*
* WGM33=0, WGM23=0, WGM13=0, WGM03=0, CS32=0, CS31=1, CS30=0
*/
DDRD |= BV(PORTD5) | BV(PORTD4);
TCCR1A &= ~(BV(WGM11) | BV(WGM10) | BV(COM1A1) | BV(COM1B1));
TCCR1A |= BV(COM1A0) | BV(COM1B0);
TCCR1B &= ~(BV(WGM13) | BV(WGM12) | BV(CS12) | BV(CS10));
TCCR1B |= BV(CS11);
TCNT1 = 0;
TIMSK |= BV(TOIE1);

/* set all servos to their center positions */
SERVO1 = SERVO_MID;
SERVO2 = SERVO_MID;
}



mit meinen servos geteste funktion auch ganz gut
leider steurn die servos nur ganz aus wenn ich

SERVO2 = 1500;
SERVO2 = 4500;

was ja nicht ganz den spezifikationen entspricht da
die im pluse jetzt zu lan bzw zu kurz sind.

währe nicht so schlimm wenn ich das nicht mit den fahrtregln betreiben
wollte die verhalten sich mit diesem code nämlich wie schalter und nicht
wie fahrtregler. ist es meine software oder sind die regler mist.

Gruß

16.02.2005, 11:23
sry hab kein plan von Programmieren aber meines wissens werden servos per PWM angesprochen also 1,5ms ist links 2.0ms mitte 2,5ms rechts oder so ..

Kaiser-F
21.02.2005, 13:44
Hallo NumberFive,

Fie Fahrtenregler arbeiten mit dem Gleichen Signal wie die Servos.

Es könnte allerdings sein, dass du einen Regler hast, der erst konfiguriert werden muss.

Bei meiner Heli ist es zB so, dass ich erst den Gashebel ganz zurück ziehen muss, dann ganz nach vorne, und dann wieder zurück. Erst dann gibt er ein pfeifsignal und funktioniert schließlich.

Dadurch wird er perfekt konfiguriert, dass er auch wenn dein Steuerhebel auf 100% ist, seine 100% durchschaltet.

Es gibt auch andere die wiederum anders Konfiguriert werden....
Steck den regler halt mal an nem RC-System an, dann kannst forschen wie deiner funzt.

Gruß
Kaiser

NumberFive
21.02.2005, 23:55
also die rgler lehrnen das ist richtig die funktion ist ja auch in plemtiert
aber leider ist mein RC anlage nicht funktions tüchtig sonst hätte ich es schon aus probiert

Kaiser-F
22.02.2005, 17:18
besorg dir halt nen "Servotester", kostet ca. 10€ bei Conrad oder in jeden besser sortierten Modellbaugeschäft....

Gruß
Kaiser