I suspect you are looking for a setup where a parallel to serial register on the "far" end transmits the data through the wire and a serial to parallel to serial shift register on the receiving end.
However, that basic approach has several issues:
- Most of the common register chips come in 8 bits so you will need to chain two of them. You are already looking at 4 chips to do this.
- You will need a clock signal which will need to travel between the endpoints, already increasing the number of wires.
- You will need a load/start line that will control the conversion sequence
- Even at 3 meters and very slow speeds, the likelihood of having errors due to noise is rather high.
Given the above, below are a few choices you may want to consider.
- Bite the bullet and run all 16 wires plus power or ground. Sounds like a lot but you can use 3 CAT-5 wires with RJ45 connector and it would be relatively compact. Still have to worry about noise, so use a set of resistors that will run a few mA of current through the wire to increase noise tolerance.
- If you are handy with microcontrollers, use a microcontroller instead of shirt registers to do the encoding/decoding. You can use an 8-bit PIC with enough IO to sample the lines plus 1 extra for a UART. On the far end encode and send it using the UART and the reverse on the receiving end. The PICs have built-in oscillators and if you can find in stock one that also has internal pull-ups, you will just need one chip and a bypass capacitor on each side. You'll need a 3 wire cable (power/ground/serial).
- This is a variation of (2) to deal with possible noise, add a differential driver on the far end and a differential receiver on the other end. Adds two chips, and the cable now has to have 4 wires but it will be immune to noise.