programar pic 18f2520

Responder
kramled
Curioso
Curioso
Mensagens: 33
Registado: 19 ago 2008, 19:44

programar pic 18f2520

Mensagem por kramled »

Caros colegas,

Estou com um problema em programar a PIC para controlar um servo.
A linguagem que estou a usar é PICBASIC PRO, ao alterar o pulso de envio para o servo, ele roda sempre no mesmo sentido
(ponteiros relogio), ja tentei com cristal interno e externo.
E fica sempre na mesma coisa. O servo esta alterado para rodar 360 graus.

Agradecia a vossa ajuda.
Obrigado :D


Avatar do Utilizador
asena
Velha Guarda
Velha Guarda
Mensagens: 152
Registado: 26 abr 2008, 19:00
Localização: Lundin Links, Scotland
Contacto:

Re: programar pic 18f2520

Mensagem por asena »

Se o servo está alterado para rodar livremente, então tem que se cumprir com o periodo do pulso aplicado ao mesmo.

timings do pulso ::

1.0ms - roda para esquerda

1.5ms - parado

2.0ms - roda para a direita


Provavelmente a função de pulsos que está a usar, dá para ser configurada.
Ou então enviar a duração do pulso quando se chama a função.
kramled
Curioso
Curioso
Mensagens: 33
Registado: 19 ago 2008, 19:44

Re: programar pic 18f2520

Mensagem por kramled »

Obrigado Eng.º,

Mas não sei o que se passa, porque já tentei alterar os pulsos como você disse. E o servo roda sempre no sentido dos ponteiros do relogio.
Vou ver se da para configurar.

Mas obrigado na mesma.
Avatar do Utilizador
asena
Velha Guarda
Velha Guarda
Mensagens: 152
Registado: 26 abr 2008, 19:00
Localização: Lundin Links, Scotland
Contacto:

Re: programar pic 18f2520

Mensagem por asena »

Olá!

provavelmente não lhe estou a dar novidade nenhuma nesta imagem ::
Imagem

Tem acesso a um osciloscópio? ou pode ter? Ajuda bastante, para ver o que está a sair do PIC.

Sem se saber o que o PIC faz exactamente, é mais dificil trabalhar o circuito.


Vá dando novidades!
kramled
Curioso
Curioso
Mensagens: 33
Registado: 19 ago 2008, 19:44

Re: programar pic 18f2520

Mensagem por kramled »

Já me lembrei de ver no osciloscopio a saída, mas o que me deixa curioso é o facto de quando tenho os servos alimentados e toco com o dedo no fio de sinal, eles rodam no senttido anti-clock.
:?

Tenho usado oscilador externo, com cristal de 4Mhz, pq a instrução PULSOUT funciona a essa freq. e mesmo alterando o puslo como você referiu nada!
Eles rodam sempre sentido do clock.
Ja experimentei usar um FOR, que vai alterando o pulso, e, pareceu me que consegui fazer rodar os servos A/Clock.

Mas a ideia aqui é usar os servos num robot, e faze-los rodar continuamente.

Obrigado pela ajuda, e vão dando noticias.
Avatar do Utilizador
asena
Velha Guarda
Velha Guarda
Mensagens: 152
Registado: 26 abr 2008, 19:00
Localização: Lundin Links, Scotland
Contacto:

Re: programar pic 18f2520

Mensagem por asena »

Esse comportamento de alteração de estados, quando se toca com o dedo, é normalmente atribuido a pinos que estão definidos como entradas em vez de saídas.

Pode pôr uma resistência pull-up nessa linha de dados? 10k está bem.

È intrigante.
kramled
Curioso
Curioso
Mensagens: 33
Registado: 19 ago 2008, 19:44

Re: programar pic 18f2520

Mensagem por kramled »

Obrigado pela dica colega.
Vou tentar essa tecnica, a ver se consigo alguma coisa.
Mas o servo roda a/clock mesmo se tiver desligado da PIC, ou seja, agarro no fio e toco com o dedo e ele roda.
O que é intrigante :shock:

Vamos ver como isto corre.
kramled
Curioso
Curioso
Mensagens: 33
Registado: 19 ago 2008, 19:44

Re: programar pic 18f2520

Mensagem por kramled »

Já experimentei este codigo:

cont var byte 'Cria variavel de contador
trisb = 0 'Todas as portas serão saidas

inicio: 'Inicio da rotina
for cont = 0 to 150 'Conta de 0 a 150
pulsout 0,100 'Gira servo no canal 0 no sentido anti horario
pulsout 1,200 'Gira servo no canal 1 no sentido horario
'Como os servos estao de costa um para o outro, cada um tem que girar
'em um sentido para veiculo andar para frente ou para traz
pause 15 'Espera 15uS
next cont 'Volta ao começo
pause 100 'Espera 100uS
for cont = 0 to 120 'Conta de 0 a 120
pulsout 1,200 'Gira apenas um servo para fazer o veiculo rodar
pause 15 'Espera 15uS
next cont 'Volta ao comeco
pause 100 'Espera 100uS
goto inicio 'Volta ao inicio da rotina (para sempre ;-)





E nao sei o que se passa,pq os motores rodam sempre no mesmo sentido.
Alguem que trabalhe em picbasic que dê uma ajuda ok.
Obrigado
Responder

Voltar para “Microcontroladores”