Desarrollo del Sensor de proximidad mediante Arduino:
La Practica de hoy es un sensor de proximidad mediante Arduino y un emisor-receptor de rayos infrarrojos.
El uso que le podemos dar es muy amplio, desde el detector de proximidad hasta un detector de barrera, alarma antirrobo...
Como sensor de aparcamiento no es muy recomendable pues si no esta el emisor y receptor en paralelo el campo de detección es muy pequeño.
El uso que le podemos dar es muy amplio, desde el detector de proximidad hasta un detector de barrera, alarma antirrobo...
Como sensor de aparcamiento no es muy recomendable pues si no esta el emisor y receptor en paralelo el campo de detección es muy pequeño.
En primer lugar he realizado
el esquema de conexiones con los elementos necesarios.
Materiales y componentes utilizados:
·
1 Diodo emisor
infrarrojo
·
1 Resistencia
330Ω
·
1 Resistencia de
1MΩ
·
1 Diodo receptor
Infrarrojo
·
Arduino
Como podemos apreciar pare
realizar esta practica con arduino necesitamos muy pocos componentes,
básicamente es programación.
En primer lugar realizaremos
el esquema del emisor y en segundo lugar realizaremos el esquema del receptor
de infrarrojos.
Esquema de emisor
El circuito de emisor es muy
sencillo, simplemente conectaremos el diodo emisor de infrarrojos con la resistencia
en serie, y lo uniremos a GND y al Pin12 de nuestro Arduino que es el que he
definido como salida.
La programación de salida del
Pin 12 será un envío constante de pulsos (True) que encenderá (5V) el diodo emisor
de infrarrojos.
Podemos dejarlo encendido
constantemente para que envíe rayos infrarrojos
o crear un parpadeo mediante la función “delay”.
Esquema de receptor
El esquema de receptor
también es muy sencillo. Realizaremos un pequeño divisor de tensión.
Emplearemos una fuente de 5 voltios (podemos utilizar la fuente que nos
proporciona arduino 5V y GND).
En la misma conectaremos 1
resistencia de 1MΩ y un diodo receptor de infrarrojos. Entre el Ánodo del
receptor de IRD2 y la resistencia de 1MΩ, llevaremos una conexión a uno de los
pines analógicos de Arduino. De los cuales he utilizado el Pin3 y lo he
definido como entrada.
En el momento que el receptor
IRD2 recibe, conduce y disminuye el voltaje en Pin3.
Alarma de proximidad
Como sistema de alarma, he
conectado un diodo Led azul entre el Pin13 y GND. No es necesario conectar una
resistencia en serie con el diodo led, ya que el pin 13 la tiene internamente.
Si recibe se activará el diodo led azul y sino se mantendrá apagado.
Montaje en la Protoboard
Emisor receptor-recibe
(He enfrentado emisor-receptor para que lleguen los
rayos infrarrojos directamente, el diodo led se enciende pues está recibiendo
señal)
Emisor receptor-NO recibe
(Colocado un obstáculo metálico en medio, el receptor
no recibe señal, por tanto el diodo led no parpadea.)
Se realizan mediciones de
voltaje entre el Pin 3 y GND. En el momento que el receptor de infrarrojo no
conduce, es decir el circuito de recepción esta abierto, la tensión es de 4,22 Voltios.
En el momento que el Receptor
de infrarrojo recibe, se cierra el circuito, y el voltaje en Pin 3 cae a 1,50 voltios.
Me despido dejando el código que he desarrollado, y unos links directos a los módulos que he utilizado.
-Arduino UNO R3
https://s.click.aliexpress.com/e/_oEmMcZg
La programación empleada
Sketch:
//Sensor de aparcamiento con infrarrojo
//variables
para la entrada y control de led
int
analogInput = 3; //definimos la variable de entrada analogica en el pin3
int LEDpin1 =
13; // definimos la variable de salida para el
led de alarma
int LEDpin2 = 12; //definimos
la variable de salida de envio de pulso.
Pin12
int value = 0; // variable
para definir el valor
int threshold
= 512; //
el umbral que controla cuando se enciende el led, podemos regular la
sensibilidad.
void setup()
{
// declaracion del modo de los pines
INPUT/OUTPUT
pinMode(analogInput,
INPUT);
pinMode(LEDpin1, OUTPUT);
pinMode(LEDpin2, OUTPUT);
}
void loop() //bucle de programa
{
digitalWrite(LEDpin2, HIGH); // Activa Emisor IRda
value = analogRead(analogInput); // lee el valor
de entrada analogico
// si el receptor IR recibe, disminuye el
valor analógico de entrada por el pin 3.
if (value < threshold){
digitalWrite(LEDpin1, HIGH); //Activa Diodo led alarma(pin13)
delay(100);
digitalWrite(LEDpin1,
LOW); //Apaga
Diodo led de alarma(pin13)
delay(100);
digitalWrite(LEDpin1,
HIGH); //Activa
Diodo led de alarma(pin13)
delay(100);
}
// si el receptor no recibe, aumenta la
resistencia en el receptor IR y aumenta el valor analogico de entrada por el
pin 3.
else {digitalWrite(LEDpin1, LOW);
}
}
buenas construi tu sensor y funciona de maravilla con arduino, ahora quiero ir mas alla :D, es posible medir la distancia con este sensor, algo similar al sensor de ultrasonidos que mide distancias en centimetros, es posible hacerlo tambien con un infrarrojo?
ResponderEliminarHola Skrew, pues no descarto que halla soluciones posibles via infrarrojos, yo en esta entrada he realizado un recibe, no recibe. Hice pruebas colocando los led's posicionados en serie, en vez de enfrentados como este ejemplo, acercaba un objeto a los mismos, y cuando se encontraban muy próximos a 3 o 4 centímetros, entraba en funcionamiento por el rebote de la luz infrarroja. Esto nos hace depender del material para el rebote, superficie del objeto, posicion, bla,bla, aparte de que es una distancia muy pequeña...
EliminarSolución, lo mejor que puedes hacer es comprarte un Emisor-Receptor por ultrasonidos, en ebay les tienes por 3 o 4 euros, y funcionan muy bien, puedes verlo en la entrada que tengo en el bloq.
Espero haberte podido ayudar, si necesitas cualquier cosa, solo debes postear.
Un saludo
Muy buen blog,
ResponderEliminarPero tenia un par de preguntas antes de construirlo:
1. El voltage va disminuyendo de 4,22 a 1,50 conforme se acerquen emisor y receptor o simplemente el voltage cambia de golpe?
2. Si esto es así, que distancias soportarían?
Gracias de antemano por responder!
Hola Kaos. En este caso el voltaje cae de golpe, a diferencia de cuando utilizamos una LDR, ya que varía la resistencia en función de la luz que recibe y por tanto el voltaje.
ResponderEliminarEspero haberte ayudado.
Un saludo
Hola! Estoy trabajando en un proyecto en el que aparece una imagen fija en una pantalla y al acercarte se reproduce un video, en lugar de la imagen estática. Sería posible con este mecanismo? espero tu respuesta. un saludo y mil gracias
ResponderEliminarhola estoy programando en arduino para la construccion de un robot y el cual debe seguir una linea, me gustria usar tu sensor infrarrojo pero no entiendo el valor en la programacion de
ResponderEliminarint threshold = 512; // el umbral que controla cuando se enciende el led, podemos regular la sensibilidad.
De donde obtuviste el valor 512???
ola anonimo tengo entendido que el valor 512 que le da es variable segun el ambiente en el que trabajes puede ser mas o menos es experimental.
ResponderEliminarmuy buenos dias,.. de favor de le pido si me puede apoyar en cuando al montar un circuito para leer los pulsos de una persona,.. no tengo conocimiento suficiente para llevarlo a cabo.. le agradezco graciassss..
ResponderEliminarHola Paty! pues yo no he trabajado mucho con ello pero si te puedo orientar un poco. Tienes por ejemplo un sensor ya desarrollado, que mide el pulso mediante un led que emite pulsos y se capta la reflexión que producen los capilares de nuestra piel. Puedes echarlo un vistazo en http://pulsesensor.com/, como puedes ver es código abierto y es un sistema que ahora se esta empezando a implementar en los wereables. Ese sensor es relativamente sencillo, como es open source hay bastante código en la red que lo puedes cargar en Arduino y funciona.
EliminarOtra opción que tienes es un integrado de Analog Devices AD8232, pero este es algo más complejo, el sistema es totalmente distinto, interpreta los impulsos eléctricos amplificados que se produce en nuestro pecho del corazón. El sistema es más parecido a los EKG que hacen los médicos.
Otra opción es que desarrolles un sistema parecido a las bandas pectorales jeje.
Espero que te haya podido ayudar un poco, cualquier cosa me puedes preguntar y si puedo te hecho una mano.
Un saludo!!
disculpa me puedes proporcionar la imagen de tu circuito es que en las imagenes que estan no se ve bien
ResponderEliminarHola,
ResponderEliminarlas imágenes de montaje no las tengo ya. Pero si sigues los esquemáticos de montaje no vas a tener ningún problema.
Un saludo
Hola, José.
ResponderEliminarNecesito usar tu sensor para un cronómetro. La idea es poner 5 sensores cada 20 metros, y que cuenten una "vuelta" cada vez que paso por uno de ellos. El último debe parar completamente el tiempo. ¿Me puedes ayudar?
El proyecto es para entrenamiento de atletismo, soy corredor de 100 metros y me ayudaría mucho.
Espero tu respuesta, muchas gracias.
Hola Luciano,
Eliminares un proyecto interesante, lo único desconozco el medio donde entrenas, si es un polideportivo o en el exterior, y si el proyecto que desarrolles va a quedar como una instalación fija o de quitar y poner. Te lo pregunto porque si es un sitio donde va a quedar instalado y tienes posibilidad de tener tensión en cada sensor,sería ideal. En caso contrario vas a tener que utilizar algún sistema de baterías y el envío de señal por radiofrecuencia.
Yo utilizaría un Arduino y 5 módulos de RF. En cada Checkpoint el sensor de proximidad con el emisor y el Arduino tendrá conectados los receptores de RF registrando cada vez que pases por una marca, con un buen algoritmo de temporización.
Yo te digo como lo haría en función de lo que me has planteado, pero ya te digo que desconozco el entorno, si tiene que ser un sistema waterproof, fácil de desmontar, si hay obstáculos o señales que puedan perturbar el envío de señal por RF, etc. Difícil no lo veo, pero hay que tener varias cosas en cuenta.
Bueno ya me contaras como vas con el proyecto, espero haberte ayudado y si necesitas algo más me dices.
Un saludo!
Hola amigo quisiera saber como utilizar tu circuito para un sistema de aparcamiento , si me pudieras ayudar te lo agradecería mucho, es que es para un proyecto.
ResponderEliminar