Buscar

Atuadores para Arduino flipbook

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ROBÓTICA
Fernando Esquírio Torres
Atuadores para 
projetos Arduino
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Caracterizar o funcionamento dos motores DC.
 � Identificar circuitos para acionamentos dos motores utilizados em 
projetos com Arduino.
 � Analisar as aplicações de motores DC utilizando Arduino.
Introdução
Os motores de corrente contínua (motor DC) são utilizados, geralmente, 
em robôs móveis no seu sistema de locomoção, pois seu baixo custo e 
grande versatilidade no controle de velocidade garantem sua navegação 
dentro de um ambiente de trabalho (PETRUZELLA, 2013). Você pode 
encontrar esse tipo de motor em diversos equipamentos, como, por 
exemplo, dispositivos domésticos (leitor de DVD ou Blu-ray) e brinquedos.
Neste capítulo, você vai conhecer o princípio de funcionamento 
geral dos motores DC. Você vai ver as principais características técnicas 
desses motores e identificar os circuitos necessários para o acionamento e 
interfaceamento desse tipo de motor com a plataforma microcontrolada 
Arduino.
Funcionamento de um motor DC
De acordo com Petruzella (2013), os motores de corrente contínua, tam-
bém chamados de motores DC, são um tipo de motor energizado com uma 
corrente contínua, que pode ser proveniente de pilhas/baterias ou de uma 
fonte de alimentação CC (como, por exemplo, carregadores de celular, fonte 
chaveada ou comutada). Esse tipo de motor é recomendado para aplicações 
que exigem torque preciso e acionamento de velocidade, como guindastes, 
correias transportadoras, elevadores, entre outras. Segundo Monk (2014), os 
motores DC podem ser classificados quanto a sua comutação em escovados 
ou brushless (sem escovas).
Segundo Petruzella (2013), o motor DC tem dois terminais que, ao serem 
energizados por uma bateria ou uma fonte de alimentação, produzem um 
campo magnético gerado pela corrente que percorre por esses terminais. Se 
você ligar os terminais do motor nos polos da bateria, como mostrado na 
Figura 1, o motor vai girar no sentido anti-horário (você se lembra da regra 
da mão direita, que aprendeu nas aulas de Física?). Se você inverter a ligação 
dos terminais do motor com os polos da bateria, o motor irá girar no sentido 
contrário.
Figura 1. Terminais do motor DC energizados por uma bateria.
Fonte: Fouad A. Saad/Shutterstock.com.
Atuadores para projetos Arduino2
De acordo com o princípio de funcionamento dos motores DC, a rotação acontece por 
causa do campo magnético criado pela corrente gerada pela ligação de uma bateria 
ou de uma fonte de alimentação de corrente contínua (CC). O sentido de rotação vai 
depender da polarização dos terminais, que provocam uma mudança no sentido do 
campo magnético gerado. A velocidade dos motores DC é controlada variando a 
tensão aplicada nos seus terminais.
Você pode saber mais sobre o funcionamento de motores DC no vídeo disponível 
no link a seguir, do canal Learn Engineering, que é um projeto criado para melhorar a 
qualidade da educação voltada para engenharia. Para entender a operação e construção 
de motores comerciais, assista ao vídeo.
https://goo.gl/4YGjVc
Stevan Junior (2015) destaca a importância de identificar as especificações 
técnicas/elétricas do motor DC que você está usando ao trabalhar com esse 
dispositivo, pois essas características serão úteis para um melhor aprovei-
tamento e utilização do motor. As especificações técnicas importantes são: 
 � tensão de operação; 
 � velocidade de rotação; 
 � corrente do motor.
Um motor DC comumente utilizado por hobbista e estudantes em seus 
projetos é o modelo RF-300ca-09550 (Figura 2). Esse motor é fácil de comprar 
no mercado, pois é utilizando em DVD-Rom e/ou Play Station para rotacionar 
o CD/DVD.
3Atuadores para projetos Arduino
Figura 2. Motor DC utilizado em DVD-Rom e 
Play Station.
Fonte: Adaptada de Mabuchi Motor ([201-?]).
O Quadro 1 mostra as principais características do motor RF-300ca-09550.
Fonte: Adaptado de Mabuchi Motor ([201-?]).
Tensão Sem carga
Na máxima 
eficiência
Travado
Faixa 
de ope-
ração
Nomi-
nal
Veloci-
dade
Cor-
rente
Veloci-
dade
Cor-
rente
Corrente
rpm A rpm A A
1 – 6V 3V 2700 0.012 2100 0.042 0.15
Quadro 1. Especificações técnicas do motor RF-300ca-09550
Perceba, no Quadro 1, que a primeira especificação técnica é a faixa de 
operação da tensão do motor, que, de acordo com Margolis (2012), representa 
os valores mínimos e máximos que você pode alimentar o motor (nesse caso 
de 1 a 6V). Já a tensão nominal (3V) é o valor que seu motor precisa para 
funcionar corretamente. 
Atuadores para projetos Arduino4
A segunda especificação técnica é a velocidade de rotação, que é medida 
em rpm (rotações por minuto). Ela representa a quantidade de voltas que o motor 
dá por unidade de tempo, neste caso por minuto. Assim você tem 2700 rpm, 
quando o motor está sem carga, e 2100 rpm na máxima eficiência. 
Por fim, a terceira especificação técnica é a corrente necessária para 
rotacionar o motor. Neste caso, você tem 12 mA quando o motor está sem 
carga, 42 mA na eficiência máxima e 150 mA com o motor travado. Existe 
também a corrente de pico, que é a corrente necessária para iniciar o movi-
mento do motor, ou seja, tirar o motor da inércia. Ela normalmente tem um 
valor próximo da corrente com o motor travado (+/- 150 mA).
Veja mais sobre as especificações técnicas desse motor e de outros motores semelhantes 
no seu datasheet, que pode ser acessado no link a seguir.
https://goo.gl/9kigwA
Circuitos para acionamentos de motores DC 
usando o Arduino
Segundo Culkin (2018), para controlar um motor DC é necessário correntes 
mais altas do que as fornecidas pelos microcontroladores, pois microcontrola-
dores têm limitação de corrente nos pinos de saída. De acordo com McRoberts 
(2011) e Banzi e Shiloh (2015), o Arduino fornece uma corrente de saída nos 
seus pinos de 40 mA. Esse valor não é suficiente para rotacionar o motor DC 
na sua máxima eficiência e muito menos para iniciar o movimento de rotação 
(sair da inércia) do motor DC. Por isso, é necessário um circuito de acionamento 
para fazer a interface entre o motor e o Arduino, permitindo movimentá-lo e 
controlar sua velocidade.
Sendo assim, você precisa conhecer alguns dos circuitos existentes para o 
acionamento de motores utilizando a plataforma microcontrolada Arduino. A 
seguir, serão apresentados dois circuitos para fazer a interface entre motores 
DC e o Arduino, de forma a acioná-los.
5Atuadores para projetos Arduino
Circuito de acionamento com transistor
Segundo Monk (2014), o circuito de acionamento de motores DC mais simples 
para você montar, utilizando a plataforma Arduino, é composto de um tran-
sistor, um resistor e um diodo. Nesse circuito, que você pode ver na Figura 3, 
o transistor funciona como uma chave de liga e desliga e permite controlar o 
motor utilizando apenas um pino de saída digital do Arduino.
Figura 3. Circuito de acionamento do motor com transistor.
Fonte: Adaptada de Monk (2014, p. 137).
GND
D11 R1
D1 M
b
e
c
T1
12V CC
Fonte de
alimentação
GND
12V Vin Vin
270 V
Arduino
270 Ω
A fonte de alimentação pode ser pilhas/baterias ou uma fonte de corrente 
contínua, desde que forneçam tensão e corrente suficientes para o funcio-
namento do circuito e controle do motor. De acordo com Culkin (2018), o 
transistor do tipo NPN é utilizado como uma chave/interruptor de sinal elétrico 
e seus três pinos são: 
 � emissor (e); 
 � base (b);
 � coletor (c). 
Atuadores para projetos Arduino6
O pino do emissor está ligado ao GND, a base está ligada ao pino 11 do 
Arduino em série com um resistor e o pino coletor está ligado à alimentação 
5V em série com o diodo e o motor. 
Veja na Figura 4 o circuito montado no protoboard. Nele foi utilizado o 
transistor BC639, um resistor de 270Ω, um diodo 1N4007, um motor DC, 
um Arduino UNO e cabos para conexão. Se você for montar o seu circuito, é 
importante prestar a atenção na posição do transistor:certifique-se de que a 
parte reta fique virada para você.
Figura 4. Circuito de acionamento do motor com o transistor 
NPN BC639, resistor de 270Ω e diodo 1N4007.
7Atuadores para projetos Arduino
Durante a montagem do circuito, certifique-se de que a alimentação está desligada, 
pois, caso esteja ligada, isso pode causar danos ou até queimar os componentes 
utilizados.
O código do sketch para o funcionamento do circuito é relativamente sim-
ples — veja um exemplo na Figura 5. Conforme descrito por Banzi e Shiloh 
(2015), o passo necessário para construir o código para acionar o circuito 
da Figura 3 é, basicamente, configurar o pino 11 como saída digital — isso 
permite o firmware “escrever” níveis de tensão (Alto/High ou Baixo/Low) no 
pino. Desse modo, para ligar o motor, basta você colocar um nível de tensão 
alto (5V, HIGH no Arduino) no pino de saída e para desligar o motor um nível 
de tensão baixo (0V, LOW no Arduino).
No código mostrado na Figura 5, a diretiva #define (#define MOTOR 11) 
estipula um “apelido” para representar o pino 11 do Arduino. Essa é uma boa 
técnica de programação que deixa mais claro, organiza e facilita a manutenção 
do programa. De acordo com Evans, Noble e Hochenbaum (2013), o comando 
#define cria uma macro (apelido) que está associada a um valor, uma sequência 
de caracteres ou um comando. 
Na função setup(), o comando pinMode(MOTOR, OUTPUT), na linha 13, 
configura o pino 11 como saída digital. No loop principal, o comando 
digitalWrite(MOTOR, HIGH) liga o motor DC na sua máxima eficiência, 
pois esse comando coloca um nível de tensão alto (5V) no pino de saída digital, 
e ele fica ligado por 2 segundos (2000 milissegundos) devido ao comando de 
espera ocupada delay(2000). Por último, o comando digitalWrite(MOTOR, 
LOW) desliga o motor, pois esse comando coloca um nível de tensão baixo 
(0V) no pino e ele fica desligado por 500 milissegundos devido ao comando 
delay(500). Essa lógica principal fica executando em loop até você desligar 
o Arduino (McROBERTS, 2011).
Esse primeiro circuito de acionamento tem a desvantagem de fazer o motor 
girar apenas em um sentido, que vai depender da conexão dos terminais no 
protoboard e de como você alimenta os terminais do motor. Mesmo assim, 
esse circuito é importante para entendermos o funcionamento e o controle de 
um motor DC utilizando o Arduino, e pode ser aplicado em um projeto de um 
robô móvel que anda somente para frente, por exemplo, assim o motor tem 
que girar apenas em um sentido.
Atuadores para projetos Arduino8
Figura 5. Código para o acionamento do motor DC com transistor.
Circuito de acionamento com ponte H
Quando você quiser mudar o sentido de rotação, deverá utilizar uma ponte H 
(Figura 6), que, segundo Monk (2014), é um circuito eletrônico que possibilita 
controlar o sentido de rotação do motor DC, além de fornecer a tensão e a 
corrente necessárias para o funcionamento do motor. Essencialmente, a ponte 
H é um conjunto de 4 chaves (transistores) eletrônicas(os) operadas(os) aos 
pares (Figura 7). Ligando-se S1 e S4 simultaneamente, a corrente circulará 
em um sentido pelo motor. Por outro lado, com S2 e S3 ligadas, a corrente 
circulará em sentido oposto, e o giro do motor será no sentido oposto.
9Atuadores para projetos Arduino
Figura 6. Circuito de acionamento ponte H.
Fonte: Adaptada de Monk (2014, p. 138).
+V
–V
S1
S2
S3
S4
A B
M
Figura 7. Circuito de acionamento do motor com a ponte H L298N.
+5Vcc
Arduino 9
8
+12V
+5Vcc
Ponte H
O
U
T 
A
GND
IN1
IN2
OUT1
OUT2
M
Atuadores para projetos Arduino10
Margolis (2012) destaca que existem vários shields ou módulos de ponte 
H para acionar um motor DC com o Arduino. Aqui, você verá a montagem do 
circuito utilizando o módulo ponte H L298N. Esse módulo L298N é chamado 
ponte H dupla, pois pode controlar até dois motores de forma independente. 
O circuito esquemático para acionar um motor DC utilizando a ponte H e o 
Arduino é mostrado na Figura 7. Nessa imagem esquemática, a ponte H é 
alimentada com 5V e GND da placa Arduino; neste caso, serão necessários 
dois pinos de saída digital para controlar o motor (pino 8 e pino 9), ligados 
nos pinos IN1 e IN2 da ponte H, pois o motor DC está ligado nas saídas 
OUT1 e OUT2.
O Quadro 2, a seguir, mostra as conexões do módulo da ponte H L298N 
e algumas sugestões de onde liga-las no Arduino.
Nome da 
porta
Estado Descrição
+12V 
power
- Atenção: alimentação externa (5V a 35V).
Deve ser ligada ao pino de 5V do Arduino.
power 
GND
- Conexão para o GND da fonte de alimentação externa.
Deve ser ligada ao pino GND do Arduino.
+5V 
power
- Atenção: saída de 5V.
ENA Entrada Habilita (1) /Desabilita (0) motor A — 
jumper disponível.
IN1 Entrada Controle de velocidade do motor A.
É um sinal PWM do Arduino.
IN2 Entrada Sentido de giro do motor. É um sinal lógico fornecido 
pelo Arduino: HIGH = horário, LOW = anti-horário.
ENB Entrada Habilita (1) /Desabilita (0) motor B — 
jumper disponível.
IN3 Entrada Controle de velocidade do motor B.
É um sinal PWM do Arduino.
IN4 Entrada Sentido de giro do motor. É um sinal lógico fornecido 
pelo Arduino: HIGH = horário, LOW = anti-horário.
Quadro 2. Especificações técnicas do módulo ponte H L298N
(Continua)
11Atuadores para projetos Arduino
Quadro 2. Especificações técnicas do módulo ponte H L298N
Nome da 
porta
Estado Descrição
OUT A 
(2 pinos)
Saída Ligação do motor A.
OUT A = {OUT1, OUT2}
OUT B 
(2 pinos)
Saída Saída para o motor B.
OUT B = {OUT3, OUT4}
5V enable - Se o jumper estiver conectado no pino 5V_EN, o 
LM7805 irá fornecer 5V para alimentar o CI L298N. 
Caso o jumper seja desconectado do pino, será 
necessário fornecer 5V para o chip L298N.
(Continuação)
Você pode visualizar na Figura 8 o código do Arduino para o acionamento 
do motor DC utilizando o circuito de ponte H. 
No código da Figura 8, as diretivas #define (#define IN1 9 e #define IN2 8) 
estipulam “apelidos” para representar os pinos 9 e 8 do Arduino. Na função 
setup() do código, os comandos pinMode(IN1, OUTPUT) e pinMode(IN2, 
OUTPUT) configuram o pino 9 e 8 como saída digital. No loop principal, os 
comandos digitalWrite(IN1,HIGH) e digitalWrite(IN2,LOW) controlam 
a energização dos terminais do motor DC para girar em um sentido, e o 
motor fica ligado por 5 segundos (5000 milissegundos) devido ao comando 
de espera ocupada delay(5000). Em seguida, o motor é parado devido aos 
comandos digitalWrite(IN1,HIGH) e digitalWrite(IN2,HIGH) por 2 se-
gundos (comando delay(2000)). Então, os comandos digitalWrite(IN1, 
LOW) e digitalWrite(IN2, HIGH) invertem o sentido de rotação do motor 
DC por 5 segundos (delay(5000)). Por fim, o motor para novamente por 
2 segundos. O loop principal é repetido até que você desligue o Arduino 
(McROBERTS, 2011). 
Atuadores para projetos Arduino12
Figura 8. Código para o acionamento do motor DC com a ponte H.
Controle de velocidade de motores DC 
utilizando o Arduino
Como você viu, a velocidade de um motor DC é controlada pelo valor de 
tensão aplicada nos seus terminais. Segundo Monk (2014), quando você está 
trabalhando com microcontroladores, inclusive com o Arduino, é possível variar 
13Atuadores para projetos Arduino
a tensão de um pino de saída por meio do periférico interno responsável pela 
Modulação por Largura de Pulso (PWM, Pulse Width Modulation). 
Evans, Noble e Hochenbaum (2013) descreve o PWM como uma técnica 
usada para obtermos variáveis analógicas por meio da duração de pulsos de 
uma onda quadrada. Essa ideia está ilustrada na Figura 9, na qual é gerada uma 
onda quadrada com frequência constante e a duração dos pulsos é controlada 
pelo ciclo ativo de 0 a 100%.
Figura 9. Modulação por Largura de Pulso (PWM).
Nível de tensão alto 5V
Nível de tensão baixo 0V
Nível de tensão alto 5V
Nível de tensão baixo 0V
Nível de tensão alto 5V
Nível de tensão baixo 0V
Nível de tensão alto 5V
Nível de tensão baixo 0V
Nível de tensão alto 5V
Nível de tensão baixo 0V
Ciclo ativo0%
Ciclo ativo 25%
Ciclo ativo 50%
Ciclo ativo 75%
Ciclo ativo 100%
Tensão média
0V
1,25V
2,5V
3,75V
5V
De acordo com McRoberts (2011), no Arduino, a frequência constante de 
oscilação dos pulsos é, por padrão, de 490 Hz e o periférico PWM possui 8 
bits. Desse modo, o controle do chamado ciclo ativo ou tempo de trabalho 
(duty cycle) acontece discretamente em 256 níveis (28 bits = 256 níveis), sendo 
o nível 0 igual ao ciclo ativo 0% e o nível 255 igual a 100%. 
A função responsável por controlar os valores de PWM é a analogWrite(nível), 
onde nível é o valor entre 0 e 255, correspondente ao ciclo ativo do pulso. O 
Quadro 3 mostra alguns desses valores e seus respectivos percentuais. O 
Arduino UNO tem 6 pinos de PWM, destacados com o símbolo “~” na placa 
de circuito impresso (são eles: 3, 5, 6, 9, 10 e 11).
Atuadores para projetos Arduino14
O código de controle de velocidade do motor DC é mostrado na Figura 10, 
a seguir. Nesse código, você pode ver o uso da função analogWrite com os 
níveis de ciclos ativos mostrados no Quadro 3, mais adiante, para aumentar 
e diminuir a velocidade do motor DC. O circuito utilizado para esse código 
é o mostrado na Figura 3 (circuito simples com transistor).
Figura 10. Código para o controle de velocidade do motor DC.
15Atuadores para projetos Arduino
Ciclo ativo (%) analogWrite()
0 0
25 64
50 128
75 171
100 255
Quadro 3. Ciclo ativo versus valor da função analogWrite
No código mostrado na Figura 10, o comando analogWrite( ) confi-
gura a saída do sinal PWM no pino digital indicado. A sintaxe da função é: 
analogWrite(PINO, VALOR_DA_ESCALA), onde o pino pode ser qualquer um 
dos pinos de PWM disponíveis no Arduino e o valor de escala deve ser valores 
entre 0 e 255 (McROBERTS, 2011). O código da Figura 10 faz o aumento da 
velocidade do motor DC a cada 2 segundos na escala de incremento de 25% 
e depois diminui a velocidade de motor na mesma escala.
BANZI, M.; SHILOH, M. Primeiros passos com o Arduino. 2. ed. São Paulo: Novatec, 2015. 
CULKIN, J. Aprenda eletrônica com Arduino. São Paulo: Novatec, 2018. 
EVANS, M.; NOBLE, J.; HOCHENBAUM, J. Arduino em ação. São Paulo: Novatec, 2013.
MABUCHI MOTOR. RF-300CA. [S. l.], [201-?]. Disponível em: http://www.edutek.ltd.uk/
Binaries/Datasheets/Misc/SolarMotor.pdf. Acesso em: 24 mar. 2019.
MARGOLIS, M. Make an Arduino-controlled robot: (make: projects). Sebastopol CA (EUA): 
Maker Media, Inc, 2012.
McROBERTS, M. Arduino básico. São Paulo: Novatec, 2011.
MONK, S. 30 projetos com Arduino. Porto Alegre: Bookman, 2014. (Série Tekne).
PETRUZELLA, F. D. Motores elétricos e acionamentos. Porto Alegre: Bookman, 2013. 
(Série Tekne).
Atuadores para projetos Arduino16
STEVAN JUNIOR, S. L. Automação e instrumentação industrial com Arduino: teoria e 
projetos. São Paulo: Saraiva, 2015. 
Leituras recomendadas
ARDUINO. AnalogWrite(). [S. l.], 2019b. Disponível em: https://www.arduino.cc/reference/
pt/language/functions/analog-io/analogwrite/. Acesso em: 24 mar. 2019.
ARDUINO. DigitalWrite(). [S. l.], 2019b. Disponível em: https https://www.arduino.cc/
reference/pt/language/functions/digital-io/digitalwrite/. Acesso em: 24 mar. 2019.
ARDUINO. PinMode(). [S. l.], 2019a. Disponível em: https://www.arduino.cc/reference/
pt/language/functions/digital-io/pinmode/. Acesso em: 24 mar. 2019.
17Atuadores para projetos Arduino

Outros materiais