Dúvida sobre servomotor.

Olá, pessoal! Sou novo no fórum, não sei se já tem um tópico para este assunto, se já existe me desculpem por postar por aqui. Mas vamos lá.
Eu sou novo em pic, tenho um projeto e preciso do controle do servo, estou usando um servo Motorsat (creio ser um servo de antena), sei que o servo tem pulso mínimo de 1ms e máximo de 2ms, então só pra testar, fiz esse código:
Então, no proteus eu fiz uma simulação, e ele só pára em 90º:
Então, o que eu estou fazendo de errado? O código que tá errado? Tá faltando alguma coisa? Ou só no proteus que acontece isso e na realidade dá certo? ^^
Alguém pode me ajudar?
Grato!
Eu sou novo em pic, tenho um projeto e preciso do controle do servo, estou usando um servo Motorsat (creio ser um servo de antena), sei que o servo tem pulso mínimo de 1ms e máximo de 2ms, então só pra testar, fiz esse código:
- Código: Selecionar todos
#include <16f84A.h>
#fuses XT,NOWDT,NOPROTECT,PUT
#use delay(clock=4000000)
main ()
{
while (TRUE)
{
output_high(pin_b1); //Pulso
delay_ms(1); //de
output_low(pin_b1); //1 ms
delay_ms(100); //Uma pausa de 100 ms só pra eu ver o que acontece
output_high(pin_b1); //Pulso
delay_ms(1.5); //de
output_low(pin_b1); //1.5 ms
delay_ms(100); //Uma pausa de 100 ms só pra eu ver o que acontece
output_high(pin_b1); //Pulso
delay_ms(2); //de
output_low(pin_b1); //2 ms
delay_ms(100); //Uma pausa de 100 ms só pra eu ver o que acontece
}
}
Então, no proteus eu fiz uma simulação, e ele só pára em 90º:
Então, o que eu estou fazendo de errado? O código que tá errado? Tá faltando alguma coisa? Ou só no proteus que acontece isso e na realidade dá certo? ^^
Alguém pode me ajudar?
Grato!