Bom dia!
Pessoal to com uma dúvida em relação como criar uma rotina de servo motor para o microcontrolador AT89S52, no momento eu sei que tenho que trabalhar com o Timer e utilizarei o MODO 1 com 2 registradores de 8 bits o TH0 E O TL0 utilizando o modo de 16 bits, o calculo de tempo e funcionamento desse registrador eu compreendi. Só que não consigo imaginar como encaixar isso para o servo e não consegui encontrar algo que me auxiliasse nessa dúvida, não quero o código todo mas um help de como desenvolver.
Pois tenho o seguinte projeto simples e existente no mercado, esteira separadora de metais e ametais.
O servo será a pá seletora que no inicio da programação assumirá a posição 0 e se eu acionar o sensor indutivo ele irá mudar para 180.
Essa parte imagino como faço, utilizando a estrutura if/else o maior problema é como configura essa criança, até onde sei devo utilizar o Timer e com ele consigo trabalhar tranquilamente, dai eu preciso de uma luz.
Quem puder ajudar agradeço!!!
Tags:
Vc pode fazer com apenas 1 timer e uma variável para contar.
Aih na rotina de interrupção vc monta o sinal.
Vamos imaginar que a variavel pulso é o contador, largura e' a programação de saida (se maior maior a largura), a saida é seu sinal de saida e máximo é a largura total, o o numero de contagens que dá um ciclo completo.
Na no timer vc faz:
{pulso++; // Incrementa o contador
if (pulso==maximo) {saida =0; pulso=0;} // Se chegou no maximo zera o contador e o sinal.
if (pulso>=largura) saida=1; // Se chegou na largura desejada joga pra 1 o sinal.
}
Posso ter sido meio simplista no exemplo, faltar detalhes, invertido o sinal, etc, mas basicamente é isso.
Pow cara obrigado já me deu uma luz (:
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por