7 kanalen uit, 2 in. Wat voor microcontroller PIC en USB PIC progger heb ik nodig?

Discussie in 'Model elektronica' gestart door Satoer, 7 mrt 2011.

  1. Corrien

    Corrien In Memoriam Forum veteraan

    Lid geworden:
    28 okt 2003
    Berichten:
    12.626
    Locatie:
    Maasland
    Volgens mij komt de hele bubs aan kanalen er in één keer uit, maar dat heb ik eerlijk gezegd nooit nagemeten.
     
  2. stef110

    stef110

    Lid geworden:
    17 jun 2009
    Berichten:
    264
    Locatie:
    aalsmeer
    Ik programmer zelf AVR's maar ook in basic, daarbij zit ook een pulse inlees functie, ik gebruik deze zelf ook voor mijn modelbouw toepassingen, zo ver ik weet, meet deze functie de tijd tussen het eind van de pulse en tot het begin van de volgende pulse. voor het mooie zou je er een display aan moeten hangen of een rs232 verbinding naar de pc. Zodat je een idee krijgt wat voor waardes je binnen krijgt, ben laatst zelf ook aan het stoeien geweest om servo's te besturen via de software, ik heb dit door middel van een eigen stukje code gedaan, die werkt aan de hand van de timmer in de uC. en haalde hierbij een software matige resolutie van ongeveer 1000 stappen, misschien zou je hier ook eens naar moeten kijken, omdat je dan zelf ook in de hand heb wanneer je je servo's gaat pulsen.


    stef
     
  3. Satoer

    Satoer Forum veteraan

    Lid geworden:
    21 okt 2003
    Berichten:
    6.197
    Locatie:
    Zaandam
    Volgens mij is het deze functie:
    PulsLengthServo1 = PulsIn InputCH5, 1

    Die leest alleen de lengte van de puls, wat op zich goed werkt daarna gaat het programma meteen verder (wacht dus niet op de volgende puls). Helaas moet ik 2 kanalen inlezen waardoor deze functie een beetje nutteloos wordt voor mijn situatie. Tijdens het inlezen van de puls staat namelijk het programma stil. Aangezien alle pulsen (waarschijnlijk) gelijk starten met het 2.4 Ghz systeem, kan ik de volgende puls pas na 20ms inlezen. Als ik daarna de pulsen uitstuur naar de uitgangen is de pauze-tijd al 40ms.

    Wat ik kan doen is de pulsen om en om uitlezen. Dus kanaal 5 inlezen => Alle pulsen er uit naar alle kanalen. Kanaal 7 inlezen => alle pulsen er uit naar alle kanalen. Waarbij ik gewoon de laatste instelling blijf gebruiken van het kanaal wat ik niet heb uitgelezen. Je verliest zo de helft van de snelheid, maar op zich is het voor mijn toepassing nog snel zat aangezien het toch maar schakel kanalen zijn.

    Mijn eerste idee nog voor ik aan het project begon was om het ook met interrups en timers te doen, maar kennelijk is dit toch wat te ingewikkeld dat ik er geen duidelijke voorbeelden van kan vinden hoe interrupts te ondervangen en timers te starten. Ik denk dat ik het voor dit programma gewoon simpel ga houden. maar als jij een voorbeeldje hebt met gebruik van timers (in Picbasic) zou ik dat graag van je willen zien :)


    Eigenlijk moet ik even de scoop van zolder halen om echt goed te kunnen zien hoe het signaal er uit ziet. Maar volgens mij red ik het ook wel met het digitale servotesterje display.
     
    Laatst bewerkt: 11 mrt 2011
  4. han mul

    han mul

    Lid geworden:
    27 dec 2005
    Berichten:
    305
    Locatie:
    Nieuwerkerk aan den IJssel
    nog wat tippzzz

    Ik zit dit draadje belangstellend te lezen. Er zijn een paar zaken waar je mogelijk tegen aan gaat lopen. e.e.a. afhankelijk van of en hoe je de input gaat bewerken naar output.
    Deze ezel heeft zich al eens aan die steen gestoten, dus doe er je voordeel mee.

    Timing.
    Wel of niet een kristal is niet zo belangrijk. Wat wel belangrijk is, is dat je de software zo schrijft dat je geen jitter op de gemeten pulsbreedte van de ingangspuls introduceert. Dit is herkenbaar aan trillende/brommende servo's.
    Een Xtal helpt denk ik wel mee, maar een machinecyclus is ook al snel 1 microseconde. Je moet de inputport dus softwarematig met een zo kort mogelijk tijdinterval monitoren.

    2 kanalen omzetten naar 7 kanalen (sequentieel kan dit ong. 18ms gaan duren) laat erg weing tijd voor allerhande rekenacties en transformaties tijdens de omzetting input -> uitput.
    Parallel output aansturen is hiervoor al voorgesteld, is enkel wat lastig uittimen als elke servo een eigen stuurpuls met een unieke lengte krijgt.
    Geen floating point operaties gebruiken scheelt al erg veel rekentijd. gebruik bij voorkeur enkel simpele bit/byte shift operaties. Scheelt ook weer geheugenruimte.
    Advies scope van zolder halen en één output port misbruiken voor debug/timing informatie. Dan zie je precies hoe lang bijv. de init fase duurt.

    Inschakelen.
    Het lijkt een open deur, maar als je de schakeling aanzet, ben je gegarandeerd een paar honderd miliseconden de chip aan het resetten en variabelen aan het inlezen/presetten. Input is gedurende deze fase niet gedefinieerd en de output dus helemaal niet. Gevolg, enorme klappers op de servo's. Output dus pas activeren als de input stabiel is.

    Sucess.
     
  5. Satoer

    Satoer Forum veteraan

    Lid geworden:
    21 okt 2003
    Berichten:
    6.197
    Locatie:
    Zaandam
    Hoi Han,

    Met het uitsturen van de servosignalen wacht ik eerst totdat ik alle ingangssignalen gelezen heb. Ik ben inmiddels al erg ver. Misschien dat ik een bouwverslagje/tutorial maak aangezien er op het forum erg weinig te vinden is hierover en het toch een best interessant project is voor de modelbouwer. Mogelijkheden zijn eindeloos. Je zou complete sequenties kunnen maken bijvoorbeeld. Bijvoorbeeld bij een zwever: Luik open, motor uit klappen, motor ontgrendelen... met de flip van een enkele schakelaar.

    Waar ben ik nu:

    Bijna alles werkt zoals ik in gedachte had. Echter bots ik wel tegen je gestelde probleem aan. Mijn programma werkt als volgt:

    Lees puls in op kanaal 7.

    Bepaal op basis van de puls hoe alle servo signalen moeten zijn

    Stuur de pulsen naar de uitgangen (=subroutine)

    Lees puls in op kanaal 8

    Bepaal op basis van de puls hoe alle servo signalen moeten zijn

    Stuur de pulsen naar de uitgangen (zelfde subroutine)

    Herhaal

    In totaal worden er 6 servosignalen uitgestuurd en 2 signalen om en om ingelezen. Van de 6 servosignalen zijn er 3 voor een intrekbaar landingsgestel, en daarbij heb ik het programma zo geschreven dat het landingsgestel rustig word ingetrokken en na ingetrokken te zijn na zo’n 40 pulsen stopt met pulsen geven zodat de servo’s ontgrendeld worden. (Het landingsgestel vergrendeld zicht mechanisch). Het “probleem” is echter dat 6 servosignalen uitsturen te lang duurt en de framerate zakt naar 40ms ipv 20ms op het moment dat het landingsgestel ingetrokken wordt (test ik puur op gehoor door aan de servo te duwen en de frequentie te luisteren). De pic is net te laat klaar om de volgende puls in te lezen waardoor hij een volle 20ms moet wachten tot de puls zich weer opnieuw aanbiedt. 5 servosignalen gaat net, maar dat ligt er ook een beetje aan hoeveel microseconde lang alle pulsen moeten zijn.

    Aan de tijd dat de microcode in beslag neemt geeft nauwelijks verschil, als ik alle code herschrijf tot een super eenvoudige versie dan neemt het alsnog teveel tijd in beslag om 1 puls in te lezen en 6 uit te spugen.

    Een oplossing zou zijn dat ik alle 6 pulsen gelijktijdig uitkots. Dus alle kanalen hoog maken, een hardwaretimer starten. Een loopje maken waarin elk kanaal wordt vergeleken met de hardwaretimer en als te pulstijd voorbij is het kanaal laag gemaakt wordt. Het zelfde truckje kan ik ook doen met het inlezen natuurlijk, waardoor de verversings frequentie ook niet gehalveerd wordt. Ik heb alleen geen benul hoe hardwaretimers werken. Hoe ik die moet starten en hoe ik die moet uitlezen. Softwarematig gaat te onnauwkeurig worden vrees ik.

    Hoe dat ook, ik denk dat de 40ms puls (tijdens het intrekken van het landingdgestel) geen problemen gaat geven voor de hardware die ik er aan ga hangen. Als het goed is krijg ik morgen de rest van de hardware dan kan ik wat verder testen.

    Behoefte om de huidige broncode in te zien?
     
    Laatst bewerkt: 14 mrt 2011
  6. Volhout

    Volhout

    Lid geworden:
    23 jul 2008
    Berichten:
    912
    Locatie:
    Twente
    @Satoer,

    - Het gaat met 5 goed, en met 6 niet. Technisch zou het moeten kunnen, maar er zit waarschijnlijk wat "overhead" in de basic software.
    - Als het mis gaat (40mSec frame rate) hoor je dat aan de servo's, maar ik lees niet dat je een onoverkomelijk probleem hebt.
    - Het landingsgestel wordt niet continue aangestuurd, alleen tijdens het intrekken en uitvaren.

    1/ Dus je zou de framerate op 3 uit op 20msec kunnen houden, en als het landingsgestel in- of uit moet de framerate op de landingsgestel servo's op 40 mSec kunnen zetten (voeg in het CH7 frame servo 1 toe, en in het CH8 frame servo's 2 en 3). Dan hou je de eerste 3 servo's vast op 20mSec, en de landingsgestel servo's op 40mSec (tijdens in en uitdraaien).

    2/ Ik weet de functie niet van de andere 3 servo's (buiten de landingsgestel servo's). Als dit voor een 3 as bestuurde camera is, dan kun je natuurlijk ook tijdens het uitdraaien van het landingsgestel deze 3 andere servo's (gedurende die paar seconden) naar de middenstand sturen (daardoor kun je die 3 pulsen gelijktijdig uitsturen, als 1 puls). Dus:

    vliegen: 3 servo's (geen puls naar landingsgestel servo's).
    landingsgestel uit: 3 servo's als 1 uitsturen + 3 landingsgestel servo's = 4 servo's.

    Zomaar wat ideeen.

    Volhout

    P.S. of...alles in assembly schrijven. dan heb je tijd genoeg....
     
  7. Volhout

    Volhout

    Lid geworden:
    23 jul 2008
    Berichten:
    912
    Locatie:
    Twente
    Broncode

    @Satoer,

    Ik wil je broncode wel even zien. Kijken of ik het snap...
    Kan per PM ??

    Volhout
     
  8. Satoer

    Satoer Forum veteraan

    Lid geworden:
    21 okt 2003
    Berichten:
    6.197
    Locatie:
    Zaandam
    Van assembly wordt ik niet vrolijk. Ik denk ook niet dat het optimaliseren van de code heel veel zin heb (Als in: zelfde manier maar efficiëntere code) . Als ik een zwaar vereenvoudigde code in de pic programmeer geeft het nog hetzelfde “probleem”. Tussen aanhalingstekens, want volgens mij gaat het geen problemen verder geven voor het door mij benodigde doel.

    De functies die bediend worden:
    - 3 landingsgestel servo’s
    - Een elektronische Co-pilot met 3 standen (return to home, auto circling mode en off)
    - Zelfde elektronische Co-pilot met 3 standen (Stabilized fixed altitude, Stabilized, en Stanbilisation off)
    - Een elektronisch OSD (on screen display) met 3 standen waarvan ik 2 standen gebruik (OSD on en OSD off)

    De kasjes ziet er zo uit:
    [​IMG]
    [​IMG]
    Dit zijn dus geen servo’s wat er aan hangen. De vraag is dus of de elektronische kastjes de lagere framerate accepteren of niet.

    Het is nogal wat code en wordt vrij onoverzichtelijk als ik het zo zonder opmaak hier post op het forum. Ik heb er een losse HTML met opmaak van gemaakt:
    Klik hier om de broncode te zien. Ik heb er zoveel mogelijk aantekeningen bij gezet wat ik precies doe in de code.

    Ik heb de vereenvoudigde broncode hier online gezet, Ik denk dat het makkelijkste is als je deze eerst bekijkt. In deze code wordt er niet gecontroleerd of beide kanalen al een keer zijn ingelezen (initialisatie), en is het langzaam intrekken van het landingsgestel en het ontkrachten daarna er ook uit gesloopt. De landingsgestel servo’s knallen dus vol open of dicht en blijven bekrachtigt. In deze code werkt het ook goed tot 5 servo’s. Voeg ik een zesde servo toe dan komt hij net te laat om de volgende puls in te lezen.

    De oplossing zou parallel uitsturen van alle uitgangsignalen zijn zoals ik hiervoor beschreef.
     
  9. Volhout

    Volhout

    Lid geworden:
    23 jul 2008
    Berichten:
    912
    Locatie:
    Twente
    Hoi Satoer,

    Ik heb naar de vereenvoudigde broncode gekeken, en zie wat puntjes voor verbetering, maar verwacht niet dat het veel oplevert. Je zou een scoop (of simulator !) nodig hebben om te zien wat het oplevert. Is dit "interpreter" of "compiler" basic ??? Als het compiler basic is kun je het gewoon in MPLAB simulator laden en de stopwatch gebruiken om het te time-n.

    1/ waarom heb je sommige uitgangen op PA en sommige op PB zitten ? Als je ooit van plan bent de uitgangen gelijktijdig te laten schakelen is het veel makkelijker om alle uitgangen op PB te zetten. Laat PB6 en 7 vrij voor het programmeren, en neem PA als input.

    2/ je gebruikt een "ripple if" om de states te bepalen. Speciaal voor dit soort gevallen is een "case" statement ontwikkeld. Zodat je niet iedere keer de vergelijking hoeft op te lossen. Als deze basic geen "case" statement kent, kun je het if statement omzetten naar een "binary search if".

    nu: if 85%
    if 70%
    if 55%
    if 40%
    if 25%
    if 10%
    je moet dus door maximaal 6, maar gemiddeld 3 states heen.

    binary search
    is het groter dan midden
    ja...is het groter dan 75%
    nee..is het kleiner dan 25%

    Op deze manier heb je maximaal 3 stappen. Dit helpt alleen als de if statements veel tijd gebruiken. Ik weet niet hoe efficient de basic is.

    Succes

    Volhout
     
  10. Satoer

    Satoer Forum veteraan

    Lid geworden:
    21 okt 2003
    Berichten:
    6.197
    Locatie:
    Zaandam
    Hoi Volhout,

    Bedankt voor je advies

    1) Ik had in mijn eerste schema alle uitgangen op de A uitgangen en alle ingangen op de B. Helaas heeft het ICSP (in circuit serial programming om de pic rechtreeks te programmeren) A5 al in gebruik (en ik wist niet zeker of ik deze uitgang dan ook nog voor andere doeleinde kon gebruiken) A6 en A7 moet worden verbonden met het kristal en A4 bleek op een of andere manier een slecht signaal uit te spugen. (servo reageerde niet en frequentie meter gaf een iets trager signaal aan dan gebruikelijk) in plaats van uit te zoeken waarom A4 raar deed heb ik die gewoon op een andere (B) poort gezet. Dus lang verhaal kort: Ik had niet meer uitgangen over op de A.

    2) Ik was niet op de hoogte dat de case syntax je een case op een bereik kon zetten (bv > 800 (case groter dan 800)) Normaal programmeer ik in Delphi (Pascal) waarbij een case alleen op vaste waarde's kan. Dus je antwoord waarom ik het met een if -statement gemaakt heb: Onervarenheid in basic (Dit is het eerste basic programma wat ik maak ;) ) Ik zal het eens omzetten in een case.

    Ik denk ook niet die paar extra machine cycles besparing echt zoden aan de dijk zet echter. Ik ga toch nog eens experimenteren om de pulsen parallel uit te koppen.
     
    Laatst bewerkt: 15 mrt 2011
  11. han mul

    han mul

    Lid geworden:
    27 dec 2005
    Berichten:
    305
    Locatie:
    Nieuwerkerk aan den IJssel
    Hoi Michel,
    't blijft altijd moeilijk om andermans code even snel te beoordelen. Flowchart ?
    Ik zat net even te kijken in mijn eigen code en snapte er al bijna geen bal meer van :)

    Volhout heeft al zeker een paar punten.
    Verder;
    Staat je PIC intern ook op de hoogste clockspeed, geen delertjes actief ?
    Direct de hardware programmeren in plaats van allerhande vage subs aanroepen kan ook een heleboel tijd schelen. Alle counters en registers zijn direct vanuit C of Basic bereikbaar.
    Je gebruikt in SERVOPROJECT3.BAS CH7&8 als input. Eerder noemde je CH5&7. Deze laatste kunnen zo maar eens 2 ms uit elkaar liggen. kost ook weer onnodig tijd. (tenminste als jouw ontvanger iets PPM-achtigs uitspuugt)

    6 proportionele kanalen uitsturen binnen 20 msec moet mogelijk zijn. Mits jouw beide inputs direct op elkaar volgen. 't staat me bij dat ik die truc al eens uitgevoerd heb. (en dan met een 500-2500 usec range per kanaal) Ik kan 't enkel niet meer in mijn aantekeningen terugvinden.

    En als de timing toch niet past, elk kanaal een eigen PIC is nog een optie.
     
  12. Satoer

    Satoer Forum veteraan

    Lid geworden:
    21 okt 2003
    Berichten:
    6.197
    Locatie:
    Zaandam
    Ik heb geen flowchart, ben ook geen programmeur van beroep (ben vormgever ;) ) het is meer een beetje hobby. Ik heb de pic geprogrammeerd zoals in de broncode op de vorige pagina. Verder heb ik dus geen bal verstand van die dingen. Toen ik dit topic begon had ik er nog nooit mee gewerkt. Volgens mij staat die met de code:
    XTAL 20 ; Maak gebruik van een Hardware kristal van 20 Mhz
    Op de juiste klokspeed van 20 Mhz. Ik zou niet weten of er delers actief zijn, dit zou je in de broncode moeten kunnen zien?

    Ik heb net de volgende test gedaan:
    While 1 = 1
    PulsLengthInputCH7 = PulsIn InputCH7, 1
    PulsOut FlightMode , PulsLengthInputCH7
    PulsOut AutoPilotMode , PulsLengthInputCH7
    PulsOut OsdMode , PulsLengthInputCH7
    PulsOut FrontRetract , PulsLengthInputCH7
    PulsOut RightRetract , PulsLengthInputCH7
    PulsOut LeftRetract , PulsLengthInputCH7
    Wend

    Hij leest 1 puls in op kanaal7 daarna spuugt hij deze puls door op alle 6 kanalen. Dit gaat goed tot de puls een lengte krijgt van 2010 microseconde. Dan schiet die over naar de 40ms ipv 20. Het is dus überhaupt niet mogelijk om in picbasic 1 kanaal in te lezen en 6 kanalen uit te spugen binnen de 20ms (als de pulslengte lang is).
     
  13. Satoer

    Satoer Forum veteraan

    Lid geworden:
    21 okt 2003
    Berichten:
    6.197
    Locatie:
    Zaandam
    Okay, ik ben er uit volgens mij. Ik heb nu een stuk code geschreven waarbij ik 3 pulsen gelijktijdig kan uitsturen. Het is niet zo'n nette code, maar wel eenvoudig:

    alle kanalen hoog maken
    High OsdMode
    High AutoPilotMode
    High FlightMode

    Begin van de loop:
    For MicroSecCounter = 2 To 220

    ;de kanalen laag maken als de gewenste pulstijd bereikt is:
    If MicroSecCounter = PulsLengthOsdMode Then Low OsdMode
    If MicroSecCounter = PulsLengthAutoPilotMode Then Low AutoPilotMode
    If MicroSecCounter = PulsLengthFlightMode Then Low FlightMode

    ;Hier volgt een delay om de tijd exact 10micro sec. per cyclus te maken.
    DelayUS 1
    nop
    nop
    nop
    nop
    nop
    nop
    Next


    Eest maakt het alle kanalen hoog dan volgt er een loopje van 10 micro seconde per cyclus die elk kanaal weer laag maakt als de gewenste pulsbreedte bereikt is. De nop instructies zijn no operation asembler code van 1 machine cycle. Die doet dus niets anders dan nauwkeurig delayen.

    6 pulsen gelijktijdig versturen met een nauwkeurigheid van 10 micro seconde lukt niet. Daar duren de machine cycles van de if-statements te lang voor. Maar ik kan nu dus wel 3 pulsen gelijktijdig 2 keer achter elkaar uitsturen! :D
     
    Laatst bewerkt: 16 mrt 2011
  14. Satoer

    Satoer Forum veteraan

    Lid geworden:
    21 okt 2003
    Berichten:
    6.197
    Locatie:
    Zaandam
    YESSSSSSS!!! ik heb alleen het stukje code:
    Servo FlightMode ,PulsLengthFlightMode
    Servo AutoPilotMode ,PulsLengthAutoPilotMode
    Servo OsdMode ,PulsLengthOsdMode


    voor de volgende code hoeven te veranderen:
    High OsdMode
    High AutoPilotMode
    High FlightMode
    For MicroSecCounter = 20 To 2200 Step 10
    If MicroSecCounter = PulsLengthOsdMode Then Low OsdMode
    If MicroSecCounter = PulsLengthAutoPilotMode Then Low AutoPilotMode
    If MicroSecCounter = PulsLengthFlightMode Then Low FlightMode
    DelayUS 4
    nop
    nop
    nop
    nop
    Next


    En het werkt! Als het landingsgestel ingetrokken wordt zakt de framerate op de overige kanalen niet in omdat ik 3 kanalen parallel uitstuur. De code voor het landingsgestel heb ik niet hoeven veranderen. Dus ik stuur er nu 3 parallel uit, en vervolgens 3 serieel. :D

    edit
    :!: Voor andere die bovenstaande code ook willen proberen om pulsen parallel uit te sturen, dit werkt alleen met de PIC 16F628A op 20Mhz. Heb je een andere pic of andere kloksnelheid zal je het stuk:
    DelayUS 4
    nop
    nop
    nop
    nop

    moeten aanpassen om de pulstijd te "ijken".
     
    Laatst bewerkt: 16 mrt 2011
  15. han mul

    han mul

    Lid geworden:
    27 dec 2005
    Berichten:
    305
    Locatie:
    Nieuwerkerk aan den IJssel
    Dit lijkt meer op een brute force-attack.:p
    Je krijgt de boel daarmee gelukkig wel aan het werk.

    Is dit nog een "droge test" ? Of heb je het al live getest op het landingsgestel ?
     
  16. Satoer

    Satoer Forum veteraan

    Lid geworden:
    21 okt 2003
    Berichten:
    6.197
    Locatie:
    Zaandam
    Alles is live getest. Alleen nog niet alle benen gelijktijdig.
     
  17. han mul

    han mul

    Lid geworden:
    27 dec 2005
    Berichten:
    305
    Locatie:
    Nieuwerkerk aan den IJssel
    misschien een stomme vraag, maar waarom niet alle drie de benen op een PIC uitgang ?
    Je hebt ze tenslotte alle drie tegelijk nodig.
     
  18. Satoer

    Satoer Forum veteraan

    Lid geworden:
    21 okt 2003
    Berichten:
    6.197
    Locatie:
    Zaandam
    De end points zijn niet gelijk, en een uitgang moet gereversed worden.
     
  19. Volhout

    Volhout

    Lid geworden:
    23 jul 2008
    Berichten:
    912
    Locatie:
    Twente
    PA4

    @Satoer,

    De uitgang PA4 van een PIC16F processor is een "open drain". Die heeft geen FET naar Vcc. Je kunt deze uitgang wel als IO pin gebruiken maar dan moet je een pull-up weerstand naar Vcc aanbrengen (b.v. een 2.2k weerstand tussen PA4 en +5V.

    Slim dat je het zo hebt opgelost. Alleen jammer dat je een factor 10 aan resolutie moet inleveren. Maar dat zal in veel gevallen toch wel werkbaar zijn. Wie heeft nou werkelijk 1024 stapjes of meer nodig (behalve de F3A/F3P vliegers).

    Harm.
     
    Laatst bewerkt: 17 mrt 2011
  20. Satoer

    Satoer Forum veteraan

    Lid geworden:
    21 okt 2003
    Berichten:
    6.197
    Locatie:
    Zaandam
    Ah, vandaar dat dat problemen gaf.

    Ik ben er inmiddels achter waarom 1 puls inlezen en 6 serieel uitsturen niet lukte. Uit de handleiding van de ontvanger:
    Een framerate van 14ms spuugt de ontvanger uit ipv 20ms.
     

Deel Deze Pagina