Destacados-IR

¿Qué es un sensor infrarrojo?

El sensor infrarrojo o IR es un dispositivo que emite una luz infrarroja detectando la cantidad de luz reflejada. De esta forma es capaz de diferenciar entre blanco y negro. Hay muchos tipos de sensores infrarrojos, como los del mando de la televisión, detección de objetos e incluso para medir las pulsaciones de una persona.

El sensor infrarrojo que vamos a utilizar es digital y devuelve un 1 cuando detecta blanco y un 0 cuando detecta negro.

ir-animado_web

Calibrando el sensor infrarrojo

Antes de empezar a utilizar nuestro sensor infrarrojo debemos calibrarlo para que sea capaz de detectar de forma correcta qué es blanco y qué es negro. Sigue el siguiente vídeo para realizar el proceso:

¡Cierra la puerta que hace frío! Programando una alarma para una puerta

No sé si has estado en Burgos, pero en invierno se pasa mucho frío. Solucionemos el problema con una alarma para la puerta que avise cuando ésta está abierta.


conexion_alarma_de_puerta_2

Queremos que cuando el sensor infrarrojo detecte que la puerta está abierta, es decir, detecte negro, el zumbador comience a sonar. Para ello deberemos utilizar el bloque si…ejecutar.

programacion_alarma_puerta_3

Como ves, el programa es muy sencillo. Si el sensor IR detecta negro, o lo que es lo mismo, 0, el zumbador sonará hasta que vuelva a detectar blanco o 1. De esta forma podemos controlar que nuestra puerta siempre esté cerrada para no perder calor.

El bloque verde es un comentario. Los comentarios son mensajes que se usan dentro de los programas para que sea más fácil comprenderlos. No se ejecutan en la placa, son solo para que tú o cualquier otra persona tengáis más claro cómo funciona. Podrás encontrar el bloque de comentarios dentro de la pestaña Código. ¡Úsalos siempre que los necesites!

Mi problema con los cuadros. Utilizando dos sensores infrarrojos.

Voy a contarte un secreto, en mi casa no soporto tener cuadros torcidos. Cada vez que camino por el pasillo acabo recolocando todos los cuadros. Pero es peor el remedio que la enfermedad. Cada vez que los toco ¡acaban aún más torcidos! Mi médico ha dicho que me relaje, que la vida está llena de imperfecciones, pero yo no me conformo y he decidido crear un sistema para tener los cuadros siempre rectos. Para ello utilizo dos sensores infrarrojos, uno colocado en la pared y otro en el marco del cuadro. Cuando los sensores están frente a frente y totalmente alineados se detectan entre ellos y el LED se enciende. En el momento que uno de ellos se tuerce suena una alarma y se apaga el LED. ¡Eureka! ¡Nunca más tendré los cuadros torcidos!

Vamos a realizar las conexiones. Necesitarás un LED, un zumbador y los dos sensores infrarrojos:


conexion_dos_IR

Queremos que, al encontrarse los sensores frente a frente, un LED indique que el cuadro está recto. En caso contrario el LED se apagará y el zumbador sonará. Para poder decir que los dos sensores deben ser igual a 1, es decir, detectarse entre ellos, hemos usado el bloque de lógica “y” que encontrarás en la pestaña Lógica. Utiliza además el bloque SI avanzado. Lo encontrarás en Control->Avanzados.

2_rectificador_cuadros_ir_comentario

De esta forma si el primer sensor infrarrojo es igual a 1, es decir, está detectando la luz del otro sensor “y” el segundo sensor infrarrojo es también igual a 1, la condición se cumplirá y el LED se encenderá. El bloque lógico “y” y sus variantes te permitirán hacer programas más avanzados, por lo que los utilizaremos a menudo.

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:

  • Crea tu propio robot o usa un PrintBot para programar un siguelíneas.
  • Puedes hacer un robot aspirador que detecte cuándo se va a salir por el borde, pare y retroceda evitando la caída. ¡Tu mesa deberá ser blanca!
  • Haz un pequeño recortable para la noche de Halloween.


El sensor infrarrojo es muy sencillo de manejar pero de gran utilidad. Práctica con él y muy pronto se te ocurrirán un montón de ideas nuevas para utilizarlo. ¿Tienes ganas de conocer más sensores? ¡Solo acabamos de empezar!

15 comentarios

  1. Aun hay más,… está bien que vayáis mas allá en cada sesión del curso, pero los links van a proyectos de bitbloq1 que aunque es parecido no nos permite ver las nuevas posibilidades de bitbloq2.

    1. Pablo Lozano

      Hola Javier,

      Estamos trabajando en ello, y pronto saldrán más artículos que se realizarán con Bitbloq2.

      Muchas gracias por el comentario, y no dudes el consultarnos/sugerirnos cualquier otra cosa.

      Un saludo.

      1. El condicional de bitbloq2 no deja hacer la función “si” tal y como se plantea en el caso “Mi problema con los cuadros”. ¿Se te ocurre alguna solución? Gracias

        1. Julián Caro

          Buenos días Jorge

          Deberás usar el bloque SI avanzado, que te permite personalizar al máximo el condicional SI.

          Este bloque lo encontraras pinchando sobre Control->Avanzados. Recuerda cerrar la pestaña de aviso de uso de cookies de Bitbloq, ya que de lo contrario no verás el botón de avanzados.

          Hemos editado el post para que incluya el detalle de utilizar el bloque SI avanzado.

          Un saludo

  2. Buenos días, es posible utilizar un receptor de IR en bitbloq? querría hacer un robot controlado con el mando de la TV pero veo que en componentes no hay la opción del receptor.

    Gracias

    1. Julián Caro

      Buenos días Borja

      Tratamos de hacer Bitbloq lo más abierto posible, te sugiero varias opciones para hacer lo que comentas:

      – Utiliza el sensor IR de la pestaña Hardware. En el caso de que tu sensor IR sea digital son totalmente compatibles. El sensor IR del Zum kit está formado por un emisor y un receptor, pero la programación se centra en el receptor, por lo que si tu sensor es digital te devolverá o un 1 o un 0 utilizando este sensor.

      – Tu segunda opción es utilizar los bloques generales de lectura de pines: leer pin digital o analógico (dependiendo de tu sensor IR). Encontraras estos bloques en Componentes->Avanzados

      -Tu tercera opción, imprescindible en el caso de que vayas a utilizar alguna librería que interprete el tren de pulsos que reciba de un mando infrarojo, es utilizar el bloque de código (pestaña código) y añadir código arduino a tu programación. Podrás añadir además las librerías que vayas a utilizar, para ello colocalas en la carpeta de tu ordenador: Arduino/libraries

      Un saludo

  3. Hola Julián,

     

    Tengo problemas para la calibración de los sensores IR.

    Sigo las instrucciones del vídeo y cuando ajusto para que me detecte negro también hace lo mismo para el blanco. Reajusto el potenciómetro para que no detecte blanco pero entonces tampoco me detecta el negro.

    Cuál es la distancia recomendada para hacerlo?. Puede depender de la luz ambiente, sombras,…?

     

    Un saludo,

  4. Hola, ¿como funciona el sensor infrarrojo doble? lo conecto en bibloq como componente siguelíneas pero no puedo determinar como obtener datos de forma individual con ese componente siguelineas puesto en bitbloq.
    GRacias

    1. Julián Caro

      Buenos días Borja

      Actualmente el bloque de siguelíneas es un poco comlejo de usar, ya que utiliza lo que llamamos arrays. Sin embargo, existe una forma mucho más facil y útil de utilizar este componente. Si te fijas tu sensor IR está formado por ¡dos sensores IR normales! Por tanto puede utilizar el componente normal de IR para declarar cada uno de tus IR, nombra a uno como IR derecho y a otro como izquierdo. Te será mucho más facil realizar tu programación.

      Ejemplo IR doble

      Si tienes cualquier otro problema no dudes en preguntarnos

  5. Hola a todos.
    Estoy probando el sensor de infrarrojos. En mi caso tengo un printbot evolution, por lo que el sensor que tengo es doble con un potenciómetro único.
    1) Cuando intento calibrarlo no se me enciende ningún led del sensor por lo que no sé si lo estoy haciendo bien
    2) He intentado recibir el estado del sensor desde el puerto serie pero independientemente de tener algo negro debajo me devuelve siempre el valor 0
    Aquí va mi código y un saludo a todos:

    /*** Included libraries ***/
    #include
    #include

    /*** Global variables and function definition ***/
    const int led = 13;
    const int sensor_infrarrojos_izquierdo = 2;
    const int sensor_infrarrojos_derecho = 3;
    bqSoftwareSerial puerto_serie(0, 1, 9600);
    float estado_izquierdo = 0;
    float estado_derecho = 0;

    /*** Setup ***/
    void setup() {
    pinMode(led, OUTPUT);
    pinMode(sensor_infrarrojos_izquierdo, INPUT);
    pinMode(sensor_infrarrojos_derecho, INPUT);
    }

    /*** Loop ***/
    void loop() {
    puerto_serie.println(digitalRead(sensor_infrarrojos_izquierdo));
    puerto_serie.println(digitalRead(sensor_infrarrojos_derecho));
    delay(1000);
    }

    1. SGracia

      Buenos días, Carlos:

      En primer lugar, te aconsejo que le eches un vistazo a este vídeo, para comprobar cómo se realizar la calibración de los sensores (sirve igualmente para tu modelo de sensor IR): https://www.youtube.com/watch?v=LtanR5S3BBs

      Un saludo.

      1. Buenos días:
        Como explico en el anterior post, ya había visto ese video y probado la calibración. En mi sensor no se enciende ningún led al mover el potenciómetro y no sé si eso es normal o simplemente el sensor está defectuoso.

        Un saludo

        1. SGracia

          Buenas tardes, Carlos:

          En ese caso sería aconsejable verificar que los sensores estén correctamente conectados a la placa, así como comprobar que el interruptor de ésta esté en ON.

          Si el problema persiste, por favor, ponte en contacto con nuestros compañeros de soporte: http://www.bq.com/es/support

          Un saludo.

Los comentarios están cerrados.