Sie sind auf Seite 1von 44

ENGENHARIA MECATRÔNICA

Engenharia Moderna
PROF. MARCELO MORGANTINI

16/08/2019 prof.morgantini@fiap.com.br 2
Atividades de hoje

 Grandezas Analógicas e Digitais;


 Entradas e Saídas do Arduino;
 PWM;
 Ponte H.

16/08/2019 prof.morgantini@fiap.com.br 3
Grandezas digitais e analógicas

Diferenças:
Grandezas Digitais são definidas por saltos entre valores
dentro de um certo escopo.
Ex.: Relógios Digitais Comuns – Apesar do tempo variar
continuamente, o visor exibe o tempo em saltos de,
geralmente, um em um segundo. Um relógio deste não
consegue mostrar um horário com 30,4 segundos, pois, para
eles, só existem 30 e 31 segundos, ou seja, qualquer valor
intermediário não está definido).

16/08/2019 prof.morgantini@fiap.com.br 4
Grandezas digitais e analógicas
Diferenças:
Grandezas Analógicas são definidas por assumirem infinitos
valores de amplitude dentro de uma faixa. Usando o mesmo
exemplo, o curso de um ponteiro, no relógio analógico é um
exemplo interessante. Note que para que o exemplo seja
correto, o ponteiro do segundo não deve saltar de um valor ao
outro e sim mover-se continuamente.

16/08/2019 prof.morgantini@fiap.com.br 5
Grandezas digitais e analógicas

Uma analogia interessante é a comparação de uma escada


com uma rampa, pois, enquanto uma rampa sobe de forma
contínua, assumindo todos os valores de altura entre a base e
o topo, a escada sobe em saltos, com apenas alguns valores
de altura definidos entre seus degraus.

16/08/2019 prof.morgantini@fiap.com.br 6
Entradas e Saídas Digitais do Arduino

No Arduino UNO, as entradas e saídas digitais estão


localizadas desde pino 0 até o pino 13. Note que alguns
desses conectores estão identificados com um ~ ao lado do
número que o identifica.
Estes pinos serão abordados oportunamente. Neste
momento basta entendermos que podemos configurar essas
interfaces como entradas e saídas digitais.
Todo equipamento dito digital, trabalha com apenas dois
níveis lógicos:

ALTO, correspondente a 5V;


BAIXO, correspondente a 0V.

16/08/2019 prof.morgantini@fiap.com.br 7
Entradas e Saídas Digitais do Arduino UNO

16/08/2019 prof.morgantini@fiap.com.br 8
Entradas Digitais

Uma ENTRADA digital apresenta alta impedância. Assim, uma


pequena corrente pode acioná-la (mudar de 0V para 5V).
Mas nessa configuração, ruídos eletromagnéticos podem gerar
falsos positivos caso não haja nada ligado a este pino.

16/08/2019 prof.morgantini@fiap.com.br 9
Entradas Digitais
Para evitar este problema, usamos um resistor, chamado
PULL-DOWN, que mantém a tensão do pino em 0V, ou PULL-
UP para manter a tensão em 5V.

16/08/2019 prof.morgantini@fiap.com.br 10
Entradas Digitais – Resumo...

Ao configurarmos um pino como entrada, ele assume


um estado de alta impedância (≈100MΩ), em série
com o circuito a ser monitorado. Assim, a porta quase
não absorve corrente, mas se o circuito ligado à porta
não está conectado a mais nada, o nível de tensão
presente nesse pino tende a ficar variando, sem um
valor estável, decorrente de ruídos eletromagnéticos
ou até mesmo pela capacitância de entrada do pino.
Para resolver esse problema é preciso usar um
resistor de pull up (ligado a +5V) ou um resistor de pull
down (ligado a GND) conforme a necessidade do
projeto.
16/08/2019 prof.morgantini@fiap.com.br 11
Entradas Digitais

Dependendo do projeto, recomenda-se a utilização


do resistor interno de PULL-UP no Arduino.
Este resistor interno possui valor aproximado de
40KΩ e dispensa o uso de um componente externo
real.

Para ativar este resistor use o código:

pinMode(switchPin, INPUT_PULLUP);

16/08/2019 prof.morgantini@fiap.com.br 12
Saídas Digitais

Quando configurados nesse estado os pinos podem


fornecer 0 ou 5V, com uma corrente de
aproximadamente 40mA.
Este valor pode acionar facilmente LEDs, alguns
sensores, relês e até mesmo alguns tipos de
motores de baixo torque.

Deve-se ter cuidado, pois, caso uma corrente maior


que o limite passe por um pino, este poderá ser
danificado ou mesmo o próprio Arduino se queimar.

16/08/2019 prof.morgantini@fiap.com.br 13
Entradas Analógicas
Para trabalhar com as informações que chegam das
entradas analógicas, o Arduino precisa transformar esta
informação em digital. Os conversores analógico-digital do
Arduino UNO possuem uma resolução de 10 bits e o
intervalo de tensão de 0 a 5V, ou seja, este intervalo será
dividido em 1024 “pedaços” (210, onde 10 é a resolução do
conversor).

Assim, o valor atribuído à tensão presente em um


determinado pino será o valor discreto (de 0 a 1023) mais
próximo a esta tensão. Cada unidade nessa escala
representa então uma variação de 0,0048828V. (este
resultado foi obtido através da razão 5/1024).
16/08/2019 prof.morgantini@fiap.com.br 14
Entradas Analógicas

Por exemplo, suponha uma tensão de 3,25V.

Se você programou uma entrada analógica para


receber a leitura de um determinado sensor (0 e 5V),
cujo valor é exibido no monitor serial do Arduino, se a
tensão recebida for de 3,25V, o valor no monitor serial
será 666. A equação para esta conversão é:

Note que o valor foi arredondado, pois nessa


conversão o Arduino só trabalha com valores inteiros.
16/08/2019 prof.morgantini@fiap.com.br 15
Entradas Analógicas

16/08/2019 prof.morgantini@fiap.com.br 16
Portas PWM (Pulse-Width Modulation)

Saídas digitais ligam e desligam algo. Mas se precisamos


controlar a potência de algum dispositivo de maneira gradual, é
preciso usar uma saída analógica. Com ela controlamos o
brilho de um LED, ou a velocidade de um motor.

Ao contrário das entradas analógicas (fixas), o Arduino possui


algumas portas que podem ser configuradas como saídas
analógicas. Elas possuem um ~ ao lado de sua numeração.

16/08/2019 prof.morgantini@fiap.com.br 17
Portas PWM (Pulse-Width Modulation)

Para controlar uma saída analógica PWM, use a


função analogWrite(), com um número entre 0 e 255,
sendo que 0 indica 0V (completamente desligado) e
255 (completamente ligado), 5V.

Na verdade o que acontece é que esta variação afeta


o tempo que a tensão de 5V é enviada à porta no
intervalo de 1 segundo (Duty Cycle).

Olhe a figura a seguir:

16/08/2019 prof.morgantini@fiap.com.br 18
Portas PWM (Pulse-Width Modulation)

16/08/2019 prof.morgantini@fiap.com.br 19
Portas PWM (Pulse-Width Modulation)

Quando você muda o valor de saída, na verdade está


mexendo na largura de cada pulso. Os pinos
possuem uma frequência de 490 pulsos por segundo.
Se você precisar de mais precisão, utilize os pinhos
D5 e D6, que possuem uma frequência de operação
de 980 pulsos.
O cálculo do Duty Cycle é feito da seguinte maneira:

16/08/2019 prof.morgantini@fiap.com.br 20
Motores DC

São os motores elétricos de pequeno


porte usados em aplicações que
demandam movimento.
Eixo
(onde fixamos o que
vamos movimentar) Motor

Caixa de Redução
(para converter
rotação em força).
Terminais para
alimentação elétrica
16/08/2019 prof.morgantini@fiap.com.br 21
Motores DC

Ligando os polos de
uma fonte de energia
elétrica nos terminais do
motor.

16/08/2019 prof.morgantini@fiap.com.br 22
Motores DC

Quando invertemos a
ligação o sentido de
rotação muda.

16/08/2019 prof.morgantini@fiap.com.br 23
Motores DC

Se conectamos os pinos do motor


diretamente à duas portas do Arduino.
Um deles na porta 9 e o outro na porta 8.

16/08/2019 prof.morgantini@fiap.com.br 24
Motores DC

Escrevemos 0 na porta 9, o que faz com que apareça 0V nela e


escrevemos 1 na porta 8, o que faz com que apareça 5V nela.

O motor vai funcionar?

16/08/2019 prof.morgantini@fiap.com.br 25
Motores DC

Não, porque o arduino não é capaz de fornecer corrente suficiente ao


motor, e neste caso, a porta pode até queimar!!!

16/08/2019 prof.morgantini@fiap.com.br 26
Motores DC

Para fornecer a corrente necessária, precisamos de um Driver.


16/08/2019 prof.morgantini@fiap.com.br 27
Motores DC - Detalhamento

Detalhe de um motor acionado por escovas (o mais comum).


16/08/2019 prof.morgantini@fiap.com.br 28
Motores DC – Caixas de Redução

Os motores DC normalmente usados em pequenos projetos


são de alta rotação e pequeno torque, não servindo portanto
para aplicações que demandam maior força do motor.
Isto significa que se usarmos este motor em um robô e
acoplarmos uma roda diretamente ao eixo, teremos duas
possibilidades:
ou o robô "dispara" em alta velocidade, se ele for leve;
Ou, mais provavelmente, o motor não terá força e ele não vai
sair do lugar.
Para resolvermos a segunda opção é preciso reduzir sua
velocidade e, ao mesmo tempo, aumentar seu torque.
Isso é feito acoplando-se ao motor algum sistema mecânico
que possa realizar essa operação.

16/08/2019 prof.morgantini@fiap.com.br 29
Motores DC – Redução por correia.

A relação entre o diâmetro do eixo do motor e o diâmetro da


roda maior que vai propulsionar ou realizar o movimento, nos
dará a proporção em que a velocidade é reduzida e o torque é
aumentado.
16/08/2019 prof.morgantini@fiap.com.br 30
Motores DC – Redução por
engrenagens.

A relação entre os tamanhos e o número de dentes das engrenagens


nos dá a taxa de redução da velocidade e de aumento do torque.
Com uma engrenagem de 10 dentes no motor e a esta uma maior
com 50 dentes, teremos uma taxa de redução de 1:5.

16/08/2019 prof.morgantini@fiap.com.br 31
Motores DC – Redução por engrenagens.

Nesta figura mostramos como temos uma taxa de 1:10 e depois uma
de 1:30 obtendo-se assim uma taxa final de redução de 1 para 300!
Assim, um pequeno motor que movimenta apenas 20g em seu eixo,
com a redução, terá torque capaz de mover uma carga de 6Kg.

16/08/2019 prof.morgantini@fiap.com.br 32
Controle de Motores DC – Ponte H

Para controlar motores mais potentes, devemos


obrigatoriamente utilizar um Driver, que é um dispositivo capaz
de fornecer a corrente necessária ao motor, sendo controlado
pelo Arduino.
Um dos mais populares dispositivos para controle de motores
DC é a Ponte H.

No mercado, podemos encontrar inúmeros modelos de Ponte


H, com diversas potências.

Mas afinal, como funciona uma Ponte H?

16/08/2019 prof.morgantini@fiap.com.br 33
Controle de Motores DC – Ponte H

As pontes H possuem este nome pelo formato do seu


circuito, semelhante a letra H. O circuito utiliza quarto chaves
(S1, S2, S3 e S4) que são acionadas de forma alternada, ou
seja, (S1-S3) ou (S2-S4), veja as figuras abaixo:

16/08/2019 prof.morgantini@fiap.com.br 34
Controle de Motores DC – Ponte H

A B C

Quando nenhum par de chaves está acionado, o motor está


desligado (A). Quando o par S1-S3 é acionado a corrente percorre
S1-S3 fazendo com que o motor gire em um sentido (B). Já quando
o par S2-S4 é acionado a corrente percorre por outro caminho
fazendo com que o motor gire no sentido contrário (C).
16/08/2019 prof.morgantini@fiap.com.br 35
Controle de Motores DC - Ponte H L298n
A Ponte H L298n tem este nome por
conta do CI instalado em sua placa e
que é seu componente principal.
O CI L298N é muito utilizado para o
propósito de controle de motores.
As vantagens de seu uso são:
O menor espaço ocupado;
A baixa complexidade do circuito; e
Possuir dois circuitos H, podendo
assim, controlar dois motores.
Outra vantagem do L298N é a resposta a sinais de PWM.
Com isto, podemos regular precisamente a tensão de saída, e
dessa forma regular a velocidade dos motores.

16/08/2019 prof.morgantini@fiap.com.br 36
Controle de Motores DC - Ponte H L298n
6-35V: Porta para alimentação
da placa com tensão entre 6 a
35V.
Ativa 5V: Quando fechado, a
placa utilizará o regulador de
tensão integrado para fornecer
5v (na porta 5v) quando a porta
6-35V estiver sendo alimentada
por uma tensão entre 6 e 35V.
Neste caso, não se deve
alimentar a porta 5V pois assim,
podemos danificar os
componentes.
A tensão fornecida na porta 5V pode ser usada para alimentar o
Arduino, ou outro componente.
16/08/2019 prof.morgantini@fiap.com.br 37
Controle de Motores DC - Ponte H L298n
5v: Em casos de não haver
fonte de alimentação com mais
de 6V podemos alimentar a
placa com 5V por esta porta.
Ativa MA: Quando jumpeado
aciona o motor A com
velocidade máxima. Para
controlar a velocidade do
motor A basta remover o
jumper e alimentar o pino com
uma tensão entre 0 e 5v,
(0V = parado e 5V = velocidade máxima).
Ativa MB: Funciona de forma idêntica ao item anterior, mas
agora controlando o motor B.
16/08/2019 prof.morgantini@fiap.com.br 38
Controle de Motores DC - Ponte H L298n
IN1 e IN2: são utilizados para
controlar o sentido do motor A.
IN3 e IN4: são utilizados para
controlar o sentido do motor B.
Este controle é feito com
portas digitais do seu Arduino e
segue a tabela abaixo:

16/08/2019 prof.morgantini@fiap.com.br 39
Controle de Motores DC - Ponte H L298n
Exemplo de montagem: Lembre-se de montar tudo com a
fonte de alimentação desligada.

16/08/2019 prof.morgantini@fiap.com.br 40
Controle de Motores DC - Ponte H L298n
Código de testes:
/*Pinagem do arduino*/ /*Inicio dos Estados do motor A*/
//Sentido 1
//motor A digitalWrite(IN1,LOW);
int IN1 = 2 ; digitalWrite(IN2,HIGH);
int IN2 = 3 ; delay(5000);

//motor B //Freia Motor


int IN3 = 4 ; digitalWrite(IN1,HIGH);
int IN4 = 5 ; digitalWrite(IN2,HIGH);
delay(5000);
//Inicializa Pinos
void setup(){ //Sentido 2
pinMode(IN1,OUTPUT); digitalWrite(IN1,HIGH);
pinMode(IN2,OUTPUT); digitalWrite(IN2,LOW);
pinMode(IN3,OUTPUT); delay(5000);
pinMode(IN4,OUTPUT);
}

void loop(){
16/08/2019 prof.morgantini@fiap.com.br 41
Controle de Motores DC - Ponte H L298n
Código de testes:
//Freia Motor //Sentido 2
digitalWrite(IN1,HIGH); digitalWrite(IN3,HIGH);
digitalWrite(IN2,HIGH); digitalWrite(IN4,LOW);
delay(5000); delay(5000);
/*Fim dos Estados do motor A*/
//Freia Motor
/*Inicio dos Estados do motor B*/ digitalWrite(IN3,HIGH);
//Sentido 1 digitalWrite(IN4,HIGH);
digitalWrite(IN3,LOW); delay(5000);
digitalWrite(IN4,HIGH);
delay(5000); /*Fim dos Estados do motor B*/
}
//Freia Motor
digitalWrite(IN3,HIGH);
digitalWrite(IN4,HIGH);
delay(5000);

16/08/2019 prof.morgantini@fiap.com.br 42
?!

16/08/2019 prof.morgantini@fiap.com.br 43
Copyright © ago-19 Prof. Marcelo Fernando Morgantini

Todos direitos reservados. Reprodução ou divulgação total ou parcial deste


documento é expressamente proibido sem o consentimento formal, por escrito,
do Professor (autor).

16/08/2019 prof.morgantini@fiap.com.br 44

Das könnte Ihnen auch gefallen