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.

image0.jpg

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.

ÂnguloDuraçãoÂnguloDuração
025095778
5278100806
10306105833
15333110861
20361115889
25389120917
30417125944
35444130972
404721351000
455001401028
505281451056
555561501083
605831551111
656111601139
706391651167
756671701194
806941751222
857221801250
90750

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

menu