Tutorial de Programação Arduíno – Teste de Atuadores

Tutorial de Programação Arduíno

O tutorial é composto por várias etapas:
-- Etapa 1: Teste de Atuadores;
-- Etapa 2: Teste de Sensores;
-- Etapa 3: Noções básicas de Arduíno.

Motores

O código em causa é utilizado para fazer rodar os motores que conferem movimento ao robô, neste breve exemplo, são definidos os pinos utilizados no Arduíno que correspondem aos motores, sendo posteriormente definido o comportamento dos pinos, neste caso foram definidos como pinos de saída para envio de informação para os motores. No final é atribuída uma velocidade aos motores.

Código

// Variaveis (valores que podem ser alterados ao longo do programa)

int EnableDir1 = 7; // Input do driver de corrente - Definicao do sentido de rotacao do motor associada ao pino 7
int EnableDir2 = 5; // Input do driver de corrente - Definicao do sentido de rotacao do motor associada ao pino 5
int VelMotDir = 6; // Enabler do motor - Associacao do pino 6 a velocidade atribuida aos motores da direita
int EnableEsq1 = 4; // Input do driver de corrente - Definicao do sentido de rotacao do motor associada ao pino 4
int EnableEsq2 = 2; // Input do driver de corrente - Definicao do sentido de rotacao do motor associada ao pino 2
int VelMotEsq = 3; // Enabler do motor - Associacao do pino 3 a velocidade atribuida aos motores da esquerda

// Void Setup (definicoes dos pinos)

void setup ()
{
pinMode (EnableDir1, OUTPUT);
pinMode (EnableDir2, OUTPUT);
pinMode (VelMotDir, OUTPUT);
pinMode (EnableEsq1, OUTPUT);
pinMode (EnableEsq2, OUTPUT);
pinMode (VelMotEsq, OUTPUT);
}

// Void Loop (programa em si, quais as ordens que o robo deve seguir)

void loop ()
{
analogWrite (VelMotDir, vel); // Velocidade motor direita
analogWrite (VelMotEsq, vel); // Velocidade motor esquerda
digitalWrite (EnableDir1, LOW);
digitalWrite (EnableDir2, HIGH);
digitalWrite (EnableEsq1, HIGH);
digitalWrite (EnableEsq2, LOW);
}

Motor Servo

Neste código o objetivo é fazer rodar o suporte de ultrassons com auxilio do motor servo, para tal, cria-se um objeto que representa o servo de modo a poder controla-lo, coloca-se a variável "pos" a zero que representa a posição onde o motor servo se encontra e define-se o pino onde o motor está conetado.
No final cria-se um ciclo de modo a que sejam repetidas determinadas condições, neste caso, o servo roda 180 graus, uma vez para a direita e outra para a esquerda.

Código

// Bibliotecas (funcoes prefeitas)

#include //Biblioteca de funcoes prefeitas que permitem movimentar o servomotor

// Variaveis (valores que podem ser alterados ao longo do programa)

Servo servomotor; // Objeto que representa o servomotor
int posicao = 90; // Variavel que define a posicao inicial do servomotor

// Void Setup (definicoes dos pinos)

void setup ()
{
servomotor.attach(9); // Associar o servomotor ao pino em que esta conetado, neste caso o pino 9
servomotor.write(posicao); // Colocar o servomotor na posicao inicial
delay(1000);
}

// Void Loop (programa em si, quais as ordens que o robo deve seguir)

void loop ()
{
servomotor.write(160);
delay(500);
servomotor.write(20);
delay(500);
servomotor.write(90);
}

Leave a Reply