Forum: Mikrocontroller und Digitale Elektronik Mit Bascom Abfragen in Welscher Position sich ein Servo befindet?


von Stefan B. (blueberlin)


Lesenswert?

Hallo,

es ist ja möglich mit Bascom ein Servo anzusteuern, dies ist ja sogar 
mit relativ wenig Code möglich.


Jetzt frage ich mich, wenn ich das Steuerleitungssignal eines Servos mit 
ein Atmega8 z.b verbinde ob es auch möglich ist abzufragen auf welscher 
Position sich der Servo befindet? Sozusagen soll der Atmega immer 
"mitlesen" auf welsche Position der Servo geschickt worden ist.

Ist das möglich?

Als Steuerung habe ich ein normalen Empfänger für Modelbauautos und als 
Servos normale Analage.


würde mich auf eine antwort freuen :)

von Floh (Gast)


Lesenswert?

Stefan B. schrieb:
> Ist das möglich?

Jop, das Signal ist ja ein Puls-Pausen-Signal, bei der die Pulslänge 
über die Stellung des Servos entscheidet.
Also Eingangspin verbinden und mitsniffen :-)
Am besten wird sowas mit einem Timer-Input-Capture gemacht, einfach mal 
im Datenblatt nachschauen.

von Stefan B. (blueberlin)


Lesenswert?

Danke für deine Antwort


Ich habe das jetzt so verstanden:

Ich Verbinde die Steuerleitung des Servos mit ein INT Port.

Und sobald eine Steigende Flanke erkannt wird, zähle ich wie lange sie 
andauert bis sie wieder fällt.

0,950ms ist Links
1,5ms ist mitte
2,05ms rechts

oder habe ich das falsch verstanden?

http://www.rn-wissen.de/index.php/Servos


eine weitere frage habe ich noch, kann ich mit den atmega direkt an die 
Signalleitung? weil der Servo den ich benutze wird mit ca. 7,2 Volt 
betrieben wenn die akkus voll sind das wäre ja ein bisjen viel für den 
atmega.

von Matthias (Gast)


Lesenswert?

Stefan B. schrieb:
> eine weitere frage habe ich noch, kann ich mit den atmega direkt an die
> Signalleitung? weil der Servo den ich benutze wird mit ca. 7,2 Volt
> betrieben wenn die akkus voll sind das wäre ja ein bisjen viel für den
> atmega.

Nein, bei direktem Anschluß würde ein zu hoher Strom durch die 
Schutzdioden am I/O-Pin fließen. Es reicht aber den Strom durch 
Serienschaltung eines Widerstandes (gut 22k) auf sichere Werte zu 
begrenzen.

von Oliver (Gast)


Lesenswert?

Stefan B. schrieb:
> weil der Servo den ich benutze wird mit ca. 7,2 Volt
> betrieben wenn die akkus voll sind das wäre ja ein bisjen viel für den
> atmega.

Bist du sicher, daß das Signal vom Empfänger 7,2V hat? Miss das mal 
nach, vermutlich sind es 5V.

Oliver

von Floh (Gast)


Lesenswert?

Normalerweise ist das Signal so im Bereich 3-5V.
Allerdings schadet ein Serienwiderstand zum Eingang des uC nicht, wie 
Matthias vorgeschlagen hat.
:-)

von Stefan B. (blueberlin)


Lesenswert?

ob das signal mehr als 5volt sind weiss ich nicht, zumindest wird der 
empfänger mit ca. 7,2 volt betrieben ob der dann die spannung auf 5volt 
runter regelt weiss ich allerdings nicht werde es mal messen.

Der Tip mit den 22k Widerstand werde ich beherzigen.

von Weingut P. (weinbauer)


Lesenswert?

zunächst mal ... welcher und welche schreibt sich ohne "S" dazwischen.

Das Zweite, Du musst auf steigende und fallende Flanke triggern,
also Pinchange Interrupt oder den Int jedes mal umkonfigurieren auf 
falling bzw. rising, weil Du das Verhältnis zwischen High- und Lowphase 
brauchst um die Lage zu berechnen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.