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!