Projetos Eletrônica: Como programar um Servo em PBASIC
Para criar o movimento em seu projeto de eletrônica, você pode adicionar um dispositivo muito útil, chamada de servO, que lhe permite controlar o movimento mecânico com um programa BASIC Stamp. UMA servo é um tipo especial de motor que é projetado para rodar para uma posição particular e mantenha essa posição até ter permissão para rodar para uma posição diferente. servos passatempo são frequentemente utilizados em veículos rádio-controlados, mas há muitos outros usos para servos.
O Kit Selo atividade básica vem com um servo que você pode usar para aprender a escrever programas que controlam servos. Você também pode comprar diretamente de servos Paralaxe ou na maioria das lojas de hobby.
A maneira mais fácil de controlar um servo a partir de um microcontrolador carimbo básica é a de utilizar o PULSOUT comando. Este comando envia um pulso de qualquer duração você especificar para um O pin de sua escolha I /. A sintaxe deste comando é a seguinte:
PULSOUT pin, duração
Você especifica a duração em unidades de dois microssegundos. Um microssegundo é um milionésimo de segundo. Há mil microssegundos em um milésimo de segundo. Assim, para enviar um impulso de 1,5 ms com o PULSOUT comando, você deve especificar 750 como a duração, como este:
PULSOUT 0750
Aqui, um pulso de 1,5 ms é enviado ao pino 0.
Aqui está o PULSOUT duração valores que você deve usar para um servo passatempo típico de vários ângulos.
Ângulo | Duração | Ângulo | Duração |
---|---|---|---|
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 |
Por exemplo, para mover o servo no pino 0-75 # 176-, use este comando:
PULSOUT 0667
Recordar que a manter a sua posição, um servo precisa de um fluxo constante de impulsos de cerca de 20 ms separadas. Assim, PULSOUT comandos são normalmente contidas em qualquer FAZ ou laços FOR-NEXT laços. Por exemplo, aqui está um pouco de código que mantém o servo no pino 0 a 45 # 176- indefinidamente:
DOPULSOUT 0,500PAUSE 20LOOP
Aqui é um programa completo que move o servo a 45 # 176- quando SW1 (um botão no pino 14) é pressionado e 135 # 176- quando SW2 (um botão no pino 10) é pressionado.
'Programa de Controle Servo' Doug Lowe '15 de julho de 2011' 'Este programa move um servo a um dos dois quando SW1 for pressionado' e retorna o servo para centralizar posição quando SW2 é pressionado. ' {$ SELO 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