Elektronische Projekte: Wie ein Servo in PBASIC zum Programm
Um Bewegung in Ihrer Elektronik-Projekt erstellen, können Sie ein sehr nützliches Gerät hinzufügen können, eine so genannte servO, mit dem Sie eine mechanische Bewegung mit einem BASIC Stamp-Programm steuern. EIN Servo ist eine besondere Art von Motor, der diese Position in eine bestimmte Position zu drehen und zu halten, bis gesagt drehen zu einer unterschiedlichen Position ausgebildet ist. Hobby Servos in ferngesteuerte Fahrzeuge, aber es gibt viele andere Verwendungen für Servos häufig verwendet.
Die BASIC Stamp Activity Kit kommt mit einem Servo, die Sie verwenden können, um zu lernen, wie man Programme schreiben, die Servos steuern. Sie können auch Servos kaufen direkt von Parallaxe oder von den meisten Hobby-Läden.
Der einfachste Weg, um eine Servo von einem BASIC Stamp-Mikrocontroller zur Steuerung der zu verwenden PULSOUT Befehl. Dieser Befehl sendet einen Impuls von beliebiger Dauer Sie auf ein I / O-Pin Ihrer Wahl angeben. Die Syntax dieses Befehls lautet wie folgt:
PULSOUT Pin, Dauer
Sie geben die Dauer in Einheiten von zwei Mikrosekunden. Eine Mikrosekunde ist eine Millionstel Sekunde. Es gibt eintausend Mikrosekunden in einer Millisekunde. So ein 1,5 ms Impuls mit der schicken PULSOUT Befehl, müssen Sie 750 als die Dauer angeben, wie folgt aus:
PULSOUT 0750
Hier wird ein 1,5 ms Impuls gesendet 0 an Pin.
Hier sind die PULSOUT Dauer Werte, die Sie für eine typische Hobby Servo für verschiedene Winkel verwendet werden soll.
Winkel | Dauer | Winkel | Dauer |
---|---|---|---|
0 | 250 | 95 | 778 |
5 | 278 | 100 | 806 |
10 | 306 | 105 | 833 |
15 | 333 | 110 | 861 |
20 | 361 | 115 | 889 |
25 | 389 | 120 | 917 |
30 | 417 | 125 | 944 |
35 | 444 | 130 | 972 |
40 | 472 | 135 | 1000 |
45 | 500 | 140 | 1028 |
50 | 528 | 145 | 1056 |
55 | 556 | 150 | 1083 |
60 | 583 | 155 | 1111 |
65 | 611 | 160 | 1139 |
70 | 639 | 165 | 1167 |
75 | 667 | 170 | 1194 |
80 | 694 | 175 | 1222 |
85 | 722 | 180 | 1250 |
90 | 750 |
Um zum Beispiel die Servo auf Pin 0 bis 75 # 176-, verwenden Sie diesen Befehl zu bewegen:
PULSOUT 0667
Denken Sie daran, dass seine Position zu halten, muss ein Servo einen konstanten Strom von Impulsen etwa 20 ms auseinander. So, PULSOUT Befehle werden in der Regel enthalten entweder MACHEN Schleifen oder FÜRS NÄCHSTE Schleifen. Zum Beispiel, hier ist ein Stück Code, der die Servo auf Pin 0 bei 45 # hält 176- unbegrenzt:
DOPULSOUT 0,500PAUSE 20LOOP
Hier komplette Programm, das die Servo 45 # bewegt 176- wenn SW1 (ein Taster an Pin 14) gedrückt wird und 135 # 176-, wenn SW2 (ein Taster an Pin 10) gedrückt wird.
"Servo Control Program 'Doug Lowe' 15. Juli 2011 '' Dieses Programm bewegt sich ein Servo mit einem von zwei, wenn SW1 gedrückt wird 'und gibt die Servoposition zu zentrieren, wenn SW2 gedrückt wird.' {$ STAMP BS2} {$ PBASIC 2.5} Servo PIN 0SW1 PIN 14SW2 PIN 10Position VAR WordPosition = 500DOIF SW1 = 1 THENPosition = 500ENDIFIF SW2 = 1 THENPosition = 1000ENDIFPULSOUT Servo, PositionPAUSE 20LOOP