Como indica o nome, o sensor reflexivo depende de ma reflexão: ele emite uma luz (infravermelha) e detecta se houve uma reflexão.
Há vários módulos e componentes LED que podem ser utilizados. Vamos ver três deles:



Eles estão conectados em uma entrada digital. Então, teremos um sinal alto/ baixo quando houver reflexão:
int sensor = 9;
int altofalante = 11; //A5;
int estado = 0;
void setup() {
pinMode(sensor,INPUT);
pinMode(altofalante, OUTPUT);
}
void loop() {
estado = digitalRead(sensor);
if (estado == HIGH ) {
noTone(altofalante);
} else { //objeto detectado
tone(altofalante, 1350);
delay(150);
tone(altofalante, 1050);
delay(150);
}
}
O código acima funciona para as três alternativas. Quando houver reflexão (um objeto for detectado), será emitido um som (poderia ser acionado um LED, acionado um servo motor…).
Agora, vamos realizar a leitura analógica:

ou

int sensor = A0;
int altofalante = 11; //A5;
int estado = 0;
void setup() {
pinMode(sensor,INPUT);
pinMode(altofalante, OUTPUT);
Serial.begin(9600);
}
void loop() {
estado = analogRead(sensor);
Serial.print("Valor lido: ");
Serial.println(estado);
//estado = map(estado, 0, 1023, 0, 100); //transforma a leitura para o intervalo 0 a 100
if (estado > 500) {
noTone(altofalante);
} else { //objeto detectado
tone(altofalante, 1350);
delay(150);
tone(altofalante, 1050);
delay(150);
}
}
Agora o valor da leitura vai de 0 a 1023 ( e pode ser transformado para outro valor.
A partir deste último exemplo, crie um projeto que:
Depois, apresente seu projeto para os outros alunos.