• Welcome to LusoRobótica - Robótica em Português.
 

Atmega8 com servo motor

Started by terran, 03 de August de 2009, 02:15

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

terran

Boas pessoal,

Alguêm sabe que eu já dei montes de cabeçadas e não chego lá de como  conseguir controlar um servo motor com o atmega8?

A ideia é criar um carro telecomandado em que as rodas da frente são controladas por um servo motor. Já vi vários exemplos mas eu uso o programmer's notepad para criar o software e uso o avrdoper como programador do microcontrolador e ele dá sempre erro.

Njay

Bom, tens que concordar que não estás a dar lá muitos detalhes técnicos...

terran

Sim, tens razão, peço desculpa. Já está resolvido...

Tinha o ICR1 configurado para 8Mhz e o "clock" estava a 1 MHz mas já o coloquei a 8 MHz e assim já consigo

TOP = (Clock_Speed / (Prescaler * Output_PWM_Frequency)) - 1

No "Clock_Speed" estava a colocar como referi acima a 8MHz quando deveria ter colocado 1MHz mas resolvi mudar para 8 MHz

A solução é a seguinte:


....

TCCR1A|=(1<<COM1A1)|(1<<WGM11);
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11);
ICR1=20000;
OCR1A = 1500;
....


Para depois alterar a rotação do servo é só alterar o valor de OCR1A entre 1000 e 2000 sendo o valor 1500 a posição central.

Deixo aqui uma página que explica bem o funcionamento do pwm:

http://mil.ufl.edu/~achamber/servoPWMfaq.html

Um abraço e obrigado

zecralos

se eu comprar uma placa arduino normal, consigo depois montar as rodas e isso mais tarde  nele?

metRo_

A placa Arduino não tem qualquer tipo de suporte para rodas, agora se depois podes ligar motores à placa? Sim.

terran

Não conheçoo sistema arduino, eu programo o amtega 8 na sua pureza mas do que eu já li, acho que tem suporte para o servo motor. Programas o servo e ligas as rodas direccionais ao servo.

metRo_

É assim se ele se refere a suporte físico para encaixe dos servos motores nenhum microcontrolador tem :P
Agora se é possível programar de maneira a controlar um servo? Sim, quase todos os microcontroladores o fazem.

terran

sim metRo_, eu estava a falar no suporte das bibliotecas... De não precisares de fazer esta manha toda que eu tive de fazer para ligar o pwm. Bastando como já vi em algures usar este métdo right(50) e ele vira 50% para o lado direito

metRo_

Quote from: terran on 20 de September de 2009, 21:24
sim metRo_, eu estava a falar no suporte das bibliotecas... De não precisares de fazer esta manha toda que eu tive de fazer para ligar o pwm. Bastando como já vi em algures usar este métdo right(50) e ele vira 50% para o lado direito

Sim, isto é possivel ;)