Digitale servo 180 graden FC28 draait max 90graden

Discussie in 'Model elektronica' gestart door DreBo, 7 apr 2018.

  1. DreBo

    DreBo

    Lid geworden:
    4 dec 2002
    Berichten:
    711
    Locatie:
    Brunssum
    Hallo,

    voor een project van een verenigingscollega had ik een digitale 180 gr servo besteld. Eenmaal binnen blijkt hij max 90 graden te draaien op een FC28 omgebouwd met Jeti 2,4gHz.

    Volgens de leverancier komt dat omdat het werkbereik ( werk frequentie) van de FC28 de limiterende factor is.
    Een 120gr servo van het zelfde merk werkte wel.

    Is het mogelijk om dit benodigde pwm signal in te stellen bij de zender?

    Reactie leverancier:
    It is the Fixed signal of your FC 28 futaba limit the angle for only 90 degree. Pls use other equipment with can give the PWM: 500-2500us. This 180 degree servo is PWM control its rotational, Pls give the servo signal PWM: 500-2500us.​

    Hieronder de specs van de servo:

    180 Graden Servo Beschrijving:
    merk: JX
    Item: PDI-6221MG 20 KG Grote Koppel Digitale Standaard Servo
    graden: 180 °
    dode band:2μs
    werken frequence: 500μs/2500 hz
    Max frequentie: 500-2500us
    hoek Bereik: 172±2°
    Werksnelheid (4.8 V): 0.18 sec/85 °
    Werksnelheid (6 V): 0.16 sec/85 °
    kraam Koppel (4.8 V): 17.25 kg. cm (239.55 oz/in)
    kraam Koppel (6 V): 20.32 kg-cm (281.89 oz/in)
    afmetingen: 40.5X20.2X38mm/1.59X0.80X49 in
    gewicht: 62g (2.18 oz)
    Connector Draad Lengte: JR 265mm (10.43in)
    lager: 2BB
    Groeten,
    André
     
  2. ron van sommeren

    ron van sommeren Forum veteraan

    Lid geworden:
    31 aug 2002
    Berichten:
    29.332
    Locatie:
    halverwege Tiel & Nijmegen, tussen Maas & Waal
    Lijkt me een smoesje van de leverancier, 500-2500μs is niet de standaard bij zenders. Ze hadden die eis erbij moeten zetten.
    Het is de taak van servo om goed met het signaal uit de ontvanger, 1000-2000μs, om te gaan.
    Het is een doodgewone servo, die 180° is, laat ik het diplomatiek formuleren, onjuist.
     
  3. toostbeek

    toostbeek

    Lid geworden:
    6 dec 2014
    Berichten:
    1.403
    Als die specificaties erbij stonden vermeld op de aankoop pagina in de webshop dan had je kunnen zien dat je dat bereik van 180° niet ging halen met een standaard zender want die hebben een pulsbereik van 1000us tot 2000us.

    Ik weet niet of je bij jou zender de pulsbreedte kunt aanpassen. Ik denk het niet.

    Wat je wel zou kunnen doen is doormiddel van een arduino de puls vd ontvanger uitlezen en omzette in het benodigde signaal om de servo 180° te laten draaien. Kost alles bij elkaar een 3 euro voor de arduino en een servo verlengkabel van dezelfde prijs denk ik. Dus ingangssignaal vd Arduino 1000us - 2000us en uitgang naar de servo 500us - 2500us
     
  4. Corrien

    Corrien In Memoriam Forum veteraan

    Lid geworden:
    28 okt 2003
    Berichten:
    12.626
    Locatie:
    Maasland
    Zoals Ron en Toostbeek al aangeven zijn pulstijden van 500 - 2500 us niet haalbaar met een gewone zender. Zelfs servotesters geven niet zulke grote uitslagen. Er zijn wel servo's. die standaard grotere uitslagen leveren of programmeerbaar zijn naar grotere uitslagen, maar daar heb je momenteel niet zo veel aan.

    Voor een oplossing met een arduino, zoals Toostbeek voorstelt, moet je deze kunnen programmeren of iemand hebben, die dit voor je wil doen en anders zijn er hier op het forum vast wel enkele te vinden.

    Een andere mogelijkheid is om de servo aan te passen. Met een beetje mazzel is dit een servo, waarvan de potmeter met draden is verbonden met de print. Bij pech is deze met z'n drie pootjes vastgesoldeerd en dan is een aanpassing nog steeds mogelijk, maar een stuk lastiger. Als je in serie met de buitenste potmeteraansluitingen een weerstand opneemt wordt de slag groter. Hoeveel groter is afhankelijk van de weerstandswaarden en die zul je experimenteel moeten bepalen. Bij de meeste servo's moeten beide weerstanden dezelfde waarde hebben. Ik zou beginnen met aan beide zijden een 1k weerstand op te nemen. Als je alle tandwielen verwijdert, behalve het eindtandwiel, kun je aan de blokkeringsnok op het eindtandwiel zien wat de uitslagen worden. Een hogere weerstandswaarde levert een grotere slag. De blokkeringsnokjes in het bovenhuis zitten als regel op zo'n 210 graden of meer. Zorg, dat je daar ruim binnen blijft.
     
  5. toostbeek

    toostbeek

    Lid geworden:
    6 dec 2014
    Berichten:
    1.403
    Na aanleiding van dit verhaal was ik toch nieuwsgierig naar de maximum pulsbreedte van mijn FrSky Taranis zender.

    Normaal gesproken is de pulsbreedte bij de Taranis ingesteld op een bereik van 988us tot 2012us, maar met de optie extended limits in het modelmenu kan je deze limits vergroten. Je kan dan de pulsbreedte vergroten tot 752us tot 2248us. Nog niet voldoende dus om de 180° van de servo te halen.
     
  6. ron van sommeren

    ron van sommeren Forum veteraan

    Lid geworden:
    31 aug 2002
    Berichten:
    29.332
    Locatie:
    halverwege Tiel & Nijmegen, tussen Maas & Waal
    Kun je het pulsbreedtebereik per ontvangeruitgang instellen, of gelden die grenzen voor alle uitgangen?

    André heeft m.i. een onjuist product gekregen. Reclameren als hij de servo niet zelf wil/kan aanpassen volgens Jan's beschrijving.
     
    Laatst bewerkt: 8 apr 2018
  7. toostbeek

    toostbeek

    Lid geworden:
    6 dec 2014
    Berichten:
    1.403
    Ik weet niet of Rob de vraag aan mij stelde, maar op de Taranis zender kan ik per kanaal de pulsbreedte wijzigen. Zoals gezegd standaard staan alle kanalen begrenst op 988 - 2012us maar als ik de optie extended limits selecteer dan kan ik per kanaal de limits limits vergroten naar 150% wat uitkomt op 752 - 2248us.

    Als er bij de specificaties stond dat de pulsbreedte van deze servo 500 -2500us is dan valt er niks te reclameren denk ik. Tuurlijk is het een beetje vreemd om het zo aan te bieden zonder duidelijke aanwijzing dat het niet werkt met de standaard rc systemen, maar toch denk ze zullen zeggen dat je dan de specs beter had moeten lezen.

    Mocht er geen specificaties bij vermeld staan op de verkoop pagina dan is het een ander verhaal en kan je wel reclameren denk ik.
     
  8. marten77

    marten77

    Lid geworden:
    22 jul 2007
    Berichten:
    2.325
    Locatie:
    Gouda
    Dit soort servo's zijn ook zeer populair voor DIY robots !
    Zoals deze: http://inmoov.fr/gallery-v2/ (ben daar zelf ook actief mee :))

    Betreft de hulp met een Arduino:
    In mijn voorbeelden een simpele manier, om via een Arduino je ontvanger uit te kunnen lezen "RC_PulsMonitoring", om uiteindelijk de Max en Min waardes te kunnen bepalen.
    Met de tweede bijlage "Servo_Uitslag_Uitrekken", kun je die Max en Min waardes toepassen, om uiteindelijk de servo positie te verschalen.

    Hier de sketches:
    RC_PulsMonitoring:
    Code:
    /*
    Het uitlezen van je ontvanger kanaal
    en uit te lezen via de "serial-monitor", welke je rechtsboven vind (vergrootglas look)
    Zodra je die hebt geopend, check de snelheid en zet deze op 9600
     */
    
    int OntvangerPin = 2;  // de digitale pin waar je de ontvanger op aansluit = D2
    int OntvangerWaarde;   // de waarde vanuit de ontvanger word hiernaartoe weggeschreven
    
    void setup() {
      // start de serial:
      Serial.begin(9600);
    }
    
    void loop() {
      // print de waarde van je ontvanger-kanaal uit:
      OntvangerWaarde = pulseIn(OntvangerPin, HIGH, 100000);
      Serial.println(OntvangerWaarde);
      delay(500); // halve seconden wachten
    }
    Servo_Uitslag_Uitrekken:
    Code:
    /*
    Je servo uitslag vanuit een ontvanger signaal vergroten (of verkleinen)
    */
    
    #include <Servo.h>
    
    Servo Servo1;  // hier voeg je een servo functie toe (kunnen er meerdere zijn)
    
    int OntvangerPin = 2;  // de digitale pin waar je de ontvanger op aansluit
    int OntvangerWaarde; // de waarde vanuit de ontvanger word hiernaartoe weggeschreven
    int OntvangerMax = 1100; // Dit is de max waarde welke je zender/ontvanger uitstuurd
    int OntvangerMin = 1900; // Dit is de min waarde welke je zender/ontvanger uitstuurd
    int ServoPin =    9; // Op deze digital pin sluit je de servo op aan
    int ServoMax = 2500; // Dit is de max waarde welke je servo ondersteund
    int ServoMin =  500; // Dit is de min waarde welke je servo ondersteund
    
    void setup() {
      Servo1.attach(ServoPin);  // dit start de servo, sluit je servo aan via digital pin 9 en GND en +5V
    }
    
    void loop() {
      OntvangerWaarde = pulseIn(OntvangerPin, HIGH, 100000);                                  // sluit je ontvanger uitgang aan op Digital pin 2 (D2)
      OntvangerWaarde = map(OntvangerWaarde, OntvangerMin, OntvangerMax, ServoMin, ServoMax); // hier word de ingelezen waarde vanuit je ontvanger geschaald
      Servo1.writeMicroseconds(OntvangerWaarde);                                              // Hier word de servo aangestuurd met zijn nieuwe waarde
    //  delay(15);                                                            
    }
    Succes :thumbsup:
    Oohja, mocht je ook graag je servo willen vertragen (qua draaisnelheid), dan kan ik een voorbeeld geven, maar dit vereist wel al wat meer kennis met de Arduino !
     

    Bijgevoegde bestanden:

Deel Deze Pagina