Sensores

Sensores (de contacto, luz, distancia, ...)

¿Qúe son los sensores?
Se trata elementos eléctricos o electrónicos que conectamos en las entradas del microcontrolador y que envían a este información sobre magnitudes físicas que miden o detectan dando un valor de tensión.
Un sensor puede ser un simple pulsador (detectaría presión o contacto), una LDR (detectaría luz) o un receptor de infrarrojos.

Tipos de sensores
Dividimos los sensores en dos grandes grupos: sensores digitales y sensores analógicos.
  • Los sensores digitales son aquellos que entregan:
     - o un valor de tensión bajo (masa, tierra, Gnd, G o 0V)
     - o bien un valor alto "1" (V+).
    El microcontrolador solo entenderá que le llega o un "0" lógico o un "1" lógico.
    NOTA. Para una tensión de alimentación de 5V hemos comprobado en un PICAXE-18M2 que por debajo de 1,7V se tiene un "0" lógico y por encima de 2,1V se tiene un "1" lógico.
  • Los sensores analógicos pueden entregar cualquier valor de tensión entre G (masa) y V+ (alimentación).
    El microcontrolador traduce esta tensión en un valor "RAW" entre 0 y 255
    (o bien con el comando apropiado entre 0 y 1023 si se quiere más precisión).
¿Cómo se conectan los sensores?
Lo más usual es conectar el sensor en alguna entrada de la tarjeta controladora siguiendo las posibles indicaciones adicionales que pueden darnos para ese componente electrónico.Es usual que el sensor esté formado por un circuito de montaje con varios componentes. También hay que tener en cuenta que no todas las entradas admiten sensores analógicos.





LISTA DE SENSORES
que hemos usado en nuestras prácticas y proyectos


Para cada sensor, se indica cómo conectarlo:
- directamente a un micro PICAXE

- y después a las tarjetas con las que los hemos utilizado, especialmente la CHI030A y la CHI035A.

Sensores digitales
Sensores analógicos





















· Interruptor simple, pulsador, final de carrera
  (o cualquier otro con estados "abierto" y "cerrado")



  • Un sensor digital será cualquier elemento de maniobra de un circuito que pueda tener los estados "abierto" y "cerrado".
  • Es usual encontrarnos con interruptores de palanca, deslizantes, de botón, finales de carrera, pulsadores, etc.
  • Los que más hemos usado en nuestras prácticas son los finales de carrera (dejando uno de los dos contactos de salida sin conectar).
  • En cualquier caso o son del tipo "UPUD", un polo una dirección, o bien se utilizan de esa forma.


- Conexión de un interruptor simple a un micro PICAXE

El circuito es muy sencillo y puede verse a continuación



La resistencia de 10K se denomina de "pull-down". Es necesaria para que cuando el interruptor esté en abierto la entrada del PICAXE no quede "en el aire", podría recibir interferencias y dar valores indeseados. Las tarjetas CHI030A y CHI035A ya llevan incluidas estas resistencias por lo que no hay que preocuparse de ellas.

La resistencia de 1K es solo por protección. Podría casi ignorarse, y de hecho ni siquiera viene en las tarjetas anteriormente mencionadas.



- Conexión de un interruptor simple a las tarjetas controladoras
  • CHI030A "Proyectos PICAXE-18 estándar"
  • CHI035A "Proyectos PICAXE-18 de alta potencia"
La conexión es inmediata e igual para ambas tarjetas controladoras.
Un polo se conecta a una entrada digital de la tarjeta (por ej. a C.7) y el otro a la alimentación (V+).


NOTA
En los modelos anteriores de estas tarjetas, el CHI030 y en CHI035, las entradas C.0 y C.1 venían sin resistencia de pull-down. Para usar estas entradas como digitales o bien se ponía una resistencia de 10K entre la entrada y tierra (G) o bien se soldaba en la propia tarjeta que ya venía preparada para ello.

























· Sensor de luz a partir de una LDR (resistencia dependiente de la luz)

  • Una LDR o resistencia dependiente de la luz es un tipo de resistor cuyo valor depende de la luz que incide sobre el mismo.
    Se aprovecha esta característica para "medir" qué cantidad de luz le llega.
  • Si conectamos una LDR a una entrada analógica, en el microcontrolador obtenemos un valor "RAW" entre 0 y 255 que varía con la cantidad de luz que recibe.
  •  En la imagen y solo por comodidad, aparece una LDR sobre una placa perforada de conexiones rápidas. Es muy fácil de montar en cualquier proyecto. A las patas de la LDR se accede a través de la ficha de empalme. Las líneas dibujadas muestran las conexiones inferiores.


- Conexión de una LDR a un micro PICAXE

El esquema de conexión se hace sobre una entrada analógica (ADC) del PICAXE y es el siguiente




- Conexión de una LDR a las tarjetas controladoras
  • CHI030A "Proyectos PICAXE-18 estándar"
  • CHI035A "Proyectos PICAXE-18 de alta potencia"
La conexión es inmediata e igual para ambas tarjetas controladoras.
Un polo se conecta a una entrada analógica de la tarjeta (por ej. a C.0) y el otro a la alimentación (V+).


NOTA
En los modelos anteriores de estas tarjetas, el CHI030 y en CHI035, las entradas C.0 y C.1 venían sin resistencia de pull-down. Para usarlas con la LDR o bien se pone una resistencia de 10K entre la entrada y tierra (G) o bien se suelda en la propia tarjeta que ya viene preparada para ello.




- Conexión de una LDR a la tarjeta controladora "Alarmas PICAXE"

En el Proyecto "Cinta elevadora con parada automática" puede verse como la LDR se conecta directamente a la entrada analógica in1.
Proyecto cinta elevadora. Esquema del circuito eléctrico




· Calibración de una LDR (valores raw frente a luz)

Como cada LDR es distinta e influyen las condiciones de iluminación del lugar de trabajo, lo más útil es siempre hallar de forma práctica los umbrales de luz que buscamos.
Basta conectar la LDR a una entrada digital y ver en la pantalla del ordenador que valor obtenemos según como la estemos iluminando.
Un ejemplo de calibración puede verse aquí:  Proyecto cinta elevadora con parada automática. Calibración de la LDR.























· Receptor de señales infrarrojas de un mando a distancia

  • Existen sensores de infrarrojos que detectan los pulsos o señales que emite un mando a distancia.
  • Nosotros hemos usado un sensor compatible con el protocolo de Sony (38kHz), porque Picaxe "traduce" directamente la lectura de pulsos y nos devuelve el código de la tecla pulsada.
  • Hemos utilizado el receptor con micros PICAXE-18M2
    (la serie M2 facilita mucho la programación) 

- Conexión del receptor de infrarrojos a un micro PICAXE

PICAXE nos da el siguiente esquema para la conexión de este tipo de sensores, por supuesto a una entrada analógica (ADC):
Nota
En algunos manuales aparece una resistencia de 330 ohmios entre el condensador y 5V en vez de estar unidos directamente. Hemos comprobado que también funciona.



- Conexión del receptor de infrarrojos a la tarjeta CHI030

Basándonos en el circuito que indica el manual de Picaxe, hemos conectado el receptor a la entrada cero como se indica en el siguiente esquema.





Circuito práctico para el receptor de infrarrojos

Para nuestras prácticas y proyectos y por comodidad hemos construido el circuito anterior en una placa perforada de conexiones rápidas según el siguiente croquis:


La implementación práctica puede verse en las siguientes imágenes:








Podemos usar el programa del siguiente enlace para conocer todos los códigos de nuestro mando a distancia:
07.1 Leyendo los códigos de las teclas de un mando a distancia.




































· Sensor analógico de distancias por infrarrojos

  • En nuestras prácticas y proyectos hemos utilizado un sensor analógico de distancias por infrarrojos, modelo SHARP GP2Y0A41SK0F. A este tipo de sensores también se les llama sensores de proximidad.
  • Este dispositivo tiene un rango de distancias de 4 a 30cm, consume 22mA y funciona de 4,5 a 5,5V.
  • Existen muchos más rangos de medición así como de alimentación. También existen sensores por ultrasonidos, muchos más precisos, algo más elaborados de programar, aunque menos económicos.
  • Cuando colocamos un objeto delante del sensor, para cada distancia de su rango éste devuelve al microcontrolador un valor raw a valor analógico comprendido entre 0 y 255 en el caso por ejemplo de un PICAXE-18. 
  • Básicamente lo que se hace es emitir luz infrarroja y ver qué cantidad se refleja, debido a lo cual es sensible a la luz solar.

Pueden verse ejemplos de uso de este sensor en:



- Conexión del receptor de infrarrojos a la tarjeta CHI030
En el caso de este sensor:
  • el cable rojo lo conectamos directamente a la alimentación (4,5V en nuestro caso),
  • el cable negro a tierra (0V)
  • y el cable blanco (en el dibujo en rosa) a la entrada analógica 0 (ADC0) de la tarjeta controladora.




























· Sensor sigue-líneas

  • Este es un sensor ampliamente conocido y utilizado en los robots sigue-líneas o rastreadores además de muy sencillo de utilizar.
  • Hemos usado uno que indica que es compatible con ARDUINO, aunque si funciona a 5V y devuelve una señal con valores comprendidos entre tierra (G) y alimentación (V+), no debería haber mayores problemas.
  • Básicamente lo que hace es detectar si bajo el mismo hay una superficie clara o muy oscura.
    Para ello emite luz infrarroja y comprueba si se refleja o no.
  • El sensor debe estar muy cerca de la superficie a detectar, aunque un potenciómetro incorporado nos ayudará a regular los valores umbrales "claro" y "oscuro".
  • Es frecuente encontrarse en muchos proyectos el circuito hecho a mano (con un CNY70) aunque aquí viene todo integrado en un único dispositivo.



- Conexión de un sigue-líneas a un micro PICAXE

La conexión es inmediata y puede verse a continuación


- Conexión de una LDR a las tarjetas controladoras
  • CHI030A "Proyectos PICAXE-18 estándar"
  • CHI035A "Proyectos PICAXE-18 de alta potencia"

La conexión a ambas tarjetas es la misma y también inmediata.
Puesto que este sensor analógico solo nos devuelve dos estados, ¡podemos conectarlo tanto a una entrada digital como a una entrada analógica! Funciona correctamente de ambas formas.


Cuando el sensor está sobre una superficie clara, devuelve un valor muy bajo o bien un "0" lógico.
Cuando el sensor está sobre una superficie negra, devuelve un valor alto o un "1" lógico.




























·Potenciómetro



  • Hemos utilizado un potenciómetro de 11K ohmios,
    con forma de botón y de apariencia robusta
    que además se ofertaba como compatible con Arduino.







- Conexión de un potenciómetro a un micro PICAXE

La conexión es inmediata y puede verse a continuación


El valor que devuelve el potenciómetro en el PICAXE varía linealmente entre 0 y 255
  • En la posición +, la resistencia es máxima, llegan 0V a la entrada y obtenemos en el micro un 0.
  • En la posición central del potenciómetro se obtiene el valor intermedio 127
  • Y en la posición - , la resistencia es 0, por tanto llegan los 4,5V a la entrada y obtenemos 255.



- Conexión de un potenciómetro a la tarjetas controladoras
  • CHI030A "Proyectos PICAXE-18 estándar"
  • CHI035A "Proyectos PICAXE-18 de alta potencia"
Problema
  • Todas las entradas tanto de esta tarjeta CHI030A como las de la CHI035A, tienen una resistencia de 10K conectadas a tierra (resistencia de pull-down) que no es necesaria para el potenciómetro.
Posibles soluciones
  • Ignorar la resistencia de pull-down. La única consecuencia que hemos notado es que la variación entre 0 y 255 no es tan lineal ya que en la posición central obtenemos el valor 100 (en vez de 127). Para la mayoría de los proyectos escolares esto no es determinante.
  • Cortar la resistencia de pull-down según las propias instrucciones de la placa.
    Realmente tampoco trae mayor problema puesto que si más adelante se necesita, simplemente se la volvemos a añadir externamente.
    En concreto nosotros, en la mayoría de las prácticas usamos la versión anterior de la tarjeta estándar, la CHI030, que no trae estas resistencias ni en C.0 ni en C.1 y nunca las hemos necesitado.
  • La tercera solución es usar como entrada analógica una de las salidas B.4 a B.7 de la CHI035A, ya que no tienen resistencia de pull-down. Se puede acceder a las mismas en la zona central de la placa.
    Sin embargo esta solución solo es válida si no necesitamos dos motores con giro reversible, ya que estos se gestionan con las salidas antes mencionadas.
    En el caso de querer usar B.7 como entrada, necesitamos el comando:   let dirsB = %01111111



























· Módulo de comunicaciones por Bluetooth (JY-MCU - V1.06)


  • El módulo JY-MCU V1.06 nos permite enviar señales desde una tableta Android al PICAXE a través de Bluetooth. El nombre que trae por defecto es HC-06 y el pin 1234.
  • Realmente es un emisor-receptor, 
  • NO es necesario ningún cable especial para configurar este módulo.




- Conexión del módulo Bluetooth a un micro PICAXE

La conexión de este módulo a un chip PICAXE es directa
  • Vcc se conecta a la misma alimentación que el PICAXE
  • Gnd se conecta a la misma masa
  • Txd a cualquier pin que funcione como entrada
  • Rxd a cualquier pin que funcione como salida




- Conexión del módulo Bluetooth a una tarjeta controladora

¡Cuidado! No funciona la conexión directa del pin TXD del módulo a las tarjetas CHI030A y CHI035A
("Proyectos Picaxe-18 estándar" y "Proyectos Picaxe-18 de alta potencia" respectivamente).

Explicación. Estas tarjetas tienen en todas sus entradas y salidas una resistencia de 10K llamada de pull-down entre el correspondiente pin y G.
Cuando el módulo transmite, por la salida TXD apenas se entrega intensidad, y esto hace que a la pata del Picaxe le lleguen casi 0V (obviamente Picaxe no es capaz de leer nada).

Solución: ponemos manualmente una resistencia de 10K entre el pin que usemos como entrada en el Picaxe y V+.

Teniendo en cuenta lo anterior, hay varias formas de conectar el JY-MCU a la tarjeta controladora, ya que casi todas las patas de un Picaxe pueden configurarse como entrada o salida.

  • Primera forma (esta sería la más lógica)
    • Txd a la entrada C.0
    • Una resistencia de 10K (también sirve de 1K) desde C.0 a V+
    • Rxd a la conexión B.0 del centro de la tarjeta (antes de la etapa de potencia), no en el borde
  • Segunda forma (esta es la más práctica; ver esquema abajo)
    • Txd a la entrada C.0
    • Una resistencia de 10K (también sirve de 1K) desde C.0 a V+
    • Rxd a C.1 y configurar este pin como salida con el comando "output C.1"
  • Tercera forma
    • Se usan B.0 y B.1 del centro de la tarjeta como en el primer caso, junto a la resistencia de 10K.


Mostramos a continuación el método que se recomienda


Nota
Para nuestros proyectos, y solo por comodidad, hemos puesto sobre unas pequeñas tarjetas perforadas de soldadura rápida la resistencia así como unas fichas de conexiones.

En las siguientes imágenes se ve la pequeña tarjeta conectada al módulo por el cable de 4 hilos que trae.
Aparte de las prácticas, la usamos en nuestros sobre coches controlados por Bluetooth.
El módulo queda más protegido y es fácil ponerlo y quitarlo.






- Configuración del módulo JY-MCU V1.06

Utilizando el esquema de conexiones anterior es fácil configurar el módulo.
No se requiere ningún cable especial para el mismo.
Podemos cambiar el nombre que se ve desde la tableta Android (por defecto es HC-06), la contraseña, comprobar la versión o cambiar la velocidad de transmisión (en baudios).
La lista de comandos AT es fácil encontrarla en Internet.

En los siguientes enlaces están los programas para: