Buscar

Sensores e Interfaceamento

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 18 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 18 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 18 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

AULA 5 
SENSORES, ATUADORES E 
ARMAZENAMENTO 
Prof. Lucas Rafael Filipak 
 
 
2 
TEMA 1 — PROJETO MOTOR CC 
O motor CC pode ser comprado em qualquer loja de componentes 
eletrônicos ou ser retirado de um brinquedo, de um drive de CD de um desktop 
antigo, por exemplo. Na Figura 1, você pode ver um desses motores. 
Figura 1 — Motor CC 
 
Créditos: Blitzstock/Shutterstock. 
Neste projeto, também utilizaremos um sensor de temperatura para que o 
motor ligue ou desligue, dependendo da temperatura do ambiente. 
Com essa simulação, é possível implementar um projeto que liga ou desliga 
um ventilador, por exemplo, dependendo da temperatura externa. Sempre que for 
manusear o Arduino, é importante que ele não esteja ligado a nenhuma fonte de 
energia (USB ou Jack), assim não terá problemas que podem queimá-lo. Para 
esse projeto, serão necessários: 
• Arduino 
• Sensor LM35 
• Protoboard 
• Jumpers 
• Motor CC 
O primeiro passo é fazer a montagem do hardware do projeto. A Figura 2 
representa as ligações necessárias. 
 
 
 
3 
Figura 2 — Representação da montagem do Projeto motor CC 
 
Na Figura 2, vemos que o motor CC é conectado a uma porta digital 
(pino 13), e o sensor de temperatura a uma porta analógica (pino A0). É 
importante ter atenção às portas a que eles foram conectados, pois elas serão 
programadas no software. Então, após a montagem do hardware, é preciso 
programar, isto é, criar o software. 
Figura 3 — Representação do sketch do Projeto motor CC 
 
A variável “temp”, declarada na linha 3, está sendo inicializada com o 
valor 0. A inicialização de uma variável é importante, pois evita o chamado de “lixo 
 
 
4 
de memória”, ou seja, que algum valor seja atribuído para ela automaticamente. 
Então, o pino A0, utilizado para o sensor de temperatura, vai capturar (INPUT) um 
sinal dentro de um range (pegar a temperatura). Como essa temperatura é 
variável dentro de um intervalo, é utilizada uma porta analógica. O motor, 
conectado ao pino digital 13 (OUTPUT), pode apenas ser ligado ou desligado. 
Dentro da função loop(), na linha 13, a variável “temp” recebe o valor que 
foi lido analogicamente no sensor que está plugado na porta analógica A0 
(definida na linha 7). Já sabendo qual é o valor lido pelo sensor (linha 13), na 
linha 14 existe um comando de decisão, que pode ser traduzido como: se o valor 
que foi captado e está armazenado na variável “temp” for maior que 30, então 
ligue o que está conectado à porta digital 13 (o motor), se não (valor armazenado 
na variável “temp” menor ou igual a 30), desligue o que estiver conectado ao 
pino 13. 
A função delay() serve para informar em quanto tempo será repetido o 
processo, sendo feita uma nova medição de temperatura. 
Assim como o sensor de temperatura foi utilizado para ligar ou desligar um 
motor CC pequeno, ele também pode ligar ou desligar qualquer motor CC, 
independentemente do seu tamanho, pois o comando passado pelo Arduino é 
basicamente uma chave que libera ou não a alimentação. 
TEMA 2 — PROJETO MOTOR CC: ALTERANDO A DIREÇÃO 
O motor CC apresenta algumas particularidades, como a possibilidade de 
inverter sua rotação ou controlar a velocidade de rotação. Para inverter a rotação 
de um motor CC, é preciso mudar as fases para que ele funcione para lados 
diferentes, no sentido horário e no anti-horário. 
A inversão de rotação é muito comum nos motores elétricos: os vidros 
elétricos dos carros a utilizam para abrir e fechar, assim como as parafusadeiras, 
que lançam mão dessa propriedade para parafusar e desparafusar. 
O projeto agora consiste em utilizar um potenciômetro1 para inverter a 
rotação de um motor CC. Para isso, serão necessários: 
• Arduino 
• Potenciômetro 
 
1 Um potenciômetro é um tipo especial de resistor de três terminais cuja resistência pode ser 
ajustada por meio mecânico, girando ou deslizando um eixo móvel, formando assim um divisor 
de tensão ajustável (Reis, 2018). 
http://www.bosontreinamentos.com.br/eletronica/curso-de-eletronica/curso-de-eletronica-resistores/
http://www.bosontreinamentos.com.br/eletronica/curso-de-eletronica/curso-de-eletronica-divisores-de-tensao/
http://www.bosontreinamentos.com.br/eletronica/curso-de-eletronica/curso-de-eletronica-divisores-de-tensao/
 
 
5 
• Protoboard 
• Jumpers 
• Motor CC 
O primeiro passo é fazer a montagem do hardware do projeto. A Figura 4 
mostra as ligações necessárias para o projeto. 
Figura 4 — Representação da montagem do Projeto motor CC: alterando a 
direção 
 
Na Figura 4, o motor CC é conectado a duas portas digitais: porta 2, com o 
jumper verde, e porta 3, com o jumper azul. O potenciômetro tem três pinos, os 
quais são conectados à alimentação (jumper vermelho), à porta analógica A0 
(jumper verde) e ao GND (jumper preto). Como o potenciômetro mede valores 
diferentes dentro de uma grandeza, é preciso conectá-lo a uma porta analógica. 
Uma vez montado o hardware, é preciso criar o software. 
 
 
 
6 
Figura 5 — Representação do sketch do Projeto motor CC: alterando a direção 
 
Na linha 3, foi declarada a variável “valor_pot” do tipo float. Nas 
linhas 6 e 7, é informado que as duas portas às quais o motor foi plugado são de 
saída (OUTPUT). Como o valor lido pelo potenciômetro vai ser impresso, a 
comunicação serial foi inicializada. 
A leitura de um potenciômetro varia de 0 até 1.023. Quando o valor lido 
for 0, ele está recebendo 0v de alimentação e, quando o valor lido for 1.023, a 
alimentação é de 5v. 
Voltando à Figura 5, na linha 13, a variável “valor_pot” recebe o valor lido 
pela porta A0 e o multiplica por (10.00 / 1.023). Esse cálculo serve para dividir o 
valor da leitura, em uma escala de 0 a 10. Agora que já é conhecido um valor de 
leitura entre 0 e 10, o programa determina duas condições: 
• Na linha 15, é testado se o valor da variável “valor_pot” é maior ou igual a 0 
e menor ou igual a 5, então é ligada a fase plugada no pino 2 e desligada 
a fase plugada no pino 3, girando no sentido horário. 
 
 
7 
• Na linha 20 é testado se o valor da variável “valor_pot” é maior que 5 e 
menor ou igual a 10, então é desligada a fase plugada no pino 2 e ligada a 
fase plugada no pino 3, girando no sentido anti-horário. 
Na linha 20, é impresso o valor lido e convertido do potenciômetro no serial 
monitor. Note que, nas duas decisões, a condição é composta por duas sentenças 
utilizando o conectivo de adição “e”. Isso significa que, para a condição ser 
verdadeira, as duas sentenças devem ser verdadeiras. 
TEMA 3 — PROJETO MOTOR CC: CONTROLANDO A VELOCIDADE 
Os motores CC permitem o controle de velocidade de rotação. Um exemplo 
prático é uma furadeira, cujo motor gira mais rápido quanto mais o gatilho (botão) 
for pressionado. 
O projeto consiste em utilizar um potenciômetro para regular a velocidade 
de rotação do motor. Quanto maior for o valor lido pelo potenciômetro, maior será 
a rotação. Para esse projeto, será necessário: 
• Arduino 
• Potenciômetro 
• Protoboard 
• Jumpers 
• Motor CC 
• Diodo 
• Transistor TIP120 
O primeiro passo é fazer a montagem do hardware do projeto. A Figura 6 
mostra as ligações necessárias. 
 
 
 
8 
Figura 6 — Representação da montagem do Projeto motor CC: controlando a 
velocidade 
 
Na Figura 6, além do motor e do potenciômetro, foram utilizados outros dois 
componentes: o diodo e o transistor. 
Um diodo é um componente eletrônico que deixa que a corrente elétrica 
passe somente em um sentido, da mesma forma que uma válvula que permite à 
água fluir apenas em um sentido. Observe a Figura 7, que ilustra um diodo. 
Figura 7 — Representação de um diodo 
 
Créditos: Serorion/Shutterstock. 
Uma das funções do diodo é converter a tensão alternada em contínua, 
atuando como um retificador. Já o transistor é um componente eletrônico que 
amplifica pequenos sinais, podendo aindaatuar como uma chave liga/desliga, de 
acordo com seus sinais de entrada. 
 
 
9 
Agora que os dois novos componentes foram apresentados, passaremos 
para a montagem do projeto. Na parte direita da Figura 6, existe um jumper na 
trilha do GND, que fornece o aterramento para o diodo e o transistor. Repare que 
o motor CC é ligado ao transistor, e que o transistor é ligado na porta digital 9. 
Como o projeto é apenas para o controle de velocidade, um pino do motor vai no 
transistor e o outro na alimentação. O potenciômetro que vai regular a velocidade 
do motor está plugado na porta analógica A0. Depois da montagem do hardware, 
é preciso criar o software. 
Figura 8 — Representação do Projeto motor CC: controlando a velocidade 
 
Na linha 4, foi declarada a constante “potenciômetro”, à qual foi atribuído o 
valor 0, simbolizando que o potenciômetro está plugado na porta analógica A0. 
Na linha 7, a constante “tip” foi definida com o valor 9, significando que o transistor 
está plugado no pino digital 9. A variável “valPotenciômetro” foi declarada do tipo 
inteiro e inicializada com o valor 0, na linha 9. 
A constante “tip” é definida como saída (OUTPUT), na linha 12. Dentro da 
execução do programa, na linha 19, a variável “valPotenciômetro” recebe a leitura 
analógica do potenciômetro. Como o transistor trabalha com valores de 0 a 255, 
a leitura do potenciômetro (0 a 1.023) foi dividida por 4. 
A linha 21 é a responsável por mandar a quantidade de energia para a 
porta 9 (tip). A função analogWrite passa dois parâmetros: a constante tip (porta 9) 
 
 
10 
e a variável valPotenciômetro (quantidade de energia). Quanto mais energia, 
maior é a velocidade do motor, e quanto menos energia, menor é a velocidade do 
motor. 
TEMA 4 — PROJETO SERVOMOTOR 
O servomotor é um motor diferente do CC, pois, ao receber um comando, 
o servo gira até o grau que foi determinado, sem ter o giro contínuo (CC). Para a 
utilização com o Arduino, o recomendado é o micro servo. O micro servo possui 
todas as características de funcionamento de um servomotor, mas com tamanho 
reduzido. Observe a Figura 9. 
Figura 9 — Representação de um micro servo 
 
Créditos: Teodor Costachioiu/Shutterstock. 
Pela sua precisão de posicionamento e velocidade, os servos são muito 
utilizados na robótica. Observe a Figura 10, ela mostra um braço robótico que 
utiliza quatro servos para se movimentar. 
 
 
 
11 
Figura 10 — Braço robótico com quatro servos 
 
Fonte: Guia de produção braço robótico hidráulico/SEED Lab/Governo do Estado do Paraná. 
Para o projeto da Figura 10, o servomotor é o mais indicado. Analisando 
somente a garra, quando ela é fechada e segura alguma coisa, não pode mais se 
 
 
12 
abrir, ou seja, a posição do motor não pode ser alterada. Essa é uma característica 
do servomotor. 
Esse projeto consiste, então, na programação de um servomotor sem a 
interferência posterior do usuário. O servo vai executar uma tarefa repetitiva, sem 
nenhum botão ou potenciômetro para alterar seu funcionamento. Esse projeto 
demandará o seguinte: 
• Arduino 
• Jumpers 
• Servomotor 
Primeiro passo faremos a montagem do hardware do projeto. A Figura 11 
mostra quais são as ligações necessárias. 
Figura 11 — Representação da montagem do Projeto servomotor 
 
A conexão do servomotor é feita com três jumpers (dois para alimentação 
e um para receber o sinal de controle, determinando a posição). Na Figura 11, 
vemos que não foi utilizado um protoboard para esse projeto. O primeiro pino foi 
conectado ao GND (jumper preto), o segundo pino, à alimentação (jumper 
vermelho) e o terceiro pino, à porta digital 11 (jumper verde). Após a montagem 
do hardware, é preciso programar. 
 
 
 
13 
Figura 12 — Representação do Projeto servomotor 
 
O servomotor necessita de uma biblioteca específica para o seu 
funcionamento. É uma biblioteca do tipo padrão e, por isso, ela precisa ser 
importada para o sketch. Essa importação foi feita na linha 3 da Figura 12. Os 
servomotores são tratados como objetos; observe que, na linha 5, o servomotor 
recebe o nome de “meu_servo”. A nomeação é importante pois o projeto pode 
utilizar mais de um servomotor. 
O comando attach() é utilizado para determinar em qual porta digital o 
servomotor foi conectado. Repare na linha 10 que a sintaxe é 
“nome_do_servo.attach(porta)”. No nosso exemplo da Figura 12, o servomotor foi 
conectado à porta digital 11. 
Na execução do programa, há um laço de repetição inicializando na 
posição 0, sendo incrementado de 1 em 1 grau até a posição 180 graus. Na 
linha 17, o comando “meu_servo.write(pos)” é o responsável por posicionar o 
servomotor. Observe a sintaxe: “objeto.write(grau)”. No exemplo, o objeto foi 
chamado de “meu_servo” e a variável “pos” determina o grau em que o servomotor 
deve ser posicionado. 
O projeto vai executar um movimento iniciando em 0 grau, aumentando de 
grau em grau até 180 no tempo de 50 ms cada grau. 
 
 
 
14 
TEMA 5 — PROJETO MOTOR DE PASSO 
O motor de passo converte os impulsos elétricos em pequenos movimentos 
mecânicos, sendo necessária uma sequência correta de impulsos elétricos para 
que o eixo do motor possa girar. A maior vantagem desse tipo de motor é a sua 
precisão em um sistema de circuito aberto. Segundo Thomsen (2013), o 
controle de circuito aberto significa que nenhuma informação de 
feedback sobre a posição é necessária. Este tipo de controle elimina a 
necessidade de caros sistemas de detecção, tais como codificadores 
ópticos. Sua posição é conhecida simplesmente através do controle dos 
impulsos de entrada. 
O simulador Tinkercad, que foi utilizado para montar os circuitos, não tem 
o motor de passo como elemento. Por isso esse circuito em específico ficará fora 
do padrão. 
O motor de passo precisa de um driver para funcionar, como vemos na 
Figura 13. 
Figura 13 — Representação de um esquema com motor de passo 
 
Fonte: Simões, 2018. 
O microcontrolador representado na Figura 13 é o Arduino, e o driver é 
responsável pela alimentação do motor. O driver mais utilizado é o módulo 
ULN2003A, que possui uma matriz com sete canais (como se houvesse sete 
transistores TIP120 em um mesmo pacote), suportando até 500 mA por canal. 
Observe a Figura 14. 
 
 
 
15 
Figura 14 — Módulo ULN2003A 
 
Fonte: Simão, 2018 
O módulo ULN2003A tem hardware aberto e, por isso, pode ser encontrado 
em outros modelos, pois são fabricados por empresas diferentes, mas eles 
sempre apresentarão as mesmas ligações. 
Na Figura 14, vemos, na parte superior, a conexão com o Arduino. Nesse 
exemplo, as portas digitais utilizadas são a 8, a 9, a 10 e a 11. O pino GND e o 
+5V são ligados ao GND e à alimentação do Arduino, respectivamente. Os pinos 
COM (alimentação), B1, B2, B3 e B4, são ligados ao motor. Observe a ligação na 
Figura 15. 
 
 
 
16 
Figura 15 — Representação do Projeto com motor de passo 
 
Fonte: Thomsen, 2013. 
A Figura 15 mostra uma visão macro do hardware do projeto. Nela, é 
possível identificar as ligações dos pinos digitais 8, 9, 10 e 11 no Arduino. Repare 
que todos os jumpers são conectados ao módulo ULN2003A. Após a montagem 
do hardware, é preciso programar. 
Figura 16 — Representação do sketch do Projeto motor de passo 
 
Fonte: Adaptada de Thomsen, 2013. 
 
 
17 
Na Figura 16, vemos que, na linha 1, foi incluída a biblioteca padrão 
“Stepper.h”, que contém as funções necessárias para a utilização de motores de 
passo. Na linha 3, a constante “stepsPerRevolution” recebe o número de passos 
que o motor deverá dar por volta. Na linha 7, foi nomeado o motor como 
“myStepper” e definidas as portas necessárias para a comunicação com o 
Arduino. A função “setSpeed”, da linha 12, determina a velocidade inicial com que 
o motor (“myStepper”) deve girar como 60. Dentro da execução do programa, 
existem dois laços de repetição, cujos valores são passados por parâmetrosna 
função step, conforme a Tabela 1. 
Tabela 1 — Tabela graus x passos 
Para girar ... graus, serão necessários ... 
passos 
Passos (Valor inteiro 
arredondado) 
30 170,67 171 
60 341,33 341 
90 512,00 512 
120 682,67 683 
180 1024,00 1024 
Fonte: Simão, 2018. 
A Tabela 1 mostra o valor que deve ser passado na função “step” para o 
motor girar para um determinado grau. Note que, na linha 20 da Figura 16, o valor 
passado foi -512, fazendo o eixo girar 90 graus no sentido horário. Já na linha 27, 
foi passado o valor 682, fazendo o eixo girar 120 graus no sentido anti-horário. 
Lembre-se de que é possível movimentar o eixo para qualquer grau, basta 
informar o seu valor correspondente na função “step”. 
 
 
 
18 
REFERÊNCIAS 
REIS, F. dos. Como funciona um potenciômetro. Disponível em: 
<http://www.bosontreinamentos.com.br/eletronica/curso-de-eletronica/como-
funciona-um-potenciometro/>. Acesso em: 27 mar. 2019. 
STRAUB, M. G. Braço robótico para Arduino. Disponível em: 
<https://blog.usinainfo.com.br/braco-robotico-para-arduino/>. Acesso em: 29 mar. 
2019. 
THOMSEN, A. Controlando um motor de passo 5V com Arduino. Disponível 
em: <https://www.filipeflop.com/blog/controlando-um-motor-de-passo-5v-com-
arduino/>. Acesso em: 30 mar. 2019. 
SIMÕES, H. M. C. Controlando um motor de passo com Arduino. Disponível 
em: <http://blog.moduloeletronica.com.br/controlando-um-motor-de-passo-com-
o-arduino/>. Acesso em: 30 mar. 2019

Continue navegando