Quando falamos de sensor emissor e receptor de laser usado com Arduino, normalmente se trata de um módulo laser transmissor (diodo laser) junto com um sensor receptor (fotodiodo, fototransistor ou LDR especial) que detecta a luz.
Esse conjunto é muito usado em barreiras de luz, alarmes, contadores de objetos e robótica.
O emissor de laser, ou diodo laser, geralmente emite uma luz vermelha e opera em uma tensão que varia de 3.3v a 5v.
Ele possui um alcance de até alguns metros em ambientes internos (dependendo da potência e alinhamento).
Sua conexão necessita de três pinos, sendo o VCC (5v), GND e sinal.
Já o receptor é um sensor de luz (Fotodiodo / Fototransistor).
Ele opera com uma tensão de operação entre 3.3v e 5v.
Sua corrente de resposta varia conforme a intensidade do laser.
Pode ser usado em como contador de pessoas/objetos, sistemas de segurança, robôs seguidores de linha ou até mesmo na comunicação óptica simples entre dois Arduinos.
Neste projeto você criará um circuito que faz o uso de um sensor laser com o Arduino.
Para a criação deste circuito serão necessários os seguintes componentes:
Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.
Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.
/**
* Código do curso Magos do Arduino para utilizar um sensor transmissor e
* receptor de laser com o Arduino.
*
* Utilize o sensor de laser para acender e apagar um LED quando o feixe de laser
* estiver interrompido pelo obstáculo.
*
* (c) Copyright KazaleIT
* @kazaleitoficial no YouTube
**/
#define PINO_LASER 2
#define PINO_RECEPTOR 3
#define PINO_LED 4
void setup() {
pinMode(PINO_LASER, OUTPUT);
pinMode(PINO_RECEPTOR, INPUT);
pinMode(PINO_LED, OUTPUT);
// ativa o laser
digitalWrite(PINO_LASER, HIGH);
}
void loop() {
// obtém o valor do receptor
int valorReceptor = digitalRead(PINO_RECEPTOR);
if (valorReceptor == LOW) {
digitalWrite(PINO_LED, HIGH);
} else {
digitalWrite(PINO_LED, LOW);
}
}