26 de setembro de 2012

Sensor Laser

Sabe aqueles alarmes com lasers voando pra todo lado? O laser vai refletindo em espelhos até chegar em um sensor, que quando detecta um corte na luz , aciona a sirene, as luzes, e tudo mais!

Segue o esquema elétrico do circuito e o código fonte do microcontrolador.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*-------------
 SENSOR LASER
 Fellipe Couto
 26/09/2012
 -------------*/
#define ledVermelho 2
#define ledAzul 3

int valorMaxLDR = 1000; //Valor com laser projetado.

void setup(){
  pinMode(ledVermelho, OUTPUT);
  pinMode(ledAzul, OUTPUT);
}

void loop(){
  int LDR = analogRead(0);
  if (LDR < valorMaxLDR - 50){
    Alarme();
  }
}

void Alarme(){
  int t = 400;
  for (int i=0; i<5; i++){
    digitalWrite(ledVermelho, HIGH);
    digitalWrite(ledAzul, LOW);
    delay(t);
    digitalWrite(ledVermelho, LOW);
    digitalWrite(ledAzul, HIGH);
    delay(t);
  }
  digitalWrite(ledVermelho, LOW);
  digitalWrite(ledAzul, LOW);
}

10 comentários:

  1. Vc só se esqueceu de dizer que quanto mais espelhos, maior é a perda do laser. Eu já tentei circundar a minha casa toda com o reflexo do laser nos espelhos, mas no 8º ou 9º espelho, o raio laser está tão fragmentado, que é inútil.

    ResponderExcluir
    Respostas
    1. É isso mesmo, Klaus! Quanto mais espelhos, maior potência precisará. No video usei um laser de 5mW, que é o normal desses chaveiros com laser. Já testei com um verde de 300mW e fica bem melhor. Abraços!

      Excluir
  2. OLÁ DE NOVO, kkk - Não entendi essa parte - int t = 400; é o valor do LDR?

    ResponderExcluir
    Respostas
    1. Boa tarde!
      t é a variável do tipo integer. Está sendo usada nos delays da função. Linhas 28 e 31.
      Abraços!

      Excluir
  3. Obrigado, estou sofrendo para apreender programação.

    ResponderExcluir
  4. Este comentário foi removido pelo autor.

    ResponderExcluir
  5. Oi amigo tem como mudar a programação para quando acionar o lazer o led ligar e permanecer ligado só desligar quando acionar o lazer novamente desde já eu agradeço muito obrigado.

    ResponderExcluir
    Respostas
    1. Oi! É possível sim. Pequnos ajustes na lógica de programação e consegue sim.

      Excluir