I'm connecting an xBee to a 5V Arduino Uno, and want to use the logic levels on the xBee pins to talk to the Arduino. Specifically, I've made a five switch keypad that connects directly to an xBee transmitter that has pins D0 through D4 connected to the switches as Digital Input (DI). The switches connect the pins to ground when they are closed (pull them LOW). I have the xBee transmitter configured to update once per second, but to immediately transmit when there is a logic change on any of the input pins (DIO change detect set to watch all five pins). All that works and it sends the proper packet to the receiver, updating immediately when I push or release any button. I can see in the recvr connected to the terminal of X-CTU that: Switch data byte No switch pressed 0001 1111 right 0001 1101 left 0001 0111 center 0001 1110 forward 0000 1111 back 0001 1011
So now I need to hook the receiving xBee up to the Arduino. My concern is the difference in operating voltage. It seems that if I set the Arduino input pins to low and the Reciever xBee has it's pins set as DH in default and they go low to show a result that I won't have a voltage concern. But I wonder what happens when the system is first powered up. I read the pin voltage on the arduino with a pull down resistor added to each input pin, and didn't see anything, but my sketch didn't work right away, so I'm wondering if I'm thinking about this incorrectly.
One issue that has me wondering what I'm missing is that when I connect a voltmeter to the recvr xBee it shows 3.3V on the output pins regardless of whether or not I have the pin set high or low, and when I push the associated button on the transmitter the rcvr pin goes low--again, whether I have it set to DL or DH.