Arduino Leonardo

Este post faz parte da série Placas Arduino. Leia também os outros posts da série:

A  Arduino Leonardo é mais uma placa que faz parte do portfólio de placas Arduino, que são fáceis de usar, possui interface intuitiva e é utilizada principalmente por iniciantes, hobbyistas ou para testes ou para fins educacionais. Ela difere de placas Arduino anteriores porque possui um microcontrolador  ATMEL de 8-bits com o periférico USB, o que elimina o uso de um segundo microcontrolador com USB para programação. Além disso, essa USB pode ser usada para controle do PC, como será apresentado nesse artigo.

 

 

Alimentação

 

A placa Arduino Leonardo, assim como a Arduino UNO, pode ser alimentada tanto pela USB, quanto por uma fonte externa:

 

Figura 1 - Alimentação da placa Arduino Leonardo

 

 

Como na Arduino UNO, a alimentação externa é feita através do conector Jack com positivo no centro, onde o valor de tensão da fonte externa deve estar entre os limites 6V. a 20V., porém se alimentada com uma tensão abaixo de 7V., a tensão de funcionamento da placa, que no Arduino Leonardo é de 5V, pode ficar instável e quando alimentada com tensão acima de 12V, o regulador de tensão da placa pode sobreaquecer e danificar a placa. Dessa forma, é recomendado para tensões de fonte externa valores de 7V. a 12V.

 

O circuito regulador para entrada externa é idêntico ao da Arduino Uno e é exibido a seguir. Nota-se que o CI responsável pela regulação de tensão é o OnSemi NCP1117:

 

Figura 2 - O circuito regulador para entrada externa

 

Quando a Arduino Leonardo é alimentada pela USB a tensão da porta USB não precisa ser estabilizada pelo regulador de tensão, dessa forma a placa é alimentada diretamente pela USB. O circuito da USB apresenta alguns componentes que protegem a porta USB do computador em caso de alguma anormalidade. Na figura abaixo é exibido o circuito de proteção da USB da placa Arduino Leonardo:

 

 

Figura 3 - Circuito de proteção da USB da placa Arduino Leonardo

 

Os dois varístores (Z1 e Z2) podem suportar picos elevados de SURGE e energias elevadas de transientes. Seria preferível se, ao invés de varístores, fossem conectados diodos supressores de ESD que tem capacitância bem baixa, já que estão ligados a pinos rápidos de comunicação, mas o circuito funciona bem mesmo assim. O resistores de 22 Ohms (RN3A e RN3D), limitam uma corrente resultante de alguma descarga elétrica eventual de um usuário em contato com o conector USB, resultante de transientes rápidos, protegendo, dessa forma, os pinos do microcontrolador.

 

O fusível resetável (F1) de 500mA. impede que a porta USB do computador queime, caso ocorra algum problema de projeto, uma falha no circuito e ultrapasse a corrente de 500 mA. quando a  placa estiver conectada ao computador. O ferrite L2 foi incluído no circuito para que ruídos da USB externa não entrem no circuito da placa Arduino, através do GND, também para fins de compatibilidade eletromagnética.

 

A Arduino Leonardo, assim como a Arduino Uno, possui um circuito para seleção da fonte de alimentação automaticamente entre a tensão da USB e a tensão da fonte externa. Esse circuito é apresentado na figura abaixo. Caso haja uma tensão no conector DC e a USB é conectada, a tensão de 5V será proveniente da fonte externa e USB servirá apenas para comunicação com o computador:

 

Figura 4 - Circuito de seleção de fonte

 

Como pode-se observar na figura anterior, existe na placa um regulador de 3,3V. (U2- Texas Instruments LP2985). Este componente é responsável por fornecer uma tensão contínua de 3,3V para alimentação de circuitos ou shields que necessitem desse valor de tensão. Deve-se ficar atento ao limite máximo do valor da corrente que este regulador pode fornecer, que no caso é de 50 mA.

 

A seguir são exibidos os conectores de alimentação para conexão de shields e módulos na placa Arduino Leonardo:

 

Figura 5 - Conectores de alimentação

 

Note que essa pinagem é idêntica a Arduino Uno, e possuem as seguintes características:

 

IOREF - Fornece uma tensão de referência para que shields possam selecionar o tipo de interface apropriada, dessa forma shields que funcionam com as placas Arduino que são alimentadas com 3,3V. podem se adaptar para ser utilizados em 5V. e vice-versa.

 

RESET - pino conectado a pino de RESET do microcontrolador. Pode ser utilizado para um reset externo da placa Arduino.

 

3,3 V   – Fornece tensão de 3,3V. para alimentação de shield e módulos externos. Corrente máxima de 50 mA.

 

5 V - Fornece tensão de 5 V para alimentação de shields e circuitos externos.

 

GND  - pinos de referência, terra.

 

VIN - pino para alimentar a placa através de shield ou bateria externa. Quando a placa é alimentada através do conector Jack, a tensão da fonte estará nesse pino.

 

 

 

Comunicação USB

 

A placa Arduino Leonardo não possui circuito para interface USB, como a Arduino Uno. A Comunicação USB é feita pelo mesmo microcontrolador que executa o sketch compilado. O microcontrolador Atmega32u4, que é o protagonista dessa placa, possui comunicação USB integrada, assim não há a necessidade de um conversor USB serial, como ocorre em outras placas Arduino. Este recurso reduz o custo da placa. A USB pode operar como CDC device. Isso permite emular um teclado, mouse, joystick ou qualquer dispositivo CDC padrão de mercado. Observe que essa USB é device e é 2.0, ou seja, pode atingir velocidade de comunicação de até 12 Mbit/s.

 

 

Microcontrolador

 

O microcontrolador utilizado na Arduino Leonardo é o ATmega32U4, um microcontrolador de 8 bits da família AVR com arquitetura RISC avançada. Possui encapsulamento TQFP, que apenas permite a montagem em superfície, ou seja, é um componente SMD. Possui 32 KB de memória Flash (porém utiliza 4KB para o bootloader), 2,5 KB de SRAM e 1 KB de EEPROM.

 

 

Pinos de Entradas e Saídas

 

A placa Arduino Leonardo possui pinos de entradas e saídas digitais, assim como pinos para saída PWM e pinos para entradas analógicas. Possui pinagem no padrão Arduino UNO REV3, conforme exibido na figura a seguir, dessa forma os shields para Arduino UNO também são compatíveis com a Arduino Leonardo.

 

A pinagem exibida acima é bem parecida com a da Arduino UNO, porém a Arduino Leonardo possui algumas características especificas que a tornam mais poderosa que que a Arduino UNO. Todos os pinos podem ser usados como entradas ou saídas digitais, inclusive os que estão dispostos para entradas analógicas. Estes Pinos operam em 5 V, onde cada pino pode fornecer ou receber uma corrente máxima de 40mA. Cada pino possui resistor de pull-up interno que pode ser habilitado por software. Esse resistor tem o valor entre 20 - 50 KOhm. A imagem a seguir, retirado do site Pighixxx deixa claro todas as funcionalidades de todos os pinos, de forma visual (fácil de consultar).

 

A seguir são apresentadas outras funções que podem ser utilizadas nesses pinos:

 

Comunicação Serial: pinos 0 (RX) e 1 (TX). Esses pinos são usados para enviar e receber dados através de comunicação serial. É interessante notar que para usar esses pinos deve-se usar a classe Serial1, pois a clase Serial refere-se à comunicação USB (CDC).

 

Comunicação TWI (I2C): pinos 2 (SDA) and 3 (SCL) permitem a comunicação TWI (I2C da Atmel) usando a biblioteca Wire.

 

Interrupção externa: Pinos 3 (interrupt 0), 2 (interrupt 1), 0 (interrupt 2), 1 (interrupt 3) e 7 (interrupt 4). Esse pinos podem ser configurados para disparar uma interrupção quando ocorrer uma mudança no estado, uma borda de descida ou subida, ou um nível baixo. Para mais detalhes verifique a função attachInterrupt().

 

Saídas PWM: pinos 3, 5, 6, 9, 10, 11 e 13. Podem ser utilizados como saidas PWM de 8 bits de resolução através da função analogWrite().

 

Comunicação SPI: apenas está disponível no conector ICSP e pode ser utilizado com a biblioteca SPI.

 

Entradas Analógicas: Para interfacear com o mundo analógico, a Arduino Leonardo possui 12 entradas analógicas. As entradas conhecidas para esse propósito: A0-A5 e mais 6 entradas que estão no lado dos pinos digitais, que são denominadas  A6 a A11 e estão respectivamente nos pinos digitais 4, 6, 8, 9, 10 e 12 O conversor AD do ATmega32u4 possui resolução de 10 bits e sua referência está ligada internamente a a 5V, ou seja, quando a entrada estiver com 5V o valor da conversão analógica digital será 1023. O valor da referência pode ser mudado através do pino AREF.

 

A figura a seguir exibe a relação entre os pinos do microcontrolador ATMEGA32u4 e a pinagem do Arduino Leonardo:

 

 

 

Conclusão

 

Além de ter mais entradas analógicas que o Arduino UNO (12 contra 6), a placa do Arduino LEONARDO possui também mais pinos que podem ser utilizados que como PWM do que a Arduino UNO (7 da LEONARDO contra 6 da Arduino UNO). Ambas as placas possuem microcontroladores de poder de processamento similares, ATMEL de 8 bits e capaz de trabalhar a 16 MHz. No entanto, a LEONARDO possui USB device 2.0, que pode até se comportar como device CDC.

 

A lista de materiais mais barata faz com que essa placa possa ser vendida por um preço menor que a UNO. Nos Estados Unidos, no site da Sparkfun, o preços são de US$ 25,00 para a LEONARDO e US$ 30,00 para a UNO.  Em breve os preços da Leonardo vão ser mais baratos que os preços da UNO no mundo todo.

 

 

Saiba mais

 

Arduino - Primeiros Passos

Arduino UNO

Criando suas próprias bibliotecas para Arduino

 

 

 

Referências

 

Artigo Arduino Uno

Arduino Leonardo

Guia para o Arduino Leonardo

Massimo introduz o Leonardo

site LCK-LED

 

Video: Massimo Banzi apresentando a Arduino Leonardo:

 

 

 

Outros artigos da série

<< Arduino UNOArduino MEGA 2560 >>
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Fábio Souza
Engenheiro, especialista em sistemas embarcados. Hoje é diretor de operações do portal Embarcados, onde trabalha para levar conteúdos de eletrônica, sistemas embarcados e IoT para o Brasil. Também atua no ensino eletrônica e programação. É entusiastas do movimento maker, da cultura DIY e do compartilhamento de conhecimento, publica diversos artigos sobre eletrônica e projetos open hardware. Com iniciativas como o projeto Franzininho e projetos na área de educação, leva a cultura maker para o Brasil capacitando e incentivando professores e alunos a usarem tecnologia em suas vidas. Participou da residência hacker 2018 no Red Bull Basement.

17
Deixe um comentário

avatar
 
15 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Renato Augusto TavaresFabio_Souza_EmbarcadosCarlos Alberto Da Costa Pinto NetoArduino LDR - Controle de lâmpada com LDR - EmbarcadosAcionamento de uma lâmpada com Arduino Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Carlos Alberto Da Costa Pinto Neto
Visitante
Carlos Alberto Neto

Este esta tambem com imagens faltando.

Fabio_Souza_Embarcados
Visitante
Fabio_Souza_Embarcados

Olá Carlos, estou providenciando as imagens. Obrigado por reportar.

Renato Augusto Tavares
Visitante
Renato Tavares

Ainda aguardando as imagens....

trackback

[…] Arduino Leonardo […]

trackback

[…] Arduino Leonardo […]

trackback

[…] Arduino Leonardo […]

trackback

[…] Arduino Leonardo […]

trackback

[…] Arduino Leonardo […]

trackback

[…] Arduino Leonardo […]

trackback

[…] Arduino Leonardo […]

trackback

[…] Arduino Leonardo […]

trackback

[…] é o mesmo presente na placa Arduino Leonardo, já apresentada no Embarcados pelo Fábio Souza [9]. O grande destaque desse microcontrolador é a presença de USB nativo, que é um “plus” ao […]