-
Servo Steuerung
Hallo, Ich habe mir gerade ein kleines Programm geschrieben womit ich ein Servo steuern kann wenn ich ein Port auf High setzte. Jetzt ist meine frage wie ich das machen kann das meine Servo nur am Anfang also wenn ich das Bord einschalte eine bestimmte Bewegung macht und denn darauf "wartet" ob ich den Port auf high setzte oder ob der low bleibt. Ich benutze den Servo um bei meinem Roller den Reflektor zu verstellen und möchte beim einschalten sowas wie ein kleinen Funktionstest haben ;) hier ein Video wie es im Moment aussieht.
http://imageshack.us/clip/my-videos/690/k07.mp4/
Gruß Tjark
Programm:
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 32
$framesize = 32
Config Servos = 1 , Servo1 = Porta.0 , Reload = 10
Config Porta.0 = Output
Config Porta.1 = Input
Config Porta.6 = Output
Enable Interrupts
Do
Porta.1 = 1
If Pina.1 = 1 Then
Servo(1) = 180
Else
Servo(1) = 40
End If
Loop
-
Naja wenn du es soweit geschafft hast gebe ich dir mal nur Tips und keine fertige Lösung. Ich denke da hast du am meisten von ;-)
Dein Funktionstest kannst du einfach zwischen "Enable Interrupts" und "Do" schreiben. Jetzt musst du nurnoch die Startposition und die Endposition angeben. Dazwischen brauchst du immer eine Pause (z.b. "waitms 250") damit das Servo auch Zeit hat die Position zu erreichen.
Wenn du nicht klarkommst helfe ich dir natürlich weiter.
Gruß Daniel
-
Du machst einfach vor dem Do die Servobewegung und dann eine If-Abfrage. Den Port ziehst du dann mit einem Pull-down auf 0.
In etwa so:
Config PortX.Y = Input
Enable Interrupts
PortX.Y = 0
Servo(1) = 180
Do
If PortX.Y then
Servo(1) = 40
Else
Wait 100
Loop
Das Else kannst du auch weglassen.
Meinst du sowas in der Art? Du hast in deinem Programm deine Anforderung quasi schon erledigt :)
Befehle die nur beim Einschalten ausgeführt werden sollen schreibst du immer vor der eigentlichen Do - Loop Schleife.
-
ABE?
Code:
...
Enable Interrupts
Servo(1) = 180
Wait 1
Servo(1) = 40
Wait 1
Do
...
-
Ok danke an euch beide. Peinlich hätte ich auch selbst drauf kommen können :) Klappt jetzt.
Gruß Tjark