Armins AVR-Buch - Anschluss_eines_Servo

Zuletzt geändert am 09.12.2023, 17:23:37

Anschluss_eines_Servo


(armin77, 01.01.2013, 20:28:36)

Hier ein Schaltplan und ein Beispielprogramm , wie ein Servo an den AVR angeschlossen wird.
Damit der Servo sauber läuft sollte man einen Quarz mit 8Mhz anschließen oder den internen RC Oszillator
auf 8MHZ einstellen. Weiteres siehe Fusebiteinstellung.
Auch sollte man die Stromversorgungen von Servo und AVR trennen, aber auf den gemeinsamen
GND achten.

Das Servosignal besteht aus 1ms bis 2ms Impulsen die alle 20ms kommen.
Bei Rechtsanschlag beträgt der Impuls 2ms, bei Mittelstellung 1,5ms und bei Linksstellung 1ms.
Die Elektronik im Servo wertet die Impulse aus und macht einen Soll - Ist Vergleich.
Der Motor stellt den Servo dann nach, bis Soll = Istwert.
Dazu ist ein internes Poti verbaut.

Hier ein Bild des Servosignals:

Bild servo123.JPG


Hier die Grundschaltung:

Bild servo.jpg

Hier ein kleines Programmbeispiel:

$regfile = "m8def.dat"
$Crystal=8000000
$hwstack=40
$swstack=16
$framesize=32

Const Links = 90
Const Rechts = 180

Config Servos = 1 , Servo1 = Portb.1 , Reload = 10
Config Portb.1 = Output
Enable Interrupts
Dim A As Byte

Do

For A = Links To Rechts
Servo(1) = A
Waitms 10
Next

Wait 1

For A = Rechts To Links Step -1
Servo(1) = A
Waitms 10
Next

Wait 1

Loop

End

In diesem Beispiel läuft der Servo von Links zum Rechtsanschlag und wieder zurück.
Die Werte für Links und Rechtsanschlag können je nach Servo anders sein.
Da hilft nur ausprobieren.