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.
É 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 :
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.
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 :
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 :
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.
//Programa : Envio de string usando Arduino Leonardo //Alteracoes : Adaptacoes : MakerHero // //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("MakerHero - 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 :
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? Deixe seu comentário logo abaixo.
Olá boa tarde , por acaso como eu conseguiria controlar o loop do comando keyboarde-write…logo depois de enviar um código ascii.
Olá Rosimar,
Você poderia, por exemplo, utilizar o comando while, e acrescentar um condicional que seja atualizado após o envio do código. Dessa forma você terá controle do loop, transmitindo quantas vezes desejar, ou desde que determinada condição que você determinar seja cumprida.
Abraços!
Vinícius – Equipe MakerHero
Bom dia! Ate quantos motores de passo podem ser ligados no arduino Leonardo? Sou estudante de automação e tenho um projeto em mente com uso de dois motores Nema 23 de 8 kgf e um motor vibratorio. Podem me judar?
Moacir,
Você pode usar algum shield como o L293D, assim você consegue controlar 2 motores de passo.
Abraços!
Diogo – Equipe MakerHero
Reconhece tambem pelo Android Automaticamente a placa,obrigado desde ja!
uma dúvida: tem limite de quantos botões dá para colocar?
tipo, eu queria fazer uma réplica de um teclado comum de pc, algo em torno de uns 80 botões. cada botão iria emular o equivalente a uma tecla o teclado.
daria para fazer, ou o limite de botões é o de quantidade de contatos na placa?
Enio,
Exatamente isso,
O número de botões equivalem a quantidade de pinos disponíveis.
Att
Será que no início desse cód. não faltou um #include não??? Outra coisa, como faz para o Arduino enviar uma barra ao contrário “\”? Se colocamos um sinal destes no Keyboard.println dá erro na hora da compilação, se colocamos Keyboard.write(92) sai um “Ç”. Será que não é possível enviar uma barra inclinada para a esquerda “\”do Arduino para o PC?
Eduardo,
Você já tentou usar “\\” em vez de uma barra invertida só? A barra invertida é uma tecla de “escape”, então se usar ela duplicada, você escapa do escape haha! Assim o compilador converte para uma barra invertida só 😉
Abraços!
Diogo – Equipe MakerHero
porque algumas sketch nao funciona o controlador de jogo ???
Luan
Sugiro você levar sua dúvida, com o maior nível de detalhes possível, para o nosso fórum! Lá sempre tem como ajudar melhor 😀
Abraços!
Diogo – Equipe MakerHero
Excelente artigo. Ficou uma dúvida… Como fazer para o arduíno escolher um programa específico, que esteja aberto ou não, para fazer a inserção do texto? Grande abraço!
Olá William,
Acredito que o texto será inserido em qualquer editor de texto que você abrir.
Abraço!
Rosana – Equipe MakerHero
Minha intenção é que, uma vez pressionado o botão, o Arduino abra, digamos, Word ou o Chrome e, somente então, insira um texto. Já tenho um Arduino Leonardo e estou trabalhando num projeto que deverá se comportar dessa maneira, abrindo o navegador e indo a um site específico para, em seguida, fazer login, etc etc
Olá Wilian,
Já avaliou a possibilidade de usar uma Raspberry Pi (talvez a Raspberry Pi Zero W mesmo) para fazer o seu projeto?
Acho que uma Raspberry seja mais adequada para fazer seu projeto.
Abraço!
Rosana – Equipe MakerHero
Wilian, dá uma olhada neste cód que abre o youtube e chama um vídeo sozinho. Ah, no inicio do cód. você precisa colocar Keyboard.h entre sinal de menor que e maior que (por aqui não permite essa grafia).
#include Keyboard.h
void setup() {
Keyboard.begin();
delay(1000);
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press(‘r’);
delay(10);
Keyboard.releaseAll();
delay(200);
Keyboard.print(“chrome https://www.youtube.com/channel/UCb0Br0W2JqzNzPLCi_XmoEw?sub_confirmation=1“);
Keyboard.press(KEY_RETURN);
delay(10);
Keyboard.releaseAll();
delay(5000);
Keyboard.press(KEY_TAB);
delay(10);
Keyboard.releaseAll();
Keyboard.press(KEY_TAB);
delay(10);
Keyboard.releaseAll();
Keyboard.press(KEY_RETURN);
delay(10);
Keyboard.releaseAll();
delay(500);
Keyboard.press(KEY_LEFT_ALT);
delay(10);
Keyboard.press(KEY_F4);
delay(10);
Keyboard.releaseAll();
Keyboard.end();
}
void loop() {
}
Estou com uma placa esp8266-01 para comunicar o Arduino Leonardo no WI-FI, usei vários exemplos do Uno, código e esquema elétrico mas não tive sucesso… Alguém conseguiu comunicar, e pode dar uma dica do código e do esquema elétrico.
Ola boa noite estou com um projeto em andamento, já comprei os componentes na felipflop, tenho alguns conhecimentos em programação, mas preciso de uma programação especifica para o meu projeto.
Preciso de ajuda com o arduino Leonardo para esta programação, gostaria de saber qual o custo, para programar um arduino com uma programação especifica.
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
Caso eu precise somente gravar um programa ja feito, quais sao os caminhos a seguir.
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.
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 .
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
Olá, qual drive você usa para configurar a placa?
Boa tarde Claudio,
Você diz, para que ela seja reconhecida pelo Windows ?
Abraço
Adilson – Equipe MakerHero
Esse código funciona para o arduino uno?
Boa noite Rafael,
Não, as funções Keyboard. print e Keyboard.println funcionam apenas com o Leonardo.
Abraço.
Adilson – Equipe MakerHero
MakerHero…
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?
esse Arduíno vou poder colocar um display e um modulo micro SD?
aguardo resposta …
Boa tarde Raphael,
Pode sim, sem problemas.
abraço.
Adilson – Equipe MakerHero
Como faço para configurar e usar as portas a6-a11 como entrada analogica??
Boa noite,
No Arduino Uno você pode usar as portas 3, 5, 6, 9, 10 e 11 como saídas PWM.
Adilson – Equipe MakerHero
Ola, gostaria de montar uma cabine de fotos e não estou conseguindo criar o botão de start.
Por gentileza pode me ajudar?
Oi Daiane,
Pode nos dar mais detalhes do seu projeto ? Utiliza Arduino ?
Grato.
Adilson – Equipe MakerHero
Por favor, voltagem não existe, a diferença de potencial é chamada de tensão.
Volts é a unidade de medida.
Boa noite,
Agradecemos a sua contribuição.
Abraço !
Adilson – Equipe MakerHero