-         

Ergebnis 1 bis 3 von 3

Thema: RC-Empfaenger an RN-Control

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    22.05.2005
    Alter
    27
    Beiträge
    23

    RC-Empfaenger an RN-Control

    Anzeige

    Hallo Freunde,

    ich habe alles durchgesucht und nichts einfaches gefunden.
    Ich moechte einen AR6200-Empfaenger, das ist ein normaler RC-Empfaenger an den RN-Controller anschliessen
    4 Kanal auslesen ohne Summensiganl bilden zu muessen, also einfach anstelle des Servos oder des fahrtreglers an den controller

    Wie mach ich das? knann mir jemand helfen?

    Gruss

    Biboxx

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Du hast an deinem Empfänger die Buchsen an die du die Servo ansteckst. An einem dieser Pin kommt das Servosignal heraus. Wenn der Empfänger die gleiche Stromversorgung hat wie RN-Control kannst du das Signal direkt verwenden.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo Biboxx,

    ich vermute, dein "Wie mache ich das?" bezog sich eher auf die Auswertung als auf den Anschluß. Wenn du schon Servos ansteuern kannst und dazu eine ISR verwendest (wie im Beispiel im RN-Wissen: Servo) ist die Auswertung eines RC-Empfängersignals sehr einfach: Man zählt einfach die ISR-Aufrufe mit gesetztem RC-Eingang. Ein Beispiel (mit einem 8MHz-Mega32 und einem Timer im CTC-Mode):
    Code:
    ISR(TIMER0_COMP_vect)
    {
       static uint16_t rc_temp_pwr=0;
       static uint16_t rc_temp_dir=0;
       
       // Ab hier werden Impulse für Servos erzeugt
       //static uint16_t count=0;
       //if(count>x) PORTA &= ~16; else PORTA |= 16;   // E_INT1 (Pin8)
       //if(count>y) PORTC &= ~1;  else PORTC |= 1;   // SCL (Pin10)
       //if(count>z) PORTC &= ~2;  else PORTC |= 2;   // SDA (Pin12)
       //if(count<1000)count++; else count=0;
       
       // Ab hier werden RC-Signale vom Empfänger ausgewertet
       if (PINC & 1) rc_temp_dir++; else
          if (rc_temp_dir) { rc_input_dir=rc_temp_dir-1; rc_temp_dir=0; }
       if (PINC & 2) rc_temp_pwr++; else
          if (rc_temp_pwr) { rc_input_pwr=rc_temp_pwr-1; rc_temp_pwr=0; }
    }
    (Aus:http://www.roboternetz.de/phpBB2/zei...=328824#328824)

    Die Signale werden hier an PC0 und 1 eingespeist, die Ergebnisse stehen in rc_input_dir und rc_input_pwr. Standardmäßig werden solche ISR mit 100kHz aufgerufen, dann ergeben sich die für Servos üblichen Werte von 100-200. Man kann aber auch einen anderen Takt verwenden. Wenn man schon einen Timer mit halbwegs schneller Frequenz im Einsatz hat (PWM, IR-Trägerfrequenz...) kann man auch diesen verwenden. Die Werte haben dann zwar eine andere Auflösung, dafür ist der Aufwand noch geringer als wenn man extra noch einen Timer einsetzt. ;)

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •