El sensor GP2Y0A21 es un sensor de distancia por infrarrojos de Sharp para la detección de obstáculos situados a una distancia entre 10 y 80 cm.
Hardware
- Computer
- Arduino UNO
- USB A/B
- GP2Y0A21
Principio de funcionamiento
El sensor de distancia GP2Y0A21 uso luz infrarroja y triangulación para calcular la distancia a un objeto. Un LED de infrarrojos envía una señal de luz invisible para el ojo que se refleja en la presencia de un objeto. Esta reflexión es capturada por un fotorresistentes que deduce de este modo el ángulo de reflexión y por lo tanto la distancia. El sensor envía un valor analógico entre 0 y 5V.
diagrama
El sensor de distancia GP2Y0A21 se puede alimentar con 5V. Pin Vcc del sensor puede ser conectado al pin 5V del microcontrolador, el pin GND a tierra del microcontrolador y la señal está conectada a una entrada analógica del microcontrolador.
GP2Y0A21 debe conectarse como se muestra a continuación.
Código
Para mostrar el valor físico del sensor, es necesario conocer la regla de conversión. Para tener un código limpio y fácil de leer, lo mejor es colocar el código en una función secundaria. Vamos a crear una función que se encarga de leer el valor del sensor y el valor físico convertido.
Leemos el valor bruto del sensor usando la función analogRead (), entonces convertimos este valor en centímetro. Se define un valor de 200 por debajo del cual se considera un obstáculo detectado.
el siguiente código muestra el uso GP2Y0A21:
//Parameters const int gp2y0a21Pin = A0; //Variables int gp2y0a21Val = 0; void setup() { //Init Serial USB Serial.begin(9600); Serial.println(F("Initialize System")); //Init ditance ir pinMode(gp2y0a21Pin, INPUT); } void loop() { testGP2Y0A21(); } void testGP2Y0A21( ) { /* function testGP2Y0A21 */ ////Read distance sensor gp2y0a21Val = analogRead(gp2y0a21Pin); Serial.print(gp2y0a21Val); Serial.print(F(" - ")); Serial.println(distRawToPhys(gp2y0a21Val)); if (gp2y0a21Val < 200) { Serial.println(F("Obstacle detected")); } else { Serial.println(F("No obstacle")); } } int distRawToPhys(int raw) { /* function distRawToPhys */ ////IR Distance sensor conversion rule float Vout = float(raw) * 0.0048828125; // Conversion analog to voltage int phys = 13 * pow(Vout, -1); // Conversion volt to distance return phys; }
Aplicaciones
Fuentes
Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código