Como controlar o servo motor sem utilizar recurso como o arduino?

Exibições: 1262

Responder esta

Respostas a este tópico

Boa noite Douglas, existem diversas maneiras de se controlar um servo através do Arduino. Vou inserir um exemplo ok.

Este exemplo temos o controle através de um potenciômetro. 

Ai vai o código:

#include "Servo.h" //incluindo biblioteca para controle do servomotor

Servo servoMotorObj; //Criando um objeto da classe Servo

int const potenciometroPin = 0; //pino analógico onde o potenciômetro está conectado
int const servoMotorPin = 3; //pino digital associado ao controle do servomotor
int valPotenciometro; //variável usada para armazenar o valor lido no potenciômetro

void setup() {
servoMotorObj.attach(servoMotorPin); //associando o pino digital ao objeto da classe Servo
}

void loop()
{
valPotenciometro = analogRead(potenciometroPin); //lendo o valor do potenciômetro (intervalo entre 0 e 1023)
valPotenciometro = map(valPotenciometro, 0, 1023, 0, 180); //mapeando o valor para a escala do servo (entre 0 e 180)
servoMotorObj.write(valPotenciometro); //definindo o valor/posição do servomotor
delay(15);
}

Olá Douglas,

Se entendi direito você quer saber como controlar um servomotor sem usar o arduino, certo?

Um servomotor sempre tem 3 cabos, dois para alimentação e outro para o sinal de controle. Nos terminais de alimentação basta conectar uma fonte de corrente continua com a tensão nominal do seu motor (normalmente 5 ou 12 VDC).

O segredo está no sinal de controle, para controlar o angulo do motor você deve fornecer um sinal PWM (pulse width modulation), é basicamente um trem de pulsos, e variando a largura desses pulsos você controla o angulo do motor. Pode variar de motor pra motor (necessário ver o datasheet) mas a maioria dos servomotores segue o padrão mostrado na imagem abaixo:

Um trem de pulsos com largura total de 20ms.

Se o tempo em nivel alto for de 1,0ms o motor gira a -90º.

Se for 1,5ms ele fica a 0º (posição central).

Se for de 2,0ms o motor gira a +90º.

Se for um valor intermediário o angulo é proporcional...

Esse tipo de sinal (PWM) pode ser gerado com equipamentos de laboratorio (gerador de sinais) ou com a maioria dos microcontroladores existentes por aí, inclusive o arduino que já tem bibliotecas especificas para facilitar o trabalho com servomotores, como o Jose Antonio mostrou. Como gerar esse sinal vai depender muito do microcontrolador que você está usando.

Espero ter ajudado um pouco, qualquer dúvida estamos aí!

Abraço,

Ops me desculpem entendi ao contrário.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço