Currently I tie this line to ground with a 10k resistor, and regulate it to 3.3v with a TS2950CT-3.3, before connecting to a digital pin on the arduino. Is this a correct way of doing things? Do I need to add or change anything?

So in theory a voltage divider using r1 = 15k, r2 = 12k, will give me the same output of 3.33v. What is the advantage of taking it higher to 4.5v? I always thought Id keep things lower to offer more protection.

Are we talking about an arduino that runs on 5V, you haven't said.Basically you want the signal as close to the supply as possible and in any case not more than 0.5V above it.While a 5V arduino will respond to a 3V3 signal as a logic high it is more susceptible to noise and interference.

The 0.3V will be divided down to something like 0.2V, well within spec for a logic LOW

To explain slightly more about logic thresholds:

Every logic family (this includes ATmega series of microcontrollers which are a family) standardizes on the voltages that represent logic HIGH and logic LOW. But there are two specifications each for HIGH and LOW.

Any device _outputing_ a LOW is _required_ to generate a voltage below VOL. Any device _reading_ a logic LOW is required to accept any voltage from 0 to VIL as "LOW".

For instance for the ATmega running at 5V supply, VOL = 0.9V and VIL = 1.5V. This means upto 0.6V of noise can be injected onto the signal line between the devices and a LOW will still always be recognised correctly. In digital circuits there is always noise being injected via stray inductance and capacitance, so this "noise immunity" can be very important.

On the high side VOH = 4.2V and VIH = 3.0V. Thus you want your resistive divider to output between 4.2V and 5.0V for a HIGH and between 0.0 and 0.9V for a LOW.

At a pinch you will get away with the ranges 3.0V..5.0V and 0.0V..1.5V, but this means you lose "noise immunity" - there is a risk of noise interfering with the correct recognition of the logic signal. 4.5V for HIGH and 0.2V for LOW are fine of course.

One conseqeuence of the VIL=3.0V means that most 3.3V logic devices can drive the Arduino inputs (but with lower than normal noise immunity).

[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]