MCO18703 2017 2 AULA06

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Arquitetura do Arduíno

Principais blocos
Fig001 MCO18703.jpg


Como é estruturado o Hardware
  • 0-5 (azul) - pinos de entradas analógicas. Entradas para o ADC, podem ser usados como I/O digital.
  • 0-13 (verde) - pinos de I/O digitais . Pinos 0 e 1 também são utilizados para a comunicação serial.
  • AREF(laranja) - referência analógica do ADC.
  • S1 (azul) - botão de inicialização.
  • ICSP (ciano) - conector de gravação In-Circuit.
  • USB (amarelo) - usado para gravar o Arduino ou energizá-lo.
  • X1 (rosa) - fonte de alimentação externa (9-12VDC, após diodo estará também em Vin).


Fig002 MCO18703.jpg


Escrita nas portas digitais

Vimos no primeiro exemplo, que o pino digital 13 está ligado diretamente a um LED de sinalização da placa e, portanto, nenhum LED externo foi necessário, para testar a escrita nas portas digitais. Porém, se quisermos acender um LED externo à placa, podemos conectá-lo diretamente a outra porta digital qualquer, inclusive à própria porta 13. Podemos utilizar um LED de 5mm que acende com aproximadamente 2,1 V. O problema, nesse caso, se dá por conta da porta digital: ela assume tensão 0V (nível lógico LOW), ou a tensão 5V (nível lógico HIGH), e caso coloquemos 5V no LED ele irá queimar. Para solucionar esse problema precisamos ligar algum outro componente que seja responsável por dividir parte dessa tensão com o LED, para que ele não queime, então utilizaremos um resistor. Portanto, ligamos um resistor de 120 ohms em série com o LED, o resistor à porta 13 e o LED à porta GND (ground ou terra), como na Figura abaixo.

Fig003 MCO18703.jpg


Não precisamos fazer nenhuma alteração no software para que esse circuito funcione: basta ligar o Arduino na porta USB do computador, para que o computador forneça alimentação ao circuito, e então veremos o LED externo piscar, juntamente com o LED interno. Em vez do LED, poderíamos controlar outros componentes ou equipamentos digitais, como motores, eletrodomésticos, etc.


O componente LED

LED, ou light emitter diode' é um diodo emissor de luz que, quando alimentado corretamente, permite o fluxo de energia apenas em um sentido. É um componente polarizado (com pólos positivo e negativo) e deve ser corretamente conectado para funcionar. Note que o polo positivo possui uma perna maior (terminal maior) que a outra (veja a figura abaixo). Já o polo negativo possui a menor perna (terminal menor).

Fig004 MCO18703.jpg

Nota: Alguns LED's apresentam o polo negativo chanfrado (plano) no seu exterior.


Há vários tipos de LED's, que variam tanto em cor, quanto em tamanho. Cada led utiliza uma tensão nominal, suficiente para fazê-lo emitir a luminância adequada e uma corrente máxima, que ele pode suportar.

Tabela de tensões e correntes típicas para cada tipo de led
Cor Queda de Tensão Corrente Máx
Vermelho 1,8V 20mA
Verde 2,1V 20mA
Amarelo 2V 15mA
Laranja 2V 20mA
Azul 3,1V 20mA
Branco* 3,1 – 4V 20mA
Infravermelho 1,1V 20mA

(* Dependendo do fabricante)

Cálculos de resistência

Para chegar ao valor de 120 ohms acima, é necessário fazer-se alguns cálculos (e aproximações). Vamos aprender agora a calcular o valor dos resistores que precisamos utilizar. Se precisarmos acender um LED verde, que é alimentado com tensão de 2,1 V e corrente de 20mA através do Arduino, precisaremos de um resistor, como já vimos, já que o Arduino só consegue fornecer ou 0V ou 5V.


Colocaremos o resistor em série com o LED, e com isso podemos concluir que
  • A tensão total (soma das tensões no resistor e no LED) será de 5V, ou seja: VLED + VR = 5V
  • A corrente total que deve passar pelo resistor e pelo LED (já que eles estão em série, é a mesma) será de 20mA, ou seja: ILED = IR = 20mA
  • Precisamos colocar uma tensão de 2,1 V no LED, ou seja: VLED = 2,1 V

Sabendo desses detalhes, podemos concluir que a tensão no resistor será de:

VR =( 5V - VLED ) 
VR = 5V - 2,1 V 
VR = 2,9V  

Como IR = 20mA e VR = 2,9 V , podemos calcular o valor da resistência R do resistor que iremos utilizar através da Lei de Ohm:

V = R.I

Assim, temos:

2,9 V = R. 0,020A 
R = 2,9 V/0,020A 
R = 145 ohms

Depois de feito o cálculo, podemos generalizar com a seguinte equação:

R = (Vfonte - VLED)/IR


Para o LED verde, precisamos de um resistor de 145 ohms, porém não existem resistores com esse valor para venda (os valores, chamados de valores comerciais são pré-definidos).

Dada essa situação, temos duas alternativas:

  • Utilizar um resistor de maior resistência e limitar mais a corrente (que fará com que o LED brilhe menos, mas que é responsável, para aumentar a vida útil do LED); ou
  • Associar dois ou mais resistores em série ou paralelo para conseguir o valor desejado.

Geralmente escolhemos um resistor de valor próximo, já que uma alteração pequena de corrente não causará danos ao dispositivo, porém em alguns casos precisaremos combinar resistores de valores diferentes para conseguir o valor equivalente.

Pela tabela abaixo, podemos ver que nosso problemas estaria resolvido se utilizássemos um resistor de 120 a 150 ohms, ou dois resistores de 68 ohms em série, por exemplo.

Fig005 MCO18703.jpg

Alimentação do circuito

Internamente, o circuito do Arduino é alimentado com uma tensão de 5V. Quando ligamos o Arduino em uma porta USB do PC, o próprio PC, através do cabo USB, alimenta o Arduino. Porém nem sempre temos um PC por perto; para esses casos, podemos utilizar uma outra fonte de energia de 5V (a fonte deve ser ligada diretamente nos pinos 5V e GND do Arduino).

Como não possuímos pilhas/baterias em abundância no mercado com tensão de 5V, é complicado alimentar um Arduino dessa forma alternativa (se dispusermos uma tomada de 127/220VAC por perto, poderíamos ligar uma fonte AC/DC ).

Para resolver esse problema, o Arduino possui um regulador de tensão que aceita tensões de 7 a 12V (na verdade, ele consegue funcionar com tensões entre 6 e 20V, apesar de não ser recomendado). Com o regulador de tensão podemos combinar pilhas em série, utilizar uma bateria de 9V ou mesmo baterias de carros, motos e no-breaks (12V).


Fig006 MCO18703.jpg


Exercícios

  1. Altere o código para acender os pinos digitais 5 e 10 do Arduíno.
     
     int led1 = 5, led2 = 10;
     void setup() {
      pinMode(led1, OUTPUT);
      pinMode(led2,OUTPUT);
     }
     void loop() {
      digitalWrite(led1, HIGH);
      delay(1000);     
      digitalWrite(led2, HIGH);
      delay(1000);
      digitalWrite(led1, LOW);
      delay(1000);
      digitalWrite(led2, LOW);
      delay(1000);
     }
    
  2. Altere o código para que uma saída, por exemplo, a 12, acione 4 LEDs em série. O que deverá ser mudado?
  3. Pesquise sobre a corrente/potência que cada saída digital do Arduíno pode fornecer.
  4. O que deveria ser feito, para poder-se acionar equipamentos que drenassem maior potência, corrente, além dos ~40mA que o Arduíno pode fornecer?

Referências

[1] https://wiki.ifsc.edu.br/mediawiki/index.php/AULA_2_-_Microcontroladores_-_T%C3%A9cnico



Icone voltar.png Icone menu.png Icone prox.png