Como Controlar LEDs Com o Arduino
Como Controlar LEDs Com o Arduino
Como Controlar LEDs Com o Arduino
Você pode pensar que ligar e desligar um LED soa meio chato. E na verdade é meio
que...
Mas é uma habilidade importante saber, porque drivers de motor, relés e muitos
outros dispositivos são controlados da mesma forma que um LED.
Os LEDs têm polaridade , o que significa que precisam ser conectados de uma certa
maneira:
Vamos dar uma olhada em algum código que fará o LED acender e apagar.
void setup() {
// Configura o pino d13 como saída
pinMode(13, OUTPUT);
}
void loop() {
// Configura o pino 13 como HIGH
digitalWrite(13, HIGH);
// Espera 1000 ms (1 segundo)
delay(1000);
// Configura o pino 13 como LOW
digitalWrite(13, LOW);
// Espera 1000 ms (1 segundo)
delay(1000);
}
Leva dois argumentos - o número do pino e o estado da tensão ( ALTO ou BAIXO ).
Em seguida, a função delay() será usada para controlar por quanto tempo o pino
será definido como HIGH:
Neste tutorial, será explicado todo o esquemático do Arduino UNO versão R3,
mostrando as funções de cada componente no circuito. Todos os componentes da
placa, sem exceções, são explicados aqui. Ao final deste tutorial, você entenderá os
fundamentos de cada parte do circuito e terá uma boa base para avaliar melhor as
placas Arduino disponíveis no mercado, entendendo as diferenças entre os diversos
modelos, inclusive clones e placas compatíveis.
Nosso objetivo durante a preparação deste material foi passar a maior quantidade
de informação possível, porém mantendo uma linguagem simples. A ideia é que
qualquer pessoa com algum conhecimento sobre eletrônica e projetos consiga
entender o material sem grandes dificuldades.
Durante a explicação, também foram feitas diversas comparações do UNO com
outras versões do Arduino. Assim você terá oportunidade de conhecer um pouco
mais as diferenças entre elas, e compreender melhor qualquer esquemático da
família Arduino. Esperamos que você goste.
Processador USB
Processador principal
Alimentação
Processador USB
O processador USB, nomeado como U3 no esquemático, é responsável por fazer a
comunicação do Arduino com o seu PC através da porta USB. Ele é necessário, pois
o processador principal do Arduino (ATmega328) não suporta conexão direta com
uma porta USB. Dessa forma, o processador USB converte os dados da USB do PC
para um sinal serial (UART), e este sim pode lido pelo processador principal.
Podemos dizer então, que o processador USB funciona como um conversor USB-
Serial.
O processador utilizado para essa função é o ATmega16U2. Versões anteriores do
Arduino, como Arduino Duemilanove, Diecimila, Nano, MEGA (anterior ao R3) e
muitas outras placas similares, utilizam outro componente para essa função, o
FT232 fabricado pela empresa FTDI. Porém, muitos usuários reclamaram que a
troca do FT232 pelo ATmega16U2 ocasionou problemas de compatibilidade com
Windows e MAC.
Vamos ver mais de perto como é feita a implementação do processador USB
ATmega16U2. A figura abaixo mostra o circuito com mais detalhes:
Conector USB
À esquerda, podemos ver o conector USB nomeado como X2. Este é um conector
USB fêmea do tipo B, e é nele que você conecta o cabo USB. Outras versões do
Arduino utilizam conectores USB diferentes. O Arduino Nano por exemplo utiliza o
conector Mini USB, e versões mais novas como o Arduino Leonardo, DUE e Zero
utilizam o conector Micro USB, que é o mesmo utilizado na maioria dos
smartphones atuais.
O conector USB tem duas funções - trazer as informações da porta USB do PC até a
placa, e também alimentar o Arduino quando não há uma fonte externa conectada.
Todas as versões do Arduino com porta USB possuem esse fusível. Ele é o modelo
MF-MSMF050-2 fabricado pela Bourns
Z1 e Z2
A comunicação USB é feita através dos pinos do conector nomeados D- e D+. Estes
sinais, após saírem do conector, passam pelos componentes Z1 e Z2. Eles são
conhecidos como varistores, e tem a função de proteger os pinos do ATmega16U2
contra descargas eletrostáticas, o que poderia causar a queima, ou mal
funcionamento do processador.
Descargas eletrostáticas, ou ESD (do inglês eletrostatic discharge) são eventos que
ocorrem quando se aproxima um objeto carregado com cargas elétricas de outro
que esteja descarregado. O exemplo mais comum de uma descarga eletrostática é
quando você anda sobre um tapete ou carpete usando um sapato com sola de
borracha, e depois toma um choque quando tenta abrir a maçaneta metálica da
porta. Nesse caso, o seu corpo fica carregado com cargas elétricas por causa do
atrito do sapato com o tapete, depois essas cargas são transferidas rapidamente
para a maçaneta da porta, fazendo com que você leve um pequeno choque. Se o
seu corpo estiver carregado, e ao invés da maçaneta, você tocar numa placa com
circuitos eletrônicos, as cargas são transferidas para ela, o que poderá causar danos
aos circuitos (mesmo com a placa desligada).
Descargas eletrostáticas ocorrem o tempo todo, e na maior parte dos casos, a
corrente é muito baixa para que você sinta um choque, de modo que elas acabam
passando despercebidas, mas mesmo assim ainda podem danificar os componentes
mais sensíveis. Componentes e circuitos com os quais o usuário final tem contato
direto (como normalmente é o caso das portas USB), merecem atenção especial
quanto à proteção ESD, pois são eles que normalmente recebem as descargas.
Assim como o fusível, o varistor também é um resistor, porém nesse caso, o valor da
resistência diminui conforme a tensão sobre ele aumenta. Com valores de tensão
baixos, como os que ocorrem durante o funcionamento normal da porta USB, a
resistência do varistor é bastante elevada (na ordem de 100 mega Ohms), assim os
sinais passam por eles sem haver desvios. Porém, quando um evento de descarga
eletrostática ocorre, a tensão aumenta rapidamente (podendo chegar a vários
kilovolts), fazendo com que a resistência do varistor baixe, e desvie o excesso de
corrente dos pinos do ATmega16U2 para o GND do Arduino, protegendo o
processador.
RN3A e RN3D
Os últimos componentes deste bloco são os resistores de 22 Ohms denominados
RN3A e RN3D. A nomenclatura deles vem do fato de que no projeto do Arduino não
são utilizados resistores individuais, e sim componentes que possuem 4 resistores
juntos. Esses componentes são chamados de "rede de resistores", ou em inglês
"resistor network" (RN). Dessa forma, temos por exemplo que o componente com
nome RN3A é o resistor A da rede de resistores 3, o RN3B, é o resistor B desta
mesma rede, e assim por diante até o quarto resistor (denominado D). Veja que
nesse caso, apenas 2 resistores foram usados, o resistor B e o resistor C ficaram
sobrando, e estão localizados logo acima do bloco de filtro e proteção.
Oscilador
O oscilador é o coração de qualquer processador, sendo responsável pela geração
do pulso de clock. Virtualmente todos os processadores existentes utilizam um
oscilador, e sua implementação costuma ser bem semelhante. Apesar de utilizar
poucos componentes, o funcionamento deste circuito é relativamente complexo, por
isso nós não iremos entrar em detalhes, e vamos nos concentrar apenas nas
características fundamentais.
Neste projeto, o oscilador do ATmega16U2 foi implementado utilizando um cristal
como componente principal (Y1). Este cristal tem uma frequência de ressonância de
16MHz. A função do cristal é a de gerar uma senóide, que servirá como base para o
clock. Internamente, o processador transforma essa senoide em uma onda
quadrada.
A figura abaixo mostra a senoide obtida medindo o oscilador do Arduino UNO.
C7
Podemos ver o capacitor C7 com valor de 100 nanofarad ligado diretamente entre a
tensão de alimentação de 5 Volts e o GND. Neste circuito, o capacitor exerce a
função de "capacitor de desacoplamento". Capacitores com esta função são muito
importantes no funcionamento de circuitos integrados digitais. Praticamente todos os
fabricantes de circuitos integrados recomendam o uso de capacitores ligados nos
pinos de alimentação, sendo 100 nanofarad um valor clássico. Além do valor, o
quesito mais importante quando se utiliza um capacitor de desacoplamento é a sua
localização, devendo ser posicionados o mais perto possível dos pinos de
alimentação do circuito integrado em questão (caso fique afastado, seu efeito será
nulo).
As principais funções de um capacitor de desacoplamento são:
Filtrar os ruídos provenientes da fonte alimentação, não deixando que os
mesmos entrem no circuito integrado. Além disso, filtram os ruídos
gerados internamente no circuito integrado, não deixando que eles se
espalhem para outros componentes da placa.
Um circuito digital, como um processador, consome corrente em picos,
que normalmente coincidem com as transições do pulso de clock. O
capacitor tem o papel de armazenar uma quantidade de energia suficiente
para suprir os picos de corrente exigidos pelo processador.
RN1C
O resistor RN1C funciona como resistor de pull-up, e sua função é a de manter o
pino 24 do processador em nível alto (nível alto nesse caso quer dizer que há uma
tensão de 5 Volts no pino). Este é o pino de reset do processador, e o mesmo é
ativo em nível lógico baixo, ou seja, o processador é colocado em estado de reset
quando a tensão no pino é zero. Desse modo, o resistor segura a tensão em 5 Volts,
e impede que o processador entre em estado de reset indevidamente. O
ATmega16U2 já tem um resistor de pull-up interno para esse pino, e o uso de
resistor interno não é obrigatório, porém é indicado no caso de ambientes com níveis
elevados de ruído.
D3
O diodo D3 tem o papel de reforçar a proteção contra descarga eletrostática (ESD)
no pino 24.
Mas porque o diodo é colocado apenas nesse pino do processador, e não nos
demais?
Bom, a história é um pouco comprida, mas podemos dizer que os processadores
normalmente já tem estruturas internas de proteção ESD, que são compreendidas
por dois diodos ligados em cada pino. Porém, o pino de reset é um caso especial, já
que ele é usado durante a gravação do software, e alguns métodos de programação
(mas não todos) aplicam 12 Volts nesse pino durante o processo. Esse fato impede
que a estrutura de proteção ESD seja implementada de forma completa no pino de
reset, já que o diodo impediria a aplicação dos 12 Volts o mesmo. Dessa forma, o
fabricante do chip retira um dos dois diodos internos de proteção. Como na
produção do Arduino não são utilizados os métodos de programação que
necessitam da aplicação dos 12 Volts no pino de reset, o diodo de proteção interno
omitido foi re-inserido externamente, deixando a estrutura de proteção contra ESD
completa novamente (baixe o documento "EMC Design Considerations" na seção
de downloads ao final da página para mais informações).
O uso deste diodo é opcional, e não está presente em muitas versões do Arduino,
como Pro, ProMini, Nano, Duemilanove, MEGA entre outras.
C8
O processador ATmega16U2 possui um regulador de tensão interno, que é
necessário para o funcionamento de alguns dos seus circuitos. Para que esse
regulador trabalhe corretamente, o fabricante recomenda que seja conectado ao
pino 27 do processador (nomeado como UCAP), um capacitor com valor de 1
microfarad.
LEDs USB
São dois LEDs, RX e TX, que são controlados pelo software do processador, e
usados para indicar a atividade da comunicação USB. Ou seja, quando há
informações enviadas do Arduino para o PC, o LED TX pisca, e quando há
informações enviadas do PC para o Arduino, o LED RX pisca. A implementação
desse circuito é bem simples e tradicional, há apenas um resistor em série com cada
LED (RN2B e RN2C) com valor de 1 kilo Ohms, e que tem o papel de limitar a
corrente dos mesmos.
Conector de programação
Estes dois resistores estão ligados em série com os sinais RX e TX da serial que
vão para o processador principal ATmega328, ou seja, eles são o elo de ligação
entre os dois processadores. A presença destes resistores em série permite que
você utilize shields no Arduino que façam uso da serial do processador ATmega328.
De uma certa maneira, é como se a serial vinda do processador ATmega16U2 seja
desconectada no momento em que você pluga no Arduino um shield que utilize a
serial. Isso traz uma flexibilidade maior no uso do Arduino, já que permite o uso da
serial com outros shields, porém é como se a porta USB fosse desabilitada enquanto
há um shield serial plugado. Dessa forma, para programar o Arduino, ou se
comunicar com o PC, é necessário desplugar o shield que utiliza a serial.
C5 e RN2D
Jumper de solda
É um jumper de solda, que fica localizado na parte de baixo placa. Ele serve para
conectar o terra vindo da malha do cabo USB (após passar pelo indutor L1) ao terra
principal. Em projetos eletrônicos, normalmente os projetistas fazem essa conexão
entre os "terras diferentes" utilizando um jumper, pois isso garante que eles sejam
conectados apenas em um ponto, o que evita a circulação de corrente em áreas
indesejadas da placa. Este jumper já vem fechado de fábrica.
Processador principal
Agora que nós entendemos o funcionamento do processador USB, será bem mais
fácil compreendermos como funciona o processador principal, já que e
implementação do circuitos são bem semelhantes.
Como já dissemos anteriormente, no Arduino UNO, o componente que faz o papel
de processador principal é o ATmega328, também fabricado pela Atmel
Semiconductor e nomeado como ZU4 no esquemático.
Outros modelos de Arduino utilizam processadores diferentes. Por exemplo, existem
versões do Arduino Nano e Duemilanove que utilizam o ATmega168, que
basicamente é um componente idêntico ao ATmega328, porém com menos
memória. O Arduino MEGA 2560 utiliza o o ATmega2560, que possui mais pinos e
mais memória do que o ATmega328. O Arduino Leonardo utiliza o processador
ATmega32U4, que possui características semalhantes ao ATmega328, porém ele
possui interface USB embutida, resultando em uma placa com apenas um
processador (porém essa versão acabou não se tornando muito popular). Por fim,
existem ainda versões de Arduino que utlilizam processadores ARM, como é o caso
do Arduino DUE (AT91SAM3X8E), e ainda outras plataformas como o Intel Galileo,
que utiliza um processador Intel (Intel® Quark SoC X1000).
O ATmega328 é o "cérebro" do Arduino UNO e, resumidamente, podemos dizer que
ele tem três funções:
Processador ATmega328
Conector programação
Este conector, assim como no processador USB, é usado para a programação do primeiro software
feito ainda na fábrica do Arduino (este software tem o nome de bootloader).
Botão de reset
O botão é nomeado como RESET no esquemático. Quando pressionado, o botão fecha o contato
dos pinos 1 e 2 com os pinos 3 e 4, ligando o pino de reset do processador diretamente ao GND.
Isso faz com que haja um nível lógico baixo neste pino, o que reseta o processador.
Estes são os conectores utilizados para plugar os shields ao Arduino. Eles são
ligados diretamente aos pinos de I/O do processador, e também às tensões de
alimentação 5V, VIN, 3,3V e GND.
Note que no esquemático, todos os sinais com o mesmo nome estão interligados,
independente de haver uma conexão física entre os mesmos. Por exemplo, os dois
ramos nomeados como AD5/SCL estão ligados eletricamente, mesmo parecendo
haver uma ponta "solta" no conector (veja imagem do esquemático completo do
bloco), isso também acontece com os sinais de 3,3V, RESET, GND e todos os
outros.
Tente fazer a correspondência entre os conectores representados no esquemático e
os conectores da placa. Veja que eles são nomeados como POWER, IOH, AD e
IOL, e a legenda que aparece em verde indica qual é a numeração ou a função do
pino no Arduino. Além disso, há uma inscrição indicando qual é o tamanho e o
modelo do conector, por exemplo, a legenda "8x1F-H8.5" indica que se trata de um
conector com 8 pinos, uma coluna, tipo fêmea, e com altura de 8,5mm.
Alimentação
Vamos passar agora para o último bloco do esquemático, e ver como funciona a
parte de alimentação do Arduino UNO.
A figura abaixo mostra componentes presentes neste bloco:
Esquemático referente à alimentação do Arduino UNO
Jack de entrada
Este conector, nomeado como X1, é onde você conecta o plugue de
alimentação da fonte externa. É conveniente usar uma fonte externa para
alimentar o Arduino quando o mesmo não pode ficar conectado sempre na porta
USB do PC, quando há algum elemento na aplicação que precise ser alimentado
com uma tensão maior do que 5 Volts, ou quando o circuito exige uma corrente
maior do que os 500mA suportados pela porta USB do PC.
Infelizmente, não há uma padronização internacional para esse tipo de plugue (como
há para os conectores USB por exemplo), então não é difícil você se deparar com
uma fonte que não tem um conector adequado para se conectar ao Arduino. Por
esse motivo, nós inserimos na nossa versão (a Base Boarduino), um conector tipo
borne de parafuso. Dessa forma você pode usar qualquer fonte que tenha à mão,
mesmo que ela não tenha um plugue adequado. Nesse caso, basta cortar o plugue
da fonte, e parafusar os fios direto no borne.
Diodo de proteção
A corrente que chega pelo jack de entrada logo encontra o primeiro componente,
que se trata do diodo de proteção D1. Sua função é a de proteger o Arduino caso
uma fonte com polaridade invertida seja conectada acidentalmente no jack. Uma
fonte com polaridade invertida, nesse caso, seria um modelo com centro negativo.
Quando se conecta acidentalmente uma fonte com polaridade invertida em uma
placa eletrônica que não é protegida, isso causa a circulação de corrente no sentido
reverso, o que ocasiona a queima de vários componentes, destruindo a maioria dos
circuitos. No caso do Arduino, o diodo D1 evita que a corrente circule no sentido
contrário, protegendo a placa. Resumidamente, podemos dizer que o diodo funciona
como uma chave fechada para fontes com a polaridade correta, e como chave
aberta para fontes com polaridade invertida.
É importante notar que na situação em que uma fonte com polaridade invertida é
ligada ao o Arduino, o mesmo fica protegido, porém não funciona, sendo necessário
acertar a polaridade da fonte para que o funcionamento volte ao normal.
A figura abaixo ilustra o modo com que o diodo age para proteger o Arduino no caso
de uma ligação com fonte invertida.
Regulador 5V
O próximo componente do circuito que iremos analisar é o regulador de 5 Volts
nomeado como U1. Sua função é a de baixar a tensão da fonte (que pode ter um
valor entre 7 e 20 Volts) e estabilizá-la em 5 Volts, que é a tensão recomendada
para o funcionamento dos componentes do Arduino, como os dois processadores
por exemplo. Além disso, o regulador também funciona como um filtro, atenuando os
ruídos que possam estar presentes na tensão gerada pela fonte de alimentação.
Este regulador é chamado de regulador linear, e o meio que ele usa para baixar a
tensão da fonte é simplesmente dissipar o excesso de energia, jogando-a fora
como calor. Por esse motivo, ele apresenta uma eficiência baixa, e costuma
esquentar bastante em alguns casos. Se você alimentar o seu Arduino com uma
fonte de 12 Volts por exemplo, aproveitará apenas 40% da energia fornecida pela
fonte, sendo os outros 60% jogados fora na forma de calor. Isso acontece com
qualquer regulador linear, independente do fabricante e do modelo. Portanto, não se
assuste se esse componente começar a esquentar quando você usa o Arduino com
uma fonte externa, pois ele está lá para isso mesmo. Se a placa estiver bem
projetada, a temperatura ficará dentro dos limites tolerados pelo componente (mas
provavelmente ficará acima do limite tolerado pelo seu dedo, portanto tenha
cuidado).
Quanto mais se aumenta a tensão da fonte externa, menos eficiente se torna o
funcionamento do regulador linear. Usando uma fonte de 20V por exemplo, apenas
25% da energia é aproveitada, sendo 75% jogada fora na forma de calor. Dessa
forma, sempre que possível, utilize fontes de alimentação com valor reduzido, como
9 ou 7,5 Volts por exemplo.
No Arduino UNO, o componente utilizado para o regulador de 5 Volts é o NCP1117
fabricado pela ON Semiconductor, e ele usa dois capacitores para ajudá-lo nessa
tarefa, PC1 e PC2, ambos de 47uF. Estes capacitores são importantes para o bom
funcionamento do regulador. O PC1 ajuda a estabilizar a tensão de entrada
proveniente da fonte de alimentação, e também fornece a energia necessária para
suprir os eventuais picos de corrente que acontecem durante a utilização da placa.
O capacitor PC2 tem o mesmo papel de estabilização, porém na tensão da saída.
Além disso, este capacitor ainda exerce um importante papel na estabilidade do
regulador, devendo ser escolhido cuidadosamente de acordo com as instruções do
fabricante em termos de capacitância e de resistência em série (esta é uma
resistência parasita que todo capacitor tem, é chamada de ESR ou "equivalent
series resistance" em inglês). Uma falha na escolha do capacitor de saída pode
ocasionar oscilações indesejáveis no regulador.
Apesar da baixa eficiência, praticamente todas as versões do Arduino utilizam um
regulador linear, pois eles são fáceis de usar, baratos e confiáveis. Alguns modelos
utilizam o mesmo NCP1117, já outras versões utilizam chips diferentes. O Arduino
Duemilanove usa por exemplo o MC33269D-5.0, já o Arduino Nano utiliza o
UA78M05. Porém, a função e o funcionamento são sempre semelhantes. Ainda há
outras versões, como o Arduino Due, que não usa um regulador linear para gerar a
tensão de 5 Volts (baixe o esquemático no site do Arduino e tente descobrir as
diferenças. Dica: o CI utilizado é o IC2, modelo LM2734Y).
Circuito de chaveamento
Como nós já vimos anteriormente, o Arduino pode ser alimentado tanto por uma
fonte de alimentação externa, como diretamente pela porta USB do PC. Nos casos
em que o Arduino está conectado à porta USB, e ainda há uma fonte externa ligada
à ele, haveria um conflito entre as mesmas, já que ambas tentariam alimentar o
Arduino ao mesmo tempo. Isso poderia causar danos à fonte, à porta USB do PC e
também ao Arduino.
O circuito de chaveamento tem a função de resolver esse conflito. Ele desconecta
a alimentação proveniente da porta USB sempre que houver uma fonte de
alimentação conectada ao Arduino. Podemos dizer então que a fonte externa
sempre terá preferência para alimentar o conjunto. Esse processo é transparente ao
usuário, de modo que você pode conectar e desconectar a fonte de alimentação
mesmo com a placa em funcionamento (supondo que a USB tenha capacidade de
alimentar todo o conjunto).
Os componentes responsáveis por essa função são os resistores RN1A, RN1B, o
transistor T1 e o chip U5.
Vamos começar explicando o funcionamento do transistor T1 (o modelo é o
FDN340P fabricado pela Fairchild Semiconductor). Como o entendimento completo
deste componente envolve conceitos mais complexos como dopagem de silício e
junções PN, vamos tentar abstrair um pouco, e mostrá-lo de uma forma mais prática.
O transistor T1 faz parte de uma família de transistores conhecida
como MOSFET (neste caso é um MOSFET de canal P). Um MOSFET é um
dispositivo que possui três terminais, um deles é o terminal de comando (chamado
de porta ou gate), e os outros dois são terminais que conduzem corrente
(denominados dreno e fonte, ou drain e source respectivamente). Seu
funcionamento pode ser descrito como a de uma chave liga e desliga. Dessa forma
ele deixa passar, ou corta a corrente que passa pelos terminais de dreno e fonte
dependendo do comando que é enviado à ele. Resumidamente podemos dizer que:
Quando há apenas a tensão da USB presente, VIN é igual a zero, já que não há
fonte externa conectada. Nessa situação, a tensão no terminal é menor do que
tensão no terminal , fazendo com que a a saída do comparador permaneça em nível
lógico baixo. Esse nível lógico baixo é enviado diretamente ao terminal de comando
do MOSFET, fazendo com que o mesmo ligue e conduza a corrente proveniente da
porta USB. Isso permite que ela alimente todo o circuito (no esquemático, a corrente
proveniente da USB vem pelo sinal denominado como USBVCC que é originado
logo após passar pelo fusível F1, lembre-se que sinais com o mesmo nome são
sempre conectados entre si, mesmo que não haja ligação física no esquemático)..
Porém, quando uma fonte de alimentação de 12 Volts por exemplo é ligada ao
Arduino, haverá uma tensão de 6 Volts presente no terminal do comparador
(lembre-se do divisor resistivo por dois). Nessa situação, a tensão no terminal é
maior do que a tensão no terminal (que é sempre de 3,3V), o que faz com que a
saída do comparador permaneça em nível lógico alto. Esse nível lógico é alto é
enviado diretamente ao terminal de comando do MOSFET, fazendo com que o
mesmo desligue e impeça que a corrente da USB passe por ele, efetivamente
desligando a alimentação da porta USB. Portanto a corrente proveniente da fonte
externa passa a ter preferência, e é ela quem alimenta o Arduino.
Como a tensão da fonte é sempre dividida por dois na entrada do comparador, o
valor mínimo necessário para que ela tenha a capacidade de desligar o MOSFET é
de 6,6 Volts. Esse valor está abaixo do limite mínimo recomendado para
alimentação do Arduino com fonte externa (que é de 7 Volts), portanto a fonte
externa sempre terá preferência.
Ainda há outro componente presente no circuito de chaveamento, que é o capacitor
C1 de 100 nano Farad. No esquemático, ele está ligado a dois pinos que parecem
"soltos" logo acima do comparador U5A, porém estes pinos fazem parte do mesmo
componente U5.
Capacitor de desacoplamento C1
O C1 está ligado aos pinos de alimentação do amp-op é o nosso velho conhecido
capacitor de desacoplamento (reveja a seção Processador USB" para mais
detalhes).
LED D13
O próximo circuito que iremos analisar é o LED acionado pelo pino D13 do Arduino,
ele é nomeado com L no esquemático. Esse é o LED que pisca quando rodamos o
exemplo Blink. Na verdade, este circuito não faz parte do circuito de alimentação,
porém o inserimos nesta seção pois ele compartilha o mesmo componente U5 do
circuito de chaveamento.
Este LED tem um resistor RN2A de 1 kilo Ohm ligado em série com o mesmo para
limitar a sua corrente, e eles estão conectados diretamente na saída de outro amp-
op. Porém, apesar de haver dois amp-ops no esquemático (U5A e U5B), ambos
estão inseridos dentro do mesmo encapsulamento, ou seja, eles fazem parte do
mesmo componente (baixe o datasheet do LMV258 para ver mais detalhes).
Temos então que o terminal do amp-op está ligado no sinal SCK, que vem do pino
D13 do Arduino, e é este sinal que fará o acionamento do LED. O terminal do amp-
op está ligado diretamente à saída. Esta montagem do amp-op é chamada de
seguidor de tensão ou buffer. Na prática, ele não exerce nenhuma função lógica, já
que o LED acende toda vez que há um nível alto no pino 13 e apaga toda vez que
há um nível lógico baixo. Efetivamente é como se o LED estivesse ligado
diretamente à esse pino.
Mas então pra que usar o amp-op para acionar o LED?
O amp-op foi utilizado, porque o pino D13 não tem a função exclusiva de acender e
apagar o LED. Ele também é por exemplo, o pino de clock da comunicação SPI
(SCK). Se o LED fosse ligado diretamente, ele drenaria do pino D13 uma corrente
aproximada de 3 miliampéres enquanto estivesse aceso, acrescentando uma carga
extra. Isso poderia influenciar e prejudicar o uso do pino D13 em outras aplicações.
O amp-op, por sua vez, possui uma alta impedância nos seus pinos de entrada. Isso
quer dizer que a corrente consumida por eles é muito pequena (em torno de 250
nanoamperes). Dessa forma, ele praticamente não acrescenta carga extra ao pino
D13 do Arduino, eliminando a influência do LED. Resumindo tudo, você drena do
pino uma corrente de apenas 250 nanoamperes para acionar uma carga de 3
miliampéres (12000 vezes menos).
O amp-op não é o único circuito que pode ser usado para essa finalidade, também é
possível utilizar buffers ou transistores. Outra opção é o uso de LEDs de alto brilho,
que têm mais eficiência. Desse modo, aumenta-se o valor do resistor, diminuindo a
carga sobre o pino, o que torna desprezível a influência do LED.
O Arduino Nano não utiliza esse circuito – LED vai ligado diretamente no pino do
processador.
LED ON
Este é o último bloco que falta analisarmos, e é também o mais simples. Trata-se do
LED que sempre fica aceso enquanto o Arduino está ligado, ele é nomeado no
esquemático como ON.
O circuito tem dois resistores, RN4C e RN4D, ambos com 1 kilo Ohms e ligados em
paralelo. Efetivamente eles funcionam como um resistor único de 500 Ohms, e tem o
papel de limitar a corrente no LED.
Fiduciais
Os mais atentos podem dizer que ainda faltam componentes a serem explicados.
Eles são os três círculos que aparecem soltos logo ao lado do conector POWER no
esquemático original. A figura abaixo mostra onde eles estão.