Este
sketch é uma aplicação do sensor de infravermelho 2Y0A02 da SHARP, que tem como
função verificar obstáculos à frente e, ao chegar a um limite de distância ( no
sketch 30cm), dar um sinal sonoro e acender um led vermelho. Sua precisão não se
compara com a do ultrassom, mas pode servir muito bem para se evitar colisões e
fornecer dados para um robô desviar de obstáculos. O sketch usa a porta serial para apresentar o sinal recebido pelo sensor e o valor transformado em centímetros (obtido a partir de uma função exponencial).
HARDWARE:
SENSOR SHARP 2Y0A02/RESISTOR
330Ω/LED/BUZZER
/*
****************************************************
PROJETO ROBÓTICA NA ESCOLA 2015
SENSOR INFRAVERMELHO SHARP 2Y0A02
EE DR PEDRO VELHO – RN/BR
****************************************************
*/
int
pinoLed = 12;
int
pinoSensor = 0;
int
pinoBuzzer = 3;
int
leitura=0;
int
leitura1=0;
int
amostra=0;
float
cm=0;
void
setup()
{
Serial.begin(9600);
pinMode(pinoLed,
OUTPUT);
pinMode(pinoBuzzer,
OUTPUT);
}
void
loop()
{
for(int
i=1; i < 2 ; i++)
{
leitura1 = analogRead(pinoSensor); // leitura do sensor
leitura = map(leitura1, 0, 800, 0, 360); //faz a proporção
amostra = amostra + leitura; //armazena leitura na variável amostra
}
amostra
= amostra/2; //tira a média das amostras
cm
= pow(3027.4 / amostra, 1.2134); //
conversão em centímetros
Serial.println("Leitura
do Sensor: ");
Serial.println(leitura); // apresentando a leitura do sensor
Serial.println("");
Serial.println("Distancia
em cm:");
Serial.println(cm); // apresentando a conversão em centímetros
delay(2000); // tempo de espera para realizar outra
leitura
if(cm
< 30)
{
digitalWrite(pinoLed,
HIGH);
tone(pinoBuzzer,
2637);
delay(50);
}
else
{
digitalWrite(pinoLed,LOW);
noTone(pinoBuzzer);
delay(50);
}
}
//FIM
DO SKETCH
Nenhum comentário:
Postar um comentário