tijd tussen pulsen Servomotor

Hallo,

Om een servomotor (sg90) te sturen moet je om de 20ms een puls geven tussen 1ms en 2ms.
Hoe nauwkeurig moet de tijd tussen de pulsen zijn? mag dit ook 30ms zijn?

ik heb namelijk hetzelfde probleem als 'bit' in volgend topic:
https://www.circuitsonline.net/forum/view/98907

ik wil in bascom een programma maken voor het sturen van een servo met dmx. aangezien een dmx signaal ontvangen ongeveer 23ms duurt lopen de interrupts die de servo pulsen sturen in de soep.
daarom dacht ik eraan om de servo hardwarematig aan te sturen met een PWM module. In het best mogelijke geval kan ik hiermee om de 30ms een puls genereren Is dit ok of moet het echt 20ms zijn?

alvast bedankt,
Maarten

De tijd tussen de pulsen is niet kritisch. Maar het kan zijn dat de servo niet puur naar de pulslengte kijkt, maar naar de duty cycle. En dan moet je de pulslengte ook aanpassen om in hetzelfde instelbereik te blijven.
Lijkt me een kwestie van proberen.

Lambiek

Special Member

Let er ook op dat alles in de zelfde lus moet komen, anders is je servo op een gegeven moment niet bekrachtigt.

Misschien heb je hier nog iets aan.
https://www.circuitsonline.net/artikelen/view/48

Het is niet super kritisch, maar je moet wel in de buurt van de 20mS zitten.

Als je haar maar goed zit, GROETEN LAMBIEK.

Moderne ESCs kunnen gewoon rond de 450Hz hebben.

De "spec" zegt 20ms per iteratie. Als je iets aanbiedt wat buiten de spec komt dan kan je hopen dat het blijft erken zoals je denkt, maar zelf testen is het einige wat helpt. Die SG90 en lookalikes daar zijn er zo ontzettend veel van, als de mijne het prima vind, dan hoeft dat bij jou nog niet het geval te zijn.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
fatbeard

Honourable Member

In vroeger dagen (toen alles nog analoog was) ging de servo alleen een beetje bibberen als de tijd te lang werd.
De ontvanger/decoder van een meer'kanaals' systeem had er meer problemen mee, die kon een te lange pauze als reset zien en begon dan weer met servo 1 in de rij. Als de boel te kort op elkaar zat werd de volgende servo niet geselecteerd, dus bleef je permanent op servo 1.

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.

Bedankt voor de antwoorden.
Het is gelukt met de PWM/timer module van mijn atmega328.
De timer maakt nu om de 30ms een puls zonder dat de processor hier tijd moet in steken.
De servomotors vinden het niet erg dat de pulsen wat verder uit elkaar liggen.

Bedankt!

En moest je ook de pulslengte aanpassen?

Veel verschil in pulslengte zal er niet zijn. Denk dat pulslengte nu ongeveer tussen de 0.7ms en 2.5ms zit. Printje ligt niet meer thuis dus ik kan het niet meer nameten met de scoop.

Ik gebruik 8bit timers met prescale 256 mijn kristal is 4Mhz.
De waarde van de PWM registers varieer ik tussen de waarden 6 en 22.