quinta-feira, 21 de abril de 2016

Push button + LED + Buzzer

Faaaaaaaala galerinha do MPA!!! Tudo certo??

Hoje nós vamos introduzir um novo elemento que até agora não foi utilizado em nossos experimentos.

É o famoso BUZZER! Um Buzzer nada mais é do que um pequeno
alto-falante. Obviamente que ele não consegue tocar músicas, mas consegue fazer apitos soarem,
como sirenes ou alarmes. A maioria dos alarmes de pequenos equipamentos eletrônicos é feito
através de um buzzer. Ele funciona da seguinte maneira: quando alimentado por uma fonte,
componentes metálicos internos vibram da frequência da fonte, produzindo assim um som.




Como vocês podem ver no protótipo acima, vamos precisar dos seguintes items:

- 1 Arduíno (Uno, MEGA, etc)
- 1 Cabo USB AB(onde será feita a conexão com o nosso computador)
- 1 LED 
- Jumpers macho-macho
- 1 Protoboard
- 2 Resistores 330R
- 1 Pushbutton
- 1 Buzzer

Com o material na mão, vamos ao código!

const int ledPin = 13; //led no pino 13
const int Botao = 2; //botao no pino 2
const int Buzzer = 10; //O buzzer está colocado no pino 10
int EstadoBotao = 0; //Variavel para ler o status do pushbutton
int Tom = 0;
void setup(){
pinMode(ledPin, OUTPUT); //Pino do led será saída
pinMode(Botao, INPUT); //Pino com botão será entrada
pinMode(Buzzer, OUTPUT);
}
void loop(){
  digitalWrite(Buzzer, HIGH); // Desliga buzzer
  EstadoBotao = digitalRead(Botao); /*novo estado do botão vai ser igual ao que
  Arduino ler no pino onde está o botão.
  Poderá ser ALTO (HIGH)se o botão estiver
  Pressionado, ou BAIXO (LOW),se o botão
  estiver solto */
  if (EstadoBotao == HIGH){ //Se botão estiver pressionado (HIGH)
    Tom = 300;
    digitalWrite(ledPin, HIGH); // acende o led do pino 13.
  }
  else{ //se não estiver pressionado
    digitalWrite(ledPin, LOW); //deixa o led do pino 13 apagado
     Tom = 0;
  }
  if (Tom > 0){
    digitalWrite(Buzzer, HIGH); // Liga buzzer
    delayMicroseconds(Tom); // Espera o tempo proporcional ao comprimento de onda da nota musical em milisegundos
    digitalWrite(Buzzer, LOW); // Desliga buzzer
    delayMicroseconds(Tom); // Espera o tempo proporcional ao comprimento de onda da nota musical em milisegundos
    Tom = 0; // Reseta o Tom para zero, para sair do loop while e nao tocar o som constantemente
  }

}


Feito isto, basta subir seu código e testar seu experimento!


É isso aí pessoal!! Até a próxima!