PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : servo tut nicht, was er soll



Goblin
05.03.2005, 18:24
hi!

ich hab nen prog geschrieben, was nen pwm-output generiert. als erstes für 1 sekunde 255 (also 100%), dann für 2 sekunden 1 (also fast 0%) und dann 125 (also fast 50%). der servo soll also voll ausschlagen, dann voll in die andere richtung und dann auf 0.

geht auch, aber nur selten. manchmal gibts ganz seltsame pulse und der servo zuckt nur

wenn ich am servo drehe, verändert sich das signal auch... 8-[ #

ich werd aus dieser servoansteuerung nicht schlau... woran liegt das, dass es manchmal geht und manchmal nicht?

uwegw
05.03.2005, 18:38
moment... du willst nen servo mit nem normalen pwm ansteuern?
servos haben aber ne spezielle impulsform, damit man über einen einzigen kanal in beide richtungen drehen kann!
die einzelnen impuilse folgen immer mit 20ms abstand aufeinander und sind verschieden lang je nach gewünschter ricvhtung und ausschlagweite.
1ms sind zb ganz links, 1,5ms ist neutralstellung, und 2ms ist ganz rechts...

für die meisten programmersprachen findet man dafür schon fertige routinen...

Goblin
05.03.2005, 18:39
oh... na dann guck ich mal...

Klaus_0168
05.03.2005, 18:40
Hi Goblin,
erste Frage : mit welchem Programm programmierst Du ? (Bascom?)

Das Servosignal hat folgendes Format:
Alle 20ms wird ein Impuls ausgesendet mit enier Impulsdauer von
1ms für Nullstelllung
1,5ms für Mittelstellung und
2ms für Endlage

Mit den PWM - Verhältnissen von 100 bis 0% liegst Du total daneben.
Falls Du Bascom verwendest, gibt es in dieser Sprache den Befehl 'Config Servo' zum initialisieren von Servoausgängen. Schau einfach mal in der Hilfe nach, da ist es sehr gut beschrieben.

Grüße Klaus

Goblin
05.03.2005, 18:47
klassisches doppelpost, 1:0 für uwegw :)

ich progge mit pic basic pro. aber ich hab gerad im www rausgefunden, dass ich nicht pwm sondern pulseout nehmen muss---

auf der seite steht übigens


Servos are controlled using a system called Pulse Code Modulation (PCM)

PCM? nie gehört... PCM = PWM?

uwegw
05.03.2005, 18:58
PWM ist was man für normale motoren nimmt
PCM dann halt für servos (der "code" ist dass gelichzeitig richtung und ausschalg übertragen werden)

Klaus_0168
05.03.2005, 19:29
Hi uwegw, Einspruch

PWM - Puls Weiten Modulation
PCM - Puls Code Modulation
das war noch richtig.

Die Pulsweitenmodulation besteht aus einem einfachen Impuls. Der Informationsinhalt ist die Pulslänge. Bei der Ansteuerung vom Motoren wird das Verhältnis zwischen Puls - und Pausenzeit zur Steuerung der übertragenen Effektivleistung benutzt.

In der Pulscodemodulation wird in einem Impuls mit fester Impulslänge ein binär codierter Zahlenwert übertragen. Der Informationsinhalt ist beim PCM nicht die Pulslänge, sondern der Zahlenwert.
Pulscodemodulierte Signale lassen sich wegen der festen Impulsbreite nicht ohne Decoderschaltung zur Motoransteuerung verwenden.

Grüße Klaus

uwegw
05.03.2005, 21:35
war auch nur geraten... ;)

Manf
05.03.2005, 23:04
In diesen Fällen ist wikipedia wirklich zu gebrauchen. Es geht nicht sehr in die Tiefe, aber es beschreibt die Begriffe mal wieder erstaunlich gut.
Manfred

http://de.wikipedia.org/wiki/PWM
http://de.wikipedia.org/wiki/Puls-Code-Modulation

Goblin
06.03.2005, 09:25
wikipedia:


(Modellbau-)Servos werden über Pulsweitenmodulation angesprochen

äääärgh!!

naja, aber ich versuchs erstmal mit den tipps von hier (http://www.picbasic.co.uk/support/servo.htm)

harper
07.05.2005, 13:57
Hallo Goblin,

hast Du mittlerweile ein Ergebnis bei der Ansteuerung eines Servos mit PicBasic Pro erarbeitet? Stehe nämlich vor dem gleichen Problem mit nem Pic und der Ansteuerung eines Servos.

Habe es mit dem folgendem Code versucht (PIC 16F84A@12MHz)


DEFINE OSC 12

Loop:
PulseOut PORTB.0, 450 'Impuls 1.5ms
PauseUs 20000 'Frequenz von 50Hz
GoTo Loop

Ich habe bereits die Impulsdauer variiert und die Pause ebenfalls, aber der Motor dreht permanent gegen den linken Anschlag obwohl er eigentlich in die Mittelstellung fahren sollte... :-k

Gruß,
Stefan

hollowman4
07.05.2005, 23:29
PWM ist was man für normale motoren nimmt
PCM dann halt für servos (der "code" ist dass gelichzeitig richtung und ausschalg übertragen werden)
PWM ist das was an den Servo ausgängen rauskommt ;)
PCM und PPM sind die übertragunsarten zwischen sender/empfänger ;)
CodeModulation dafür das es nur geringe Störungen gibt ;) Wär bei nem Servo 1. unnütz 2. woher soll der empfänger wissen ob servo oder regler ? ;) Nene da haste nenFehler drin !
Edit PS: Klaus hats ja schon *fachmänisch* erklärt .. ;) Bloss irgendwie is mein Beitrag verschwunden .. hat ich vor Stunden schon gepostet ... Naja shit happens ...

Manf
08.05.2005, 21:35
die einzelnen impuilse folgen immer mit 20ms abstand aufeinander und sind verschieden lang je nach gewünschter ricvhtung und ausschlagweite.
1ms sind zb ganz links, 1,5ms ist neutralstellung, und 2ms ist ganz rechts...

Das Servosignal hat folgendes Format: Alle 20ms wird ein Impuls ausgesendet mit enier Impulsdauer von 1ms für Nullstelllung 1,5ms für Mittelstellung und 2ms für Endlage

PWM http://de.wikipedia.org/wiki/PWM
PCM http://de.wikipedia.org/wiki/Puls-Code-Modulation
Das wurde ja erstmal richtig erklärt.

Falls es bei den ergänzenden Bemerkungen zu
Servo ausgängen
übertragunsarten zwischen sender/empfänger
woher soll der empfänger wissen ob servo oder regler ?
noch offene Fragen gibt sollten sie präzisiert werden.
Manfred