Power
O Arduino Leonardo pode ser alimentado através da ligação micro USB ou com uma fonte de alimentação externa. A fonte de alimentação é seleccionada automaticamente.
A energia externa (não USB) pode vir de um adaptador AC para DC (wall-wart) ou bateria. O adaptador pode ser ligado ligando uma ficha de 2,1mm de centro positivo na tomada de alimentação da placa. As pistas de uma bateria podem ser inseridas nos cabeçalhos dos pinos Gnd e Vin do conector POWER.
Os pinos de alimentação são os seguintes:
- VIN. A tensão de entrada para a placa Arduino quando está a utilizar uma fonte de alimentação externa (em oposição a 5 volts da ligação USB ou outra fonte de alimentação regulada). Você pode fornecer tensão através deste pino, ou, se fornecer tensão através da tomada de alimentação, acedê-la através deste pino.
- 5V. A fonte de alimentação regulada utilizada para alimentar o microcontrolador e outros componentes da placa. Esta pode vir do VIN através de um regulador de bordo, ou ser fornecida por USB ou outra fonte de 5V regulada.
- 3V3. Uma alimentação de 3,3 volts gerada pelo regulador de bordo. O consumo máximo de corrente é de 50 mA.
- GND. Pinos de terra.
- IOREF. A tensão na qual os pinos i/o da placa estão funcionando (ou seja, VCC para a placa). Isto é 5V no Leonardo.
Memória
O ATmega32u4 tem 32 KB (com 4 KB usados para o bootloader). Também tem 2,5 KB de SRAM e 1 KB de EEPROM (que pode ser lido e escrito com a biblioteca da EEPROM).
Entrada e Saída
Cada um dos 20 pinos i/o digitais no Leonardo pode ser usado como entrada ou saída, usando as funçõespinMode(), digitalWrite(), e digitalRead(). Eles operam a 5 volts. Cada pino pode fornecer ou receber um máximo de 40 mA e tem um resistor interno de pull-up (desconectado por padrão) de 20-50 kOhms. Além disso, alguns pinos têm funções especializadas:
- Série: 0 (RX) e 1 (TX). Usado para receber (RX) e transmitir (TX) dados seriais TTL usando a capacidade serial de hardwareATmega32U4. Note que no Leonardo, a classe Serial refere-se à comunicação USB (CDC); para serial TTL nos pinos 0 e 1, use a classe Serial1.
- TWI: 2 (SDA) e 3 (SCL). Suporte à comunicação TWI usando a biblioteca Wire.
- Interrupções externas: 3 (interrupção 0), 2 (interrupção 1), 0 (interrupção 2), 1 (interrupção 3) e 7 (interrupção 4). Estes pinos podem ser configurados para acionar uma interrupção em um valor baixo, uma borda ascendente ou descendente, ou uma mudança no valor. Veja a função attachInterrupt() para detalhes.
- PWM: 3, 5, 6, 9, 10, 11, e 13. Forneça uma saída PWM de 8 bits com a função analogWrite().
- SPI: no cabeçalho do ICSP. Estes pinos suportam a comunicação SPI usando a biblioteca SPI. Note que os pinos SPI não estão conectados a nenhum dos pinos de E/S digitais como estão no Uno, Eles estão disponíveis apenas no conector ICSP. Isto significa que se você tem uma blindagem que usa SPI, mas NÃO tem um conector ICSP de 6 pinos que se conecta ao cabeçalho ICSP de 6 pinos do Leonardo, a blindagem não funcionará.
- LED: 13. Há um LED embutido conectado ao pino digital 13. Quando o pino tem um valor ALTO, o LED está aceso, quando o pino está BAIXO, está desligado.
- Entradas Analógicas: A0-A5, A6 – A11 (nos pinos digitais 4, 6, 8, 9, 10, e 12). O Leonardo tem 12 entradas analógicas, rotuladas de A0 a A11, todas elas também podem ser usadas como i/o digital. Os pinos A0-A5 aparecem nos mesmos locais que no Uno; as entradas A6-A11 estão nos pinos digitais i/o 4, 6, 8, 9, 10, e 12 respectivamente. Cada entrada analógica fornece 10 bits de resolução (i.e. 1024 valores diferentes). Por padrão as entradas analógicas medem de terra a 5 volts, embora seja possível alterar o extremo superior do seu intervalo utilizando o pino AREF e a função analogReference().
Existem dois outros pinos na placa:
- AREF. Tensão de referência para as entradas analógicas. Utilizado com analogReference().
- Reset. Traga esta linha BAIXO para reiniciar o microcontrolador. Tipicamente usado para adicionar um botão reset aos escudos que bloqueiam o da placa.
Veja também o mapeamento entre os pinos Arduino e as portas ATmega32u4.
Comunicação
O Leonardo tem uma série de facilidades para comunicação com um computador, outro Arduino, ou outros microcontroladores. O ATmega32U4 fornece comunicação serial UART TTL (5V), que está disponível nos pinos digitais 0 (RX) e 1 (TX). O 32U4 também permite a comunicação serial (CDC) através de USB e aparece como uma porta com virtual para software no computador. O chip também funciona como um dispositivo USB 2.0 de velocidade total, usando drivers COM USB padrão. No Windows, um arquivo .inf é necessário. O software Arduino inclui um monitor de série que permite o envio de dados textuais simples de e para a placa Arduino. Os LEDs RX e TX na placa piscarão quando os dados estão a ser transmitidos através da ligação USB para o computador (mas não para comunicação série nos pinos 0 e 1). Uma biblioteca SoftwareSerial permite a comunicação em série em qualquer um dos pinos digitais do Leonardo. O ATmega32U4 também suporta comunicação I2C (TWI) e SPI. O software Arduino inclui uma biblioteca Wire para simplificar o uso do barramento I2C; veja a documentação para detalhes. Para comunicação SPI, use a biblioteca SPI. O Leonardo aparece como um teclado e mouse genérico, e pode ser programado para controlar esses dispositivos de entrada usando as classes Teclado e Rato.
Programação
O Leonardo pode ser programado com o software Arduino (download). Seleccione “Arduino Leonardo a partir do menu Ferramentas >Placa (de acordo com o microcontrolador da sua placa). Para detalhes, veja as referências e tutoriais. O ATmega32U4 no Arduino Leonardo vem pré-gravado com um bootloader que lhe permite carregar um novo código sem o uso de um programador de hardware externo. Ele se comunica usando o protocolo AVR109. Também pode contornar o bootloader e programar o microcontrolador através do cabeçalho ICSP (In-Circuit Serial Programming) usando o Arduino ISP ou similar; veja estas instruções para detalhes.
Automatic (Software) Reset and Bootloader Initiation
Rather than requiring a physical press of the reset button before an upload, the Leonardo is designed in a way that allows it to be reset by software running on a connected computer. O reset é acionado quando a porta serial / COM virtual do Leonardo (CDC) é aberta a 1200 baud e depois fechada. Quando isso acontece, o processador é reinicializado, quebrando a conexão USB com o computador (o que significa que a porta serial / COM virtual desaparecerá). Depois que o processador é reinicializado, o bootloader inicia, permanecendo ativo por cerca de 8 segundos. O bootloader também pode ser iniciado ao pressionar o botão reset no Leonardo. Note que quando a placa for ligada pela primeira vez, ela irá saltar diretamente para o esboço do usuário, se presente, ao invés de iniciar o bootloader.
Por causa da forma como o Leonardo lida com o reset é melhor deixar o software Arduino tentar iniciar o reset antes de fazer o upload, especialmente se você tem o hábito de pressionar o botão reset antes de fazer o upload em outras placas. Se o software não conseguir reiniciar a placa você pode sempre iniciar o bootloader pressionando o botão de reset na placa.
Protecção de sobrecorrente USB
O Leonardo tem um polifusível de reset que protege as portas USB do seu computador de curtos e sobrecorrentes. Embora a maioria dos computadores forneça sua própria proteção interna, o fusível fornece uma camada extra de proteção. Se mais de 500 mA for aplicado à porta USB, o fusível quebrará automaticamente a conexão até que o curto ou a sobrecarga seja removida.
Características físicas
O comprimento e largura máximos da placa de circuito impresso Leonardo são de 2,7 e 2,1 polegadas respectivamente, com o conector USB e o conector de alimentação estendendo-se para além da dimensão anterior. Quatro orifícios para parafusos permitem que a placa seja fixada a uma superfície ou caixa. Note que a distância entre os pinos digitais 7 e 8 é de 160 milímetros (0,16″), nem mesmo um múltiplo do espaçamento de 100 milímetros dos outros pinos.