Paso 3: Tiempo de código!
También he añadido un zumbador para este proyecto si usted quiere "escuchar" a la distancia.
Sensor de proximidad simple mediante infrarrojos
Descripción: Mide la distancia al obstáculo usando luz infrarroja emitida por los LED IR y
leer el valor con un fotodiodo IR. La exactitud no es perfecta, pero funciona gran
con proyectos de menor importancia.
Autor: Ricardo Ouvina
Fecha: 10/01/2012
Versión: 1.0
int Irpín = A0; Fotodiodo de IR en el pin analógico A0
int IRemitter = 2; Emisor de infrarrojos LED en el pin digital 2
int ambientIR; variable para guardar el IR desde el ambiente
int obstacleIR; variable para guardar el IR desde el objeto
int valor [10]; variable para almacenar los valores de IR
int distancia; variable que indicará si hay un obstáculo o no
void setup() {}
Serial.Begin(9600); Inicializando Serial monitor
pinMode(IRemitter,OUTPUT); Emisor de infrarrojos LED en el pin digital 2
digitalWrite(IRemitter,LOW); / / setup IR LED como apagado
pinMode(11,OUTPUT); zumbador en pin digital 11
}
void loop() {}
distancia = readIR(5); llamada a la función leerá la distancia y pasando la "exactitud"
Serial.println(Distance); escribir el valor leído en el monitor Serial
BUZZER(); Comentario para activar la función de zumbador
}
int readIR (int veces) {}
para (int x = 0; x < veces; x ++) {}
digitalWrite(IRemitter,LOW); apagar los LEDs de IR a leer el IR desde el ambiente
Delay(1); retardo mínimo necesario para leer los valores
ambientIR = analogRead(IRpin); IR desde el ambiente de almacenamiento
digitalWrite(IRemitter,HIGH); encender los LEDs de infrarrojos para leer el IR desde el obstáculo
Delay(1); retardo mínimo necesario para leer los valores
obstacleIR = analogRead(IRpin); almacenamiento de IR desde el obstáculo
valor de [x] = ambientIR-obstacleIR; cálculo de cambios en los valores de IR y guardarlo para futura media
}
para (int x = 0; x < veces; x ++) {/ / calcular la media basada en la "exactitud"
valor += de distancia [x];
}
Return(Distance/Times); devolver el valor final
}
--Función para hacer sonar un zumbador para mediciones acústicas--/ /
void buzzer() {}
Si (distancia > 1) {}
if(Distance>100) {/ / sonido continuo si el obstáculo es demasiado
digitalWrite(11,HIGH);
}
Else {/ / suena más rápido cuando se acerca a un obstáculo
digitalWrite(11,HIGH);
Delay(150-Distance); ajustar este valor para su comodidad
digitalWrite(11,LOW);
Delay(150-Distance); ajustar este valor para su comodidad
}
}
Else {/ / off si no hay ningún obstáculo
digitalWrite(11,LOW);
}
}
Por supuesto se puede editar para que quepa en tu propio proyecto. Por ejemplo puede hacer un robot cambie de dirección o velocidad basado en la distancia leer el sensor de infrarrojos.