Skip to content

Pruebas de comunicación: pulsador

En esta prueba se comprobará la respuesta a un pulsador. Se programará el arduino para que cuando le llegue un determinado carácter, el LED integrado conmute. El emisor será el módulo XBee conectado al X-CTU, utilizando la terminal intergrada.

Para ello se necesita:

  • Un arduino con XBee como end device.
  • Un arduino con XBee pero sin microcontrolador, como coordinador, que transmitirá los caracteres mediante la terminal del X-CTU.

Configuración

End Device

El XBee Shield del arduino que funcionará como receptor ha de tener los pines en posición “XBEE” para que sea el microcontrolador el que emita y reciba del módulo XBee.

El firmware del XBee será el “ZIGBEE END DEVICE AT” versión 2870, con los parámetros:

  • PAN ID: 0×3332
  • DH: 0
  • DL: 0 (destino: el coordinador)
  • BD: 3 (9600 bps)
  • ST: 0xFFFE (Tiempo antes de pasar a dormido)
  • SO: 2 (Estar todo el tiempo indicado por ST despierto)

Coordinador

El arduino que funcionará como coodinador deberá carecer de microcontrolador. El XBee Shield deberá ser configurado con los pines en la posición “USB” para que la comunicación sea entre el módulo XBee y el ordenador, en el que se ejecutará el X-CTU, conectado al módulo y en la pestaña “Terminal” para poder ver los mensajes de entrada y salida del coordinador.

El firmware será el “ZIGBEE COORDINATOR AT” versión 2070 con los siguientes parámetros:

  • PAN ID: 3332
  • DH: 0
  • DL: FFFF (Broadcast)
  • BD: 3 (9600 bps)

Código fuente

El módulo de arduino que estará esperando por un carácter estará programado con el siguiente código:

// Conmuta el estado del PIN 13 al recibir el carácter 'c'

int estado = LOW ;

void setup() {
  Serial.begin(9600) ;
  pinMode(13,OUTPUT) ;
  digitalWrite(13, estado) ;
}

void loop() {
  if (Serial.available()>0) {
    char dato_b = (char) Serial.read() ;
    if (dato_b == 'c' || dato_b == 'C') { // 'c'onmutar
      if (estado == LOW) estado = HIGH ;
      else estado = LOW ;
      digitalWrite(13,estado) ;
      delay(250) ;
    }
  }
}

Cuando recibe el carácter ‘c’ o ‘C’, conmuta el pin 13 de manera que se enciende y se apaga el LED integrado que lleva el arduino.

Post a Comment

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