Controle de Velocidade e Sentido da Rotação

Neste projeto iremos usar o módulo P27-Potenciômetro para controlar a velocidade de rotação do eixo do motor de corrente contínua ligado à Ponte-H, enquanto o módulo P4-Swtich será usado para determinar o sentido de rotação e também o desligamento do motor.

Itens necessários:

1 Arduino Uno R3 (ou qualquer outro modelo).
1 Módulo P1 – Ponte-H.
1 Módulo P4 – Switch.
1 Módulo P5 – Extensão.
1 Módulo P27 – Potenciômetro.
1 Motor de Corrente Contínua.
1 Fonte de Alimentação, pilhas ou bateria (com a mesma tensão de operação do motor e desde que respeitados os parâmetros de funcionamento do módulo P1, ou seja, tensão de operação entre 5V e 35V, corrente máxima 2A e potência máxima de 25W).
Fios para conexão.

Sequência de montagem:


Figura 3

Utilizando fios de conexão Macho-Fêmea realize as seguintes conexões (Figura 3):
a. Pino IN-1 do P1 ao pino digital 9 do Arduino.
b. Pino IN-2 do P1 ao pino digital 10 do Arduino.
c. Pino GND do P1 a qualquer pino GND do Arduino.d. Borne (azul) +Vcc do P1 ao polo positivo de uma fonte de alimentação, pilha ou bateria (conforme e tensão de operação do motor).
e. Borne (azul) GND do P1 ao polo negativo de uma fonte de alimentação, pilha ou bateria (conforme e tensão de operação do motor).
f. Ligar os dois bornes (azul), nomeados “Saída para o Motor”, do módulo P1 aos dois terminais de um motor de corrente contínua.
g. Conectar qualquer pino +Vcc do P5 ao pino 5V do Arduino.
h. Conectar qualquer pino GND do P5 a qualquer pino GND do Arduino.
i. Pino Sinal do P27 à entrada analógica A0 do Arduino.
j. Pino +5Vcc do P27 a qualquer pino +5Vcc do P5.
k. Pino GND do P27 a qualquer pino GND do P5.
l. Pino Out do P4 ao pino digital 7 do Arduino.
m. Pino +5Vcc do P4 a qualquer pino +5Vcc do P5.
n. Pino GND do P4 a qualquer pino GND do P5.

 

Código-fonte:
Note no sketch que obtemos, através da leitura da entrada analógica A0 do Arduino, a posição do potenciômetro. Na sequência, utilizamos a função map para definir o valor da velocidade que, por sua vez, será aplicada à porta PWM 9 ou 10 do Arduino, conforme o valor da variável estado. Lembrando que o valor desta variável será determinado pelo pressionamento do botão (módulo P4-Switch).

// Controle de velocidade e sentido de rotação de um motor de
// corrente contínua utilizando uma Ponte-Hconst

const int MOTOR_PINO_1 = 9;
const int MOTOR_PINO_2 = 10;
const int POT = A0;
const int BOTAO = 7;

int velocidade;
int valor;
int anterior = 0;
int estado = 0;

void setup() {
pinMode(MOTOR_PINO_1, OUTPUT);
pinMode(MOTOR_PINO_2, OUTPUT);
pinMode(BOTAO, INPUT);
}
void loop() {
velocidade = map(analogRead(POT), 0, 1023, 0, 255);
valor = digitalRead(BOTAO);
if (valor == HIGH && anterior == LOW) {
estado++;
if (estado == 3)
estado = 0;
}
if (estado == 0) {
// Motor parado
analogWrite(MOTOR_PINO_1, 0);
analogWrite(MOTOR_PINO_2, 0);
}
else if (estado == 1) {
// Sentido de Rotação 1
analogWrite(MOTOR_PINO_1, velocidade);
analogWrite(MOTOR_PINO_2, 0);
}
else if (estado == 2) {
// Sentido de Rotação 2
analogWrite(MOTOR_PINO_1, 0);
analogWrite(MOTOR_PINO_2, velocidade);
}
anterior = valor;
delay (50);
}

 

Autor
Cláudio Luís V. Oliveira
Professor das FATECs de Jundiaí, Bragança Paulista e Itu. Autor dos livros “Arduino Descomplicado” e “Arduino Simples e Divertido”, além de diversos outros títulos na área de informática.

Para mais informações acesse: www.profclaudio.com.br