Arduino Leonardo

Arduino Leonardo

O Arduino Leonardo é uma placa com microcontrolador ATmega32u4 e comunicação USB embutida no microcontrolador. Possui 20 pinos de entrada/saida, dos quais 7 podem ser usados como saídas PWM (Portas 3,5,6,9,10,11 e 13) e 12 como portas analógicas (A0 – A5, mais os pinos 4,6,8,9,10 e 12, A6 a A11, respectivamente). Tem 32 Kb de memória, sendo que 4 são usados pelo bootloader.

Arduino Leonardo R3

É uma placa muito parecida com o Arduino Uno (o tamanho (aprox. 70 x 54mm) e as furações são as mesmas), principalmente na disposição dos conectores na placa. Na parte superior, podemos ver as portas digitais de 0 a 13,e os pinos GND, AREF, SDA e SCL, na parte superior esquerda. Abaixo, os conectores reset, 5v, gnd, 3.3v, etc, e as portas analógicas de 0 a 5 :

Arduino Leonardo

No lado esquerdo da placa, temos o botão de reset e também os conectores de força (7 à 12 V recomendados), além do conector USB, que diferentemente do Arduino UNO, tem o padrão micro-USB e usa o cabo de conexão mostrado abaixo. Nesse lado da placa também ficam os leds Tx, RX, ON (Ligado), e o led ligado à porta 13.

Conector Micro-USB

A instalação do Arduino Leonardo é feita de maneira praticamente automática no computador. Nos nossos testes, não foram necessários drivers específicos, e a placa foi reconhecida normalmente. Foram instalados 3 dispositivos : Arduino Leonardo na porta serial COM13, USB Composite Device e USB Input Device :

Arduino Leonardo - USB Drivers

Para acessar o Arduino Leonardo à partir da IDE, não houve alteração, basta selecionar, no menu ferramentas, o Arduino Leonardo, e na porta serial a porta detectada pelo computador :

Arduino IDE - Leonardo

Uma das características do Arduino Leonardo é que o chip de comunicação USB já vem embutido no microcontrolador ATmega32u4, eliminando a necessidade de um chip controlador separadamente. Isso também faz com que o Arduino Leonardo possa ser configurado, no computador, como um dispositivo de entrada, como um mouse ou um teclado.

E para mostrar essa funcionalidade, vamos montar um circuito para enviar uma string para o computador quando um botão for pressionado, “imprimindo” essa string no Bloco de Notas ou em outro programa qualquer. A chave para o disparo do envio da string é um push button ligado à porta 3 do Arduino Leonardo.

Arduino Leonardo - Circuito push-button tecladoO programa não usa nenhuma biblioteca adicional para enviar a string ao computador, e os comandos são parecidos com os que usamos para enviar dados ao serial monitor. Lá, usamos Serial.print e Serial.println, por exemplo. Para o teclado, usamos os comandos Keyboard. print e Keyboard.println :

//Programa : Envio de string usando Arduino Leonardo
//Alteracoes : Adaptacoes : FILIPEFLOP
//
//Baseado no programa Keyboard Message test
//de Tom Igoe e Scott Fitzgeral

const int buttonPin = 3;          //Pino ligado ao push-button
int previousButtonState = HIGH;   //Variavel para checar o estado do botao

void setup() {
  //Define o pino do botao como entrada
  pinMode(buttonPin, INPUT);
  //Inicializa o teclado
  Keyboard.begin();
}

void loop() {
  //Le o valor do pushbutton
  int buttonState = digitalRead(buttonPin);
  //Verifica se o estado do botao foi alterado
  if ((buttonState != previousButtonState)
  //Se o botao for pressionado, imprime a mensagem
  && (buttonState == HIGH)) {
    Keyboard.println("FILIPEFLOP - Tudo para o seu projeto !");
  }
  //Salva o estado do botao para comparacao no proximo loop
  previousButtonState = buttonState;
}

Carregue o programa no Arduino Leonardo e, para testá-lo, abra o bloco de notas do seu computador. Pressione o botão do circuito e a string será enviada para o bloco de notas, como se tivesse sido digitada no teclado :

Arduino Leonardo - Teste notepad

O bloco de notas foi só um exemplo. O Arduino vai se comportar como se fosse um teclado normal, enviando caracteres para o Word, Excel, Powerpoint e qualquer outro programa que aceite entradas via teclado. As possibilidades para este tipo de projeto são imensas.

Gostou ? Conte-nos sua experiência com este post e visite nossa loja FILIPEFLOP !

12
Arduino Leonardo
6 votos, 4.83 classificação média (96% pontuação)

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável pelo departamento técnico da FILIPEFLOP.

Compartilhe este Post

20 Comentários

  1. Carlos Lima - 28 de abril de 2017

    Olá Filipe,
    SOU ARTISTA PLÁSTICO-ESCULTOR E DIRIJO A OFICINA DE ESCULTURA DO MUSEU DO INGÁ-NITEROI-RJ]
    TEM UM TRABALHO DE UMA ALUNA QUE RESOLVI USAR UMA PLACA “ARDUINO UNO R3″ PARA CONTROLAR UM MOTOR 12V CC COM UM PROGRAMA TIPO ELEVADOR (SOBE E DESCE) COM SENSORES TIPO INTERRUPTORES MICRO SWITCH >
    MINHA DUVIDA SERIA COMO RESETAR O PROGRAMA QUE PODE TER SIDO COLOCADO DE MANEIRA ERRADA E COLOCAR NOVAMENTE O MESMO PROGRAMA NA PLACA.
    O RESETE DEVE SER FEITO COM A PLACA LIGADA NO LEPTOP?..
    POR FAVOR ME ORIENTE!!!
    ATENCIOSAMENTE,
    CARLOS VAN DER LEY

  2. diego magalhaes - 19 de abril de 2017

    Caso eu precise somente gravar um programa ja feito, quais sao os caminhos a seguir.

  3. Alessandro - 23 de junho de 2016

    Pessoal, tive muita dificuldade em usar a placa pois os drivers para Windows 7-64bit não eram encontrados em um laptop HP.

    Só consegui que a placa funcionasse quando liguei em uma porta puramente USB2.0.

  4. José Antonio Teodoro - 10 de março de 2016

    Preciso da seguinte funcionalidade – Conectar vários “piezos” no arduino , de forma que ao golpeá-los, o comando seja como se estivesse teclando as letras do teclado do computador.È possivel com este modelo leonardo ?
    Agradeço antecipadamente .

  5. josé - 20 de setembro de 2015

    olá será que voçê poderia fazer um programa como o do exemplo de cima mas de envez de ser só com 1 botáo podia por 2 botões

  6. Claudio henrique - 5 de agosto de 2015

    Olá, qual drive você usa para configurar a placa?

  7. Rafael - 13 de abril de 2015

    Esse código funciona para o arduino uno?

  8. Kleber - 11 de outubro de 2014

    filipeflop…

    será que você poderia me ajudar uma duvida, estou com uma dificuldade em medir o fluxo de agua com um sensor de fluxo de 1/2 polegada.

    assim estamos usando um display onde deve marcar quanto de litro de agua esta passando pelo sensor, mas esta dando uma diferença na marcação porque nao sabemos em quanto deve estar vazao = contaPulso / ?; //Converte para L/min

    onde esta o ponto de interrogação é o problema a gente ja estamos testando muitas formas mais estamos meio que perdidos.

    pode ajudar?

  9. raphael cacioli - 28 de agosto de 2014

    esse Arduíno vou poder colocar um display e um modulo micro SD?
    aguardo resposta …

  10. Vitor - 12 de julho de 2014

    Como faço para configurar e usar as portas a6-a11 como entrada analogica??

  11. Conhecendo o Arduino Esplora | Blog FILIPEFLOP - 30 de junho de 2014

    […] de utilização da placa. O microprocessador utilizado é o ATmega32U4, o mesmo do Arduino Leonardo, e também pode funcionar com um teclado ou […]

  12. Daiane - 17 de abril de 2014

    Ola, gostaria de montar uma cabine de fotos e não estou conseguindo criar o botão de start.
    Por gentileza pode me ajudar?

  13. asda sdasda sd - 27 de fevereiro de 2014

    Por favor, voltagem não existe, a diferença de potencial é chamada de tensão.
    Volts é a unidade de medida.

Deixe uma resposta