Neste tutorial vamos controlar um servo motor da ARDUINO UNO. Servo motores são usados onde há uma necessidade de movimento ou posição precisa do eixo. Eles não são propostos para aplicações de alta velocidade. Estes são propostos para aplicações de baixa velocidade, torque médio e posição precisa. Esses motores são usados em máquinas de braço robótico, controles de vôo e sistemas de controle.
Os servo motores estão disponíveis em diferentes formas e tamanhos. Um servo motor terá principalmente fios, um é para tensão positiva, outro é para aterramento e o último é para ajuste de posição. O fio VERMELHO está conectado à alimentação, o fio preto está conectado ao aterramento e o fio AMARELO está conectado ao sinal.
Um servo motor é uma combinação de motor DC, sistema de controle de posição e engrenagens. A posição do eixo do motor DC é ajustada pela eletrônica de controle no servo, com base na relação de trabalho do sinal PWM do pino SINAL.
Simplesmente falando, a eletrônica de controle ajusta a posição do eixo controlando o motor DC. Estes dados relativos à posição do eixo são enviados através do pino SIGNAL. Os dados de posição para o controle devem ser enviados na forma de sinal PWM através do pino de sinal do servo motor.
A frequência do sinal PWM (modulado por largura de pulso) pode variar com base no tipo de servo motor. O importante aqui é a DUTY RATIO do sinal PWM. Com base nesta razão de dever, a eletrônica de controle ajusta o eixo.
Conforme mostrado na figura abaixo, para que o eixo seja movido para 9o, a RAÇÃO PARA LIGAR deve ser 1 / 18.ie. 1ms de tempo ON e 17ms de tempo OFF em um sinal de 18ms.
Para que o eixo seja movido para 12o clock, o tempo ON do sinal deve ser 1,5 ms e o tempo OFF deve ser 16,5 ms. Esta relação é decodificada pelo sistema de controle no servo e ele ajusta a posição com base nele. Este PWM aqui é gerado usando ARDUINO UNO.
Componentes de Circuito
Hardware: ARDUINO UNO, fonte de alimentação (5v), capacitor 100uF, botões (duas peças), resistor de 1KΩ (duas peças), servo motor (que precisava ser testado).
Software: IDE arduino (Arduino noturno).
Diagrama e explicação do circuito do servo motor Arduino
Em casos normais, precisamos ir aos registros do controlador para ajustar a frequência e obter a relação de trabalho necessária para o controle preciso da posição do servo, no ARDUINO não precisamos fazer essas coisas.
No ARDUINO, temos bibliotecas predefinidas, que definirão as frequências e as taxas de serviço de acordo com a chamada ou inclusão do arquivo de cabeçalho. No ARDUINO, basta indicar a posição do servo necessária e o PWM é automaticamente ajustado pelo UNO.
As coisas que precisamos fazer para obter a posição precisa do servo são:
|
Primeiro, precisamos definir a frequência do sinal PWM e para isso devemos chamar “#include
Agora precisamos definir um nome para o servo “Servo sg90sevo”, aqui 'sg90servo' é o nome escolhido, então, enquanto escrevemos para poção, vamos usar esse nome, esse recurso é útil quando temos muitos servos para controlar, podemos controlar até oito servos com isso.
Agora dizemos ao UNO onde o pino de sinal do servo está conectado ou onde ele precisa gerar o sinal PWM. Para fazer isso temos “Sg90.attach (3);”, aqui estamos dizendo ao UNO que conectamos o pino de sinal do servo no PIN3.
Só resta definir a posição, vamos definir a posição do servo usando “Sg90.write (30);”, por este comando o ponteiro do servo se move 30 graus, então é isso. Depois disso, sempre que precisarmos alterar a posição do servo, precisamos chamar o comando ”Sg90.write (needed_position_ angle);”. Neste circuito teremos dois botões um botão aumenta a posição do servo e o outro é para diminuir a posição do servo.
O tutorial de controle do motor servo Arduino é explicado passo a passo do código C fornecido abaixo.