Skip to content

Conclusión sobre ZigBee

Tras comprobar la simplicidad de ZigBee para transmitir datos y su bajo consumo, es positivo incluirlo en el proyecto, ya que permitiría funcionalidades como:

  • Monitorización en un ordenador de distintas variables medidas por el dispositivo.
  • Configuración de parámetros de la aplicación en el arduino.
  • Aviso automático (a través de una conexión a un ordenador) de problemas del portador.

Hay que hacer incapié en la cuestión energética: la necesidad de utilizar la funcionalidad del XBee de dormir bajo demanda, de modo que el arduino controle cuándo despertar para ahorrar todavía más energía. Esto se realiza a través del pin 9 del XBee (Sleep Request).

Conexión del pin SleepRQ

Configuración del XBee

Para poder dormir el módulo XBee desde el arduino primero hay que configurar el módulo XBee. Hay que establecer la siguiente configuración mediante el X-CTU:

  • SM = 1 (Sleep Mode = Pin hibernate)
  • D7 = 0 (control CTS desactivado)
  • PR = 0 (Resistencias de pull-up desactivadas para ahorrar energía)

Se desactiva la línea /CTS porque el XBee Shield está diseñado para poder resetear el arduino al poner a 1 la línea DIO7 remotamente, que está compartida con /CTS. Si no se desactiva desactiva esta línea ni se pone a 0, el arduino se reseteará cuando el módulo de XBee se ponga a dormir, porque el XBee pondrá a 1 /CTS (ya que al dormir no acepta datos). Esquema del XBee Shield.

Conexión al arduino

El módulo XBee PRO (S2) funciona con un voltaje entre 3V y 3,4V, de manera que el valor lógico HIGH es a partir de 2,4V.

El voltaje de salida del arduino en los pines digitales es dependiente del voltaje de alimentación, siendo el rango de salida de 2,3V a 4,2V.

Para poder acoplar la salida del arduino con la entrada del XBee, con el objetivo de consumir lo mínimo posible cuando se desee dormir el módulo XBee, una solución es aprovechar el pin de 3,3V que tiene el arduino (gracias al chip FTDI FT232RL) como señal de entrada al módulo XBee mediante un transistor MOSFET de canal N.

El esquema sería:

Con la resistencia R1 de 100Kohm, y el transistor Q1 modelo 2N7000.

En el circuito propuesto, cuando el pin D12 esté a LOW (0V), el transistor Q1 estará al corte y el pin D9 estará a 3,3V, de modo que el XBee estará dormido. El consumo será mínimo: las fugas por el transistor por la tensión entre el drenador y la fuente, y las fugas por el pin 9 del XBee (en conjunto, inferior al microAmperio).

Cuando el pin D12 esté a HIGH(4,2V-5V), el transistor Q1 estará en la zona de saturación y pondrá el pin 9 del XBee a LOW, lo que mantendrá al módulo XBee despierto. El consumo en este estado es el correspondiente a la corriente de fuga por el transistor puerta-fuente (despreciable) y la corriente que pasa a través de la resistencia R1: 33 microAmperios.

Mejora para reducir el consumo

Teniendo en cuenta que los pines del XBee que están al aire se consideran que están a alta, es posible simplificar y al mismo tiempo reducir a completamente despreciable el consumo de la interfaz adaptadora entre el arduino y el XBee.

La solución es el siguiente montaje:

En él, la interfaz es inversora. Cuando el pin 12 del arduino se pone a 5V, el pin 9 del XBee se pone a 0V y por lo tanto se despierta. Cuando el pin 12 del arduino se pone a 0V, el pin 9 del XBee queda virtualmente al aire y se duerme por considerarse un 1 lógico.

El consumo sólo aparece por las pérdidas entre Gate y Source cuando el arduino pone el pin a 5V. Según el datasheet del 2N7000, el consumo debería estar entre 10 y 100 nanoAmperios.

Post a Comment

Your email is never published nor shared. Required fields are marked *