Manual
do
Maker
.
com
Demorei a escrever mais artigos sobre Arduino porque para dar continuidade ao controle de motores precisarei de um CI L293D, que é um circuito integrado que faz o papel de ponte H dispensando a criação de um circuito para isso, incluindo o diodo. Assim que conseguir comprá-lo, daremos continuidade no controle de um motor que abre e fecha a porta do drive cd CD/DVD. Procurem por um motor desses em assistências técnicas. Normalmente isso já é lixo eletrônico e você poderá consegui-lo até gratuitamente. Por enquanto, vamos controlando servo-motor com Arduino, que também é bastante divertido.
Estive controlando servo-motor com Arduino esses dias e decidi dividir em duas partes. Nesse, basicamente controlaremos a direção por um potenciômetro. No próximo veremos como automatizar o funcionamento do motor e posteriormente criaremos uma função para movimentar o servo-motor quando necessário, para esquerda ou direita.
Felizmente, já existe uma biblioteca pronta para manipulação de servo-motor que vem no SDK do Arduino. O código para movimentação do servo-motor seria basicamente esse:
#include <Servo.h>
// Criação de um objeto que permitira controlar o servo
Servo servo1;
/* Declaração da variavel para o pino que vai ler o
valor do potenciometro, neste caso é o pino analogico 0 */
int pinopot = 0;
// Declaração da variavel onde vai ser colocado o valor lido do pino analogico 0
int valor;
void setup()
{
// Porta onde ira ser ligado o servo (porta digital)
servo1.attach(8);
}
void loop()
{
// leitura do valor do potenciometro para a variavel valor
valor = analogRead(pinopot);
/* Escala para que o valor do potenciometro possa corresponder a um valor de posiçao no servo.
Isso equivale a 180 graus, contando do comeco ao fim do potenciometro */
valor = map(valor, 0, 1023, 0, 179);
// Gira o servo de acordo com a escala da linha acima
servo1.write(valor);
// Espera de 1 milisegunda para que o servo possa atingir a sua posiçao
delay(1);
}
Confesso que não sei se há um padrão na ordem dos fios para cada tipo de servo. De cores, tenho certeza que muda de marca para marca. Estou utilizando o servo-motor de 5g da RC Timer, que vai de 4.8v a 6v; perfeito para utilizar no Arduino para pequenos projetos. Ele tem um torque de 1kg/cm, o suficiente para fazermos nosso robozinho. Os fios desse servo tem as cores: -Laranja -Vermelho -Marrom
Não tenho os fios das mesmas cores para interligar ao servo, então fiz o seguinte: Marrom - Azul Vermelho - Vermelho Laranja - Branco
Na imagem abaixo, note os fios no potenciômetro sliding.
O potenciômetro pode ser qualquer um de 10k. Na verdade, para simular um volante (pois o servo utilizaremos como controlador de um eixo) seria melhor utilizar um potenciômetro circular analógico.
O resultado pode ser visto nesse simples video.
Recomendo também a leitura desse controle digital dos servo-motor, utilizado no robô, também citado nesse segundo artigo.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.