In questo esempio viene mostrato come impostare la modalita' di ibernazione di un modulo Xbee utilizzando un pin comandato da Arduino
Per prima cosa si deve procedere ad una modifica hardware sullo shield Xbee saldando un connettore da piedino 9 dello Xbee e portandolo dentro la porta D9 di Arduino
Se il pin 9 di Xbee si trova nello stato low (ground) viene abilitata la trasmissione/ricezione del modulo, se il pin 9 si trova nello stato high (che per Xbee vuol dire 3.3 V !!) la radio viene spenta
Visto che su Arduino le uscite digitali sono a 5 V (e contrariamente a quello che viene citato qui che non ci sono problemi ad alimentare un piedino a 3.3V con un tensione da 5V) lo sketch Arduino utilizza la modalita' PWM del pin D9 di Arduino per impostare un corrente di 3.3 V
Dal punto di vista software bisogna configurare XBee con XCTU a funzionare come End Device (si puo' fare questa modificando solo modificando il firmware mediante Update Firmware) e modificando i valori di Serial Interfacing/D7 DIO7 Configuration su 0 Disable ed impostando SM ad 1 (Pin Wake Mode)
----------------------------------------------------------------------
#define XBEE_SLEEP 9
void setup() {
//setta il pin 9 come controllo dello sleep di XBEE
pinMode(XBEE_SLEEP,OUTPUT);
analogWrite(XBEE_SLEEP,0);
}
void loop() {
analogWrite(XBEE_SLEEP,168); //spenge XBEE, 3.3V PWM
delay(sleep_time); //tempo di standby
analogWrite(XBEE_SLEEP,0); //risveglia XBEE
----------------------------------------------------------------------
Nessun commento:
Posta un commento