Proyectos electrónicos: cómo programar un servo en PBASIC
Para crear el movimiento en su proyecto de electrónica, se puede añadir un dispositivo muy útil, llamaste servo, que le permite controlar el movimiento mecánico con un programa BASIC Stamp. LA servo es un tipo especial de motor que está diseñado para girar a una posición particular, y mantenga esa posición hasta que se le para girar a una posición diferente. Servos Hobby se utilizan con frecuencia en los vehículos controlados por radio, pero hay muchos otros usos para servos.
El Kit de sello actividad básica viene con un servo que puede utilizar para aprender a escribir programas que controlan los servos. También puede comprar servos directamente de Parallax o de la mayoría de tiendas de hobby.
La forma más fácil de controlar un servo de un microcontrolador BASIC Stamp es utilizar el PULSOUT comandos. Este comando envía un pulso de cualquier duración que especifique a un pin de E / S de su elección. La sintaxis de este comando es la siguiente:
Pin PULSOUT, duración
Se especifica la duración en unidades de dos microsegundos. Un microsegundo es una millonésima de segundo. Hay mil microsegundos en un milisegundo. Por lo tanto, para enviar un pulso de 1,5 ms con el PULSOUT comando, debe especificar 750 como la duración, así:
PULSOUT 0750
Aquí, un pulso de 1,5 ms se envía al pin 0.
Aquí están los PULSOUT duración valora usted debe utilizar para una típica servo hobby para varios ángulos.
Ángulo | Duración | Ángulo | Duración |
---|---|---|---|
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 |
sesenta y cinco | 611 | 160 | 1139 |
70 | 639 | 165 | 1167 |
75 | 667 | 170 | 1194 |
80 | 694 | 175 | 1222 |
85 | 722 | 180 | 1250 |
90 | 750 |
Por ejemplo, para mover el servo en el pin 0 a 75 # 176-, utilice este comando:
PULSOUT 0667
Recuerde que para mantener su posición, un servo necesita un flujo constante de impulsos de aproximadamente 20 ms de diferencia. Por lo tanto, PULSOUT comandos son usualmente contenidos en cualquiera HACER bucles o PARA EL SIGUIENTE bucles. Por ejemplo, aquí hay un poco de código que mantiene el servo en el pin 0 a 45 # 176- indefinidamente:
DOPULSOUT 0,500PAUSE 20LOOP
Aquí está completo programa que mueve el servo 45 # 176- cuando se pulsa SW1 (un pulsador en el pin 14) y 135 # 176- cuando SW2 (un pulsador en el pin 10) es presionado.
'Programa de Control Servo' Doug Lowe 15 de julio 2011 '' Este programa mueve un servo a una de dos, cuando se pulsa SW1 'y devuelve el servo a la posición central cuando se presiona SW2. {$ 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