You are on page 1of 7

Arduino: Controlando leds pelo teclado

Ol pessoal, nesse post irei mostrar um simples e pequeno projeto utilizando arduino e leds coloridos. O objetivo desse projeto e fazer o controle (ligar/desligar) vrios leds conectados ao arduino atravs do teclado do computador . Para isso vou dividir o post em 3 partes: 1 Parte: explicar um cdigo de exemplo que acompanha a IDE do Arduino, vou utilizar apenas um led. 2 Parte: acrescentar algumas linhas de cdigo para o controle desse led atravs do teclado. 3 Parte: montar um projeto usando 5 leds controlados pelo teclado. Inicio do projeto (1 Parte) Na IDE do Arduino possvel encontrar vrios exemplos de cdigos prontos para uso dos mais variados componentes, desde leds, botes, sensores, servo motores e outros mais avanados como usar arduino na internet. Para isso basta voc acessar o menu: File > Examples e ento escolher um de seu interesse. Nesse caso utilizaremos o exemplo chamado Digital > Blink

Depois de selecionado o exemplo voc ver o cdigo responsvel por ligar e desligar um led conectado ao pino 13 do arduino. Esse cdigo est todo comentado e possui referencias do seu autor. Abaixo est o mesmo cdigo comentado e explicado em portugus e sem os comentrios do autor. 01 int ledPin = 13; //seta o pino 13 do arduino para ligar o led 02 03 void setup() { 04 pinMode(ledPin, OUTPUT); //inicializa o pino digital 13 como saida 05 } 06 07 void loop() //loop (infinito) para executar as operacoes 08 { 09 digitalWrite(ledPin, HIGH); // seta o pino 13 como LIGADO 10 delay(1000); // espera 1 segundo (com o led ligado) 11 digitalWrite(ledPin, LOW); // seta o pino 13 como DESLIGADO delay(1000); // espera 1 segundo (com o led 12 desligado) } // faz o loop (volta para o inicio do 13 loop) O cdigo simples de entender. Vamos para o prximo passo, conectar o led na protobord e no arduino. Siga o esquema abaixo para montar seu circuito. Caso no

consiga

visualizar

direito

imagem,

click

sobre

ela.

Repare que o jumper vermelho est ligado ao pino digital 13 do arduino e ligado ao pino corrente (pino maior) do led verde, j o jumper azul est ligado ao pino GND (terra) do arduino e ligado ao pino terra do led (pino menor). Agora basta carregar o cdigo para o Arduino e ver o led piscar como no vdeo abaixo: Com isso chegamos ao final da primeira parte. Acrescentando algumas linhas ao cdigo de exemplo (2 Parte). Vamos utilizar o mesmo cdigo para fazer a segunda parte do projeto, agora acrescentaremos algumas linhas para ler as teclas e fazer as condies necessrias para controlar o led. As linhas de cdigo que eu comentei so as acrescentadas, veja: 01 int ledPin = 02 void setup() 03 04 05 06 07 08 09 } 10 13; {

// inicializamos a porta serial onde vamos escrever //os dados que serao lidos pela funo Serial.read() Serial.begin(9600); pinMode(ledPin, OUTPUT);

11 void loop() 12 { 13 //inicializa uma variavel do tipo char chamada tecla 14 char tecla; 15 16 // armazena em "tecla" o retorno da funo read() 17 //essa funo l um valor que escrito na porta serial

18 19 20 21 22 23 24 25 26 27

tecla = Serial.read(); //verfica se a tecla digitada igual a l (liga) //se for igual entra na condiao e liga o led if(tecla == 'l') { digitalWrite(ledPin, HIGH); }

else // se nao 28 29 //verfica se a tecla digitada igual a d (desliga) 30 //se for igual entra na condio e desliga o led 31 if(tecla == 'd') 32 33 { 34 digitalWrite(ledPin, LOW); 35 } 36 37 delay(1000); 38 } Veja o resultado: Repare que logo depois da escolha da tecla eu pressiono ENTER, isso faz com que a tecla seja escrita na porta serial e ento lida pela funo Serial.read(); Fim da 2 Parte. Projeto final, controlando 5 leds atraves do teclado (3 Parte). Bom estamos quase alcanando nosso objetivo, at aqui foi tudo muito simples. Acredito que voce tenha entendido os cdigos e a montagem do circuito na protoboard. Veremos ento o mesmo projeto s que agora um pouco maior (nem tanto rsrsrs), Iniciaremos com a montagem do circuito:

Repare que existe dois leds amarelos, isso aconteceu pois o software que eu usei para montar o circuito no tinha a cor laranja ento imagine que o led amarelo que esta ao lado do azul, seja da cor laranja. Outra diferena nesse esquema que agora estamos usando resistores para regular a tenso que vem das portas digitais para os leds, nos exemplos onde usamos apenas um led conectado ao pino 13 no era necessario pois nesse pino ja existem um resistor interno que vem por padro, nesse esquema prefiri utilizar mais um resistor externo para o pino 13 apenas por questes de padronizao, mas para esse pino no se faz necessario. Agora vamos ao cdigo do projeto: Penso que as explicaes ja feitas sero suficientes para o entendimento do cdigo abaixo. No ha nada de novo a no ser pelo fato da presena de mais 4 leds. Veja: 01 int ledPin13 = 02 int ledPin11 = 03 int ledPin9 = 04 int ledPin7 05 int ledPin5 06 07 void setup() { 08 09 Serial.begin(9600); 10 = = 13; 11; 9; 7; 5;

11 12 13 14 15 16 } 17

pinMode(ledPin13, OUTPUT); pinMode(ledPin11, OUTPUT); pinMode(ledPin9, OUTPUT); pinMode(ledPin7, OUTPUT); pinMode(ledPin5, OUTPUT);

18 void loop() 19 { 20 char tecla; 21 tecla = Serial.read(); 22 //se pressionado "g" liga o led verde (green) 23 if(tecla == 'g') 24 { 25 digitalWrite(ledPin13, HIGH); 26 } 27 else 28 //Se pressionado "b" liga o led azul (blue) 29 if(tecla == 'b') 30 { 31 digitalWrite(ledPin11, HIGH); 32 } 33 else 34 //S pressionado "o" liga o led laranja (orange) 35 if(tecla == 'o') 36 { 37 digitalWrite(ledPin9, HIGH); 38 } 39 else 40 //Se pressionado "y" liga o led amarelo (yellow) 41 if(tecla == 'y') 42 { 43 digitalWrite(ledPin7, HIGH); 44 } 45 else 46 //Se pressionado "w" liga o led branco (white) 47 if(tecla == 'w') 48 { 49 digitalWrite(ledPin5, HIGH); 50 } 51 else 52 53 //Se pressionado "d" desliga todos os leds 54 if(tecla == 'd') 55 { 56 digitalWrite(ledPin13, LOW); 57 digitalWrite(ledPin11, LOW); 58 digitalWrite(ledPin9, LOW); 59 digitalWrite(ledPin7, LOW); 60 digitalWrite(ledPin5, LOW); 61 } 62 delay(1000); 63 }

Confira o vdeo do projeto: Agora voc deve estar se perguntando: Mas no que isso pode contribuir? Ou O que esse projeto tem de to especial? Esse projeto realmente no contribui com nada se voc estiver pensando em leds. Mas e se fossem lmpadas no lugar de leds?? E se cada tecla que voc pressionasse ligasse um lmpada ou qualquer outro aparelho eletronico da sua casa? Bem cabe a voc usar a imaginao e pensar nas diferentes formas de aplicao de simples projetos como esse. At a prxima!
A DV ER TISE ME NT

You might also like