Video: Episode 12 - Servo med micro:bit 2025
For å skape bevegelse i ditt elektronikkprosjekt, kan du legge til en veldig nyttig enhet, kalt en serv o, som lar deg styre mekanisk bevegelse med et BASIC Stamp-program. En servo er en spesiell motortype som er designet for å rotere til en bestemt posisjon og holde den posisjonen til den blir fortalt å rotere til en annen posisjon. Hobby servos brukes ofte i radio-kontrollerte kjøretøy, men det er mange andre bruksområder for servos.
BASIC Stamp Activity Kit leveres med en servo som du kan bruke til å lære å skrive programmer som styrer servos. Du kan også kjøpe servos direkte fra Parallax eller fra de fleste hobbybutikker.
Den enkleste måten å kontrollere en servo fra en BASIC Stamp-mikrokontroller er å bruke kommandoen PULSOUT. Denne kommandoen sender en puls av hvilken som helst varighet du angir til en I / O-pin av ditt valg. Syntaxen til denne kommandoen er som følger:
PULSOUT-pin, varighet
Du angir varigheten i enheter på to mikrosekunder. En mikrosekund er en million av et sekund. Det er tusen mikrosekunder i en millisekund. For å sende en 1,5 ms puls med PULSOUT-kommandoen må du da angi 750 som varigheten, slik:
PULSOUT 0, 750
Her sendes en 1,5 ms puls til pin 0.
Her er PULSOUT-varighetsverdiene du bør bruke til en typisk hobby servo for ulike vinkler.
Vinkel | varighet | Vinkel | varighet |
---|---|---|---|
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 | For eksempel å flytte servo på pinne 0 til 75 °, bruk denne kommandoen: |
PULSOUT 0, 667 | Husk For å holde sin posisjon trenger en servo en konstant strøm av pulser ca 20 ms fra hverandre. Dermed er PULSOUT-kommandoer vanligvis inneholdt i enten DO-looper eller FOR-NEXT-looper. For eksempel, her er litt kode som holder servo på pin 0 ved 45 ° på ubestemt tid: |
DO PULSOUT 0, 500 PAUSE 20 LOOP
Her er komplett program som beveger servo til 45 ° når SW1 (en trykknapp på pin 14) trykkes og 135 ° når SW2 (en trykknapp på tapp 10) trykkes inn.
'Servo Control Program' Doug Lowe '15. juli 2011 "Dette programmet flytter en servo til en av to når SW1 trykkes' og returnerer servo til senterposisjon når SW2 trykkes. '{$ STAMP BS2}' { $ PBASIC 2. 5} Servo PIN 0 SW1 PIN 14 SW2 PIN 10 Posisjon VAR Word Posisjon = 500 DO IF SW1 = 1 THEN Posisjon = 500 ENDIF IF SW2 = 1 THEN Posisjon = 1000 ENDIF PULSOUT Servo, posisjon PAUSE 20 LOOP
