Opa galera, vou tentar contribuir aqui na rede com um tutorial básico, que talvez procedesse o Projeto Arduino nº 02: Fade, então, antes de tentarem fazer o que vou mostrar aqui, seria muito interessante que vocês brincassem com os tutoriais já existentes aqui na rede.

Projeto botão + led: ao apertar o botão você mudará o estado do led.

Itens requeridos:

  • Arduino
  • Um botão (ou algo do gênero)
  • Alguns jumpers.


UwomQ.jpg
Bem, vamos lá.

Qual vai ser a lógica disso?

A gente vai tar recebendo um sinal pelo Arduino, de acordo com o estado do botão. Se a gente aperta o botão ele acende, se aperta de novo, ele desliga.

Mãos na massa:

Vamos ligar um dos lados do botão com a saída de 5v do arduíno. Ligado na outra perna, em paralelo, teremos a conexão com o pino receptor e com um resistor que liga ao gnd (terra).
Esse resistor é chamado de pull-down, e serve pra tirar o ruido e não deixar com que o receptor receba sinal. Tente fazer sem isso e você vai ver que ele vai funcionar metade do tempo, na outra metade ele vai bugar!
Olha como vai ficar:
button.png
OBS: esse botão aí é assim: a conexão dos pontos do mesmo lado (esquerda, por exemplo) está sempre fechada (podendo passar corrente), ou seja, se apertamos ou não o botão, sempre vai ter conexão de cima para baixo e vice-e-versa. A diferença ocorre da direita para a esquerda e vice-e-versa, quando o botão não está pressionado a chave estará aberta, quando pressionado estará fechado (permitindo corrente). Meio ruim de explicar, desculpa qualquer coisa.


E olha o código ai:

//LIGA E DESLIGA UM LED, ATRAVÉZ DE UM BOTÃO
boolean estado; //"estado" vai armazenar o estado do botão
boolean estadoLed = 0; //estadoLed vai administrar o estado do Led, 0 é apagado, 1 aceso
int botao = 8;
int led = 13; //a gente atribui valores a essas variáveis,
//para uma leitura mais fácil e simplificada
void setup(){
    pinMode(botao,INPUT);   //O BOTAO ESTA RELACIONADO AO PINO 8,
// QUE SERÁ UM PINO DE ENTRADA  
pinMode(led,OUTPUT);  //O LED ESTÁ RELACIONADO AO PINO 13, QUE SERÁ UM PINO DE SAÍDA
  }
void loop(){
    estado = digitalRead(botao); //estado recebe o valor da corrente que passa pelo botão  
if(estado == HIGH) //IF SIGNIFICA SE, então se(estado==HIGH) ,
 //ele executará o que está dentro dos cochetes
{    
      estadoLed = !estadoLed // '!' quer dizer o contrário, então !estadoLed é o contrário de estadoLed. 0 é contrário de 1, e vice e versa 
      delay(150);//tem q mandar ele esperar um pouquinho,  
//se não a gente acaba mandando o comando, mais de uma vez!  
 }    
digitalWrite(led,estadoLed); // manda pra o pino relacionado ao led, o valor que tem em estadoLed  
}

Bem, é isso aí!


Atividades recentes