Intermediário - Projeto 06

Controle de velocidade e sentido de rotação de um motor DC

Objetivo

Neste tutorial vamos mostrar como criar um circuito para controlar a velocidade e o sentido de rotação de um pequeno motor CC (motor de corrente contínua) com Arduino. O acionamento, velocidade e  sentido de rotação do motor será controlado através do circuito integrado L293D (ponte H) junto com o Arduino. Utilizaremos um potenciômetro para controlar a velocidade através do sinal PWM (Pulse Width Modulation) gerado pelo Arduino. Leia também: I05 - Controlando um motor DC com Arduino, transistor e potenciômetro

Motores CC (DC motor): De forma geral, os motores CC, de corrente contínua, são dispositivos que convertem energia elétrica em energia mecânica, gerando uma rotação no seu eixo. Este tutorial deve ser utilizado apenas para motores que consomem menos que 1A quando alimentados por uma tensão de 5 a 9V. No nosso projeto, vamos utilizar um motor de corrente contínua de 130mA para uma tensão de 5V com potência e rendimento máximo.

ATENÇÃO:

a) Nunca ligue o motor CC diretamente no Arduino, pois poderá danificar irreversivelmente o seu microcontrolador. Os pinos digitais do Arduino oferecem no máximo 40mA e um motor CC, mesmo que pequeno, consome muito mais que isto. Portanto, para controlar um motor CC é necessário a utilização de correntes mais altas que as do Arduino e por isso você deverá utilizar transistores ou circuitos chamados de Ponte H (ver wikipedia) como os circuitos integrados controladores de motores L293D ou SN754410. Esses componentes irão garantir correntes satisfatórias para operar o motor em vazio ou em plena carga.

b) Neste projeto escolhemos a utilização do CI L293D que além de ser bastante popular é uma ponte H dupla, onde podemos controlar até 2 motores independentemente. Veja abaixo algumas características do componente:

. 600mA por canal;
. 1.2A de corrente de pico por canal;
. Pino de Enable (Habilitação do canal);
. Proteção contra sobreaquecimento;
. Diodos de recuperação reversa internos;
. Tensão de alimentação de até 36V;
. Potência máxima: 4W;
. Pode controlar até 2 (dois) motores de corrente contínua comum;
. Pode controlar 1 (um) motor de passo de 4 fases.

b) Por questões de segurança, é altamente recomendável que se utilize uma fonte externa para alimentar o motor. Placas de Arduino, além de caras, são susceptíveis quando conectadas a dispositivos de correntes elevadas, como os motores de corrente contínua. Além disso, o motor utilizado poderá exigir tensões e correntes acima do que o Arduino pode fornecer. Lembre-se que o Arduino possui um regulador de tensão para 5V ou 3,3V.

b1. A fonte de alimentação externa deverá ter tensão e corrente suficientes para acionar e controlar o motor CC utilizado. Para evitar a queima do motor, não utilize fonte externa com tensões muito superiores à tensão de operação do motor. As características do motor devem ser obtidas no datasheet do componente.

b2. No nosso projeto, dividimos o circuito em 2 partes. A primeira parte é alimentada diretamente pelo Arduino (5V) que inclui o potenciômetro, leds e os botões de controle. A segunda parte é alimentada por um fonte ajustável de 5V com corrente máxima de 700mA que inclui o motor de corrente contínua e a ponte H L293D.

b3. É importante lembrar que a placa do Arduino deverá ser alimentada diretamente pela USB de um computador, baterias (9 ou 12V) ou por uma fonte chaveada de 9V ou 12V (plug P4), por exemplo.

c) Embora o CI L293D  possua proteção contra sobre aquecimento não é aconselhável tocar no circuito interno quando ligado. Portanto, não toque no CI L293D quando ligado para não se queimar.

d) Como o L293D já possui seus próprios diodos internos, não há necessidade incluirmos mais diodos de proteção para o Arduino. Portanto, as correntes parasitas geradas pela inércia do motor quando a alimentação é removida (força eletromotriz inversa) serão bloqueadas pelos diodos internos do CI L293D.

e) Preste bem atenção na montagem do circuito antes de ligar na energia elétrica. Qualquer erro poderá causar danos irreversíveis nos componentes e na placa do Arduino.

Aplicação

Para fins didáticos e projetos de automação, robótica e máquinas eletrônicas em geral.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v  
Jumpers Kit cabos ligação macho / macho 1  
Micro Motor DC

Micro Motor de corrente contínua (CC) 6000rpm / 5V

1

– Tensão nominal: 3,0 a 5,0V

- Corrente sem carga: 90mA

- Corrente em plena carga: 130mA

- Rotação sem carga: 6.000 rpm

- Rotação máximo rendimento: 5.800 rpm

- Potência Máxima: 0,35W

(datasheet)

CI L293D L293D - Ponte H Dupla 1

- Tensão de alimentação: 5V

- Tensão alimentação máxima dos drivers: 4.5 a 36V

- Entradas digitais de controle: 6 (3 para cada motor)

- Potência máxima: 4W

- Saídas para controle: 2 (1 para cada motor)

- Corrente de saída máxima: 600mA

- Quantidade de drivers: 2

(datasheet)

Push Button Push button 6X6X5mm 2    
Potenciômetro Potenciômetro 10K 1 Resultado de imagem para potenciômetro

Você poderá experimentar valores diferentes do potenciômetro, entre 1K a 100K.

A tensão resultante do potenciômetro aumenta quando giramos o eixo do componente no sentido do polo negativo para o polo positivo

Led 5mm Led 5mm 3  

3 LEDs alto brilho ou difuso

No projeto utilizamos 1 led verde, 1 led amarelo e 1 led vermelho

Você poderá utilizar também LEDs de 3 mm e as cores que desejar.

Resistor Resistor 150Ω

3

 

3 Resistores de 150Ω ou superiores (leds)

Fonte externa fonte ajustável para protoboard + fonte chaveada de 9V 1

https://www.vidadesilicio.com.br/media/catalog/product/cache/2/thumbnail/450x450/9df78eab33525d08d6e5fb8d27136e95/4/5/450xn_8.jpg

Fonte Chaveada 9V 1A

Utilizamos no projeto uma fonte ajustável (5V) para protoboard alimentada por uma fonte chaveada de 9V (1A)

Dados da fonte ajustável para protoboard:

Tensão de entrada: 6,5 a 12 VDC
– Tensão de saída: 3,3v e 5v, sendo uma em USB
– Corrente máxima de saída: 700mA

 

Se você não tiver uma fonte ajustável, utilize um suporte com 4 pilhas AA ou 4 pilhas AAA ou uma bateria 9V como fonte de energia externa

Arduino UNO Arduino UNO R3 1

Você poderá utilizar uma placa Arduino UNO original ou similar

Montagem do Circuito

Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da energia elétrica enquanto você monta o circuito.


Atenção

Como descrevemos no início deste tutorial, dividimos o circuito em 2 partes:

a) a primeira parte é alimentada diretamente pelo Arduino, a partir da porta USB do computador, baterias (9V) ou através de um adaptador AC de 9V a 12V ou de uma fonte chaveada de 9V a 12V.

b) segunda parte deverá ser alimentada por uma fonte externa de 5V independente, como um suporte para 4 pilhas AAA ou AA (6V), fonte chaveada 5V ou fonte ajustável para protoboard 5V. Você poderá utilizar também como fonte externa uma bateria de 9V, que por possuir baixa intensidade de corrente irá funcionar também neste projeto para motores de corrente contínua de até 5V.

Parte do circuito alimentada diretamente pelo Arduino

1. Lembre-se que o LED tem polaridade: O terminal maior tem polaridade positiva e o lado do chanfro tem polaridade negativa.

1.1. Portanto, faça a conexão do Arduino no terminal positivo do led (anodo) e o GND no terminal negativo (catodo).

1.2. Para evitar danos ao led é necessário a inclusão de um resistor no circuito. Como o resistor é um limitador da corrente elétrica, ele poderá estar conectado no anodo (terminal maior) ou no catodo (terminal menor) do led, tanto faz.

2. Determinamos o valor do resistor através da tabela prática: Tabela prática de utilização de leds 3mm e 5mm. Entretanto, o mais correto é sempre verificar o datasheet do fabricante do LED para você ter os exatos valores de tensão e corrente do mesmo - leia Como calcular o resistor adequado para o led.

2.1. Valores mínimos utilizados para nossos projetos: LEDs difusos ou de alto brilho: Vermelho, Laranja e Amarelo: 150 Ω | Led Verde e Azul: 100 Ω

3. Observe que o potenciômetro foi montado como um divisor de tensão, onde utilizamos os 3 terminais do componente. Desta forma, o potenciômetro funciona como um divisor de tensão que pode ser lido pelo IDE do Arduino através do conversor analógico digital (ADC ou DAC em inglês). Girando o eixo do polo negativo (GND) para o polo positivo (Vcc) aumentamos o valor da tensão e portanto aumentamos a velocidade do motor, e ao contrário, diminuiremos portanto a velocidade de rotação do motor.

3.1. O potenciômetro utilizado no projeto é um componente mecânico analógico, e por este fato o terminal "b", veja a imagem acima, deverá estar conectado à uma porta analógica do Arduino. No nosso exemplo, conectamos o potenciômetro na porta analógica A0 do Arduino.

 

3.2. O conversor analógico-digital (frequentemente abreviado por conversor A/D ou ADC) é um dispositivo eletrônico capaz de gerar uma representação digital a partir de uma grandeza analógica, normalmente um sinal representado por um nível de tensão ou intensidade de corrente elétrica. O Arduino UNO (microcontrolador ATmega328) possui um conversor analógico digital interno de 10 bits de resolução (210 = 1024), ou seja, podendo variar seus valores entre 0 e 1023.

4. Monte os botões (push button) sem o resistor, pois através da programação vamos habilitar o resistor pull-up interno do Arduino. Desta forma, quando o botão estiver pressionado, o Arduino retornará "LOW" ou "0". Veja o projeto Projeto 02b - Led apaga com push button pressionado (pull-up interno do Arduino) ou assista o vídeo Arduino: Botão e Resistor de Pull Up Interno