Video: Top 10 IoT(Internet Of Things) Projects Of All Time | 2018 2024
För att skapa rörelse i ditt elektronikprojekt kan du lägga till en mycket användbar enhet, kallad serv o, som låter dig styra mekanisk rörelse med ett BASIC Stamp-program. A servo är en speciell typ av motor som är konstruerad för att rotera till ett visst läge och hålla den positionen tills den beräknas rotera till en annan position. Hobby servos används ofta i radiokontrollerade fordon, men det finns många andra användningsområden för servos.
BASIC Stamp Activity Kit levereras med en servo som du kan använda för att lära dig att skriva program som styr servos. Du kan också köpa servos direkt från Parallax eller från de flesta hobbybutiker.
Det enklaste sättet att styra en servo från en BASIC Stamp-mikrokontroller är att använda kommandot PULSOUT. Detta kommando skickar en puls av vilken längd du anger till en I / O-stift du väljer. Syntaxen för det här kommandot är som följer:
PULSOUT-pin, duration
Du anger varaktigheten i enheter om två mikrosekunder. En mikrosekund är en miljon av en sekund. Det finns tusen mikrosekunder i en millisekund. För att skicka en 1,5 ms puls med PULSOUT-kommandot måste du ange 750 som varaktigheten, så här:
PULSOUT 0, 750
Här skickas en 1,5 ms puls till stift 0.
Här är de PULSOUT-varaktighetsvärden du ska använda för en typisk hobby servo för olika vinklar.
Vinkel | Varaktighet | Vinkel | Varaktighet |
---|---|---|---|
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 | Till exempel, för att flytta servo på stift 0 till 75 °, använd detta kommando: |
PULSOUT 0, 667 | Remember För att hålla sin position behöver en servo en konstant ström av pulser ca 20 ms ifrån varandra. Sålunda finns PULSOUT-kommandon vanligtvis i antingen DO-loopar eller FOR-NEXT-loopar. Till exempel, här är lite kod som håller servo på stift 0 vid 45 ° på obestämd tid: |
DO PULSOUT 0, 500 PAUSE 20 LOOP
Här är ett komplett program som flyttar servot till 45 ° när SW1 (en tryckknapp på stift 14) trycks och 135 ° när SW2 (en tryckknapp på stift 10) trycks in.
"Servo Control Program" Doug Lowe "15 juli 2011" Detta program flyttar en servo till en av två när SW1 trycks in "och returnerar servo till mittläget när SW2 trycks." {$ STAMP BS2} '{ $ PBASIC 2. 5} Servo PIN 0 SW1 PIN 14 SW2 PIN 10 Position VAR Word Position = 500 DO IF SW1 = 1 THEN Position = 500 ENDIF OM SW2 = 1 THEN Position = 1000 ENDIF PULSOUT Servo, Position PAUSE 20 LOOP