Uno powered steering wheel game controller

Hi there,

I started a little project of turning an old steering wheel into a improved one using my Uno.

I have most of the stuff handled. For the ones interested in how it works go check out the project "UnoJoy".

So, I need a bit of "guidance" with the following:

  • The controller itself has 13 buttons (digital inputs) and 3 axis (analog inputs). My first concern is about the digital (and analog) input pins protection. The old chip has a lot of Zener diodes and some resistances. Should I worry about this? Right now, all of my buttons are connected right to the Arduino (and GND).

  • My biggest headache in this project: The 2 axis/potentiometers from the pedals!!!
    I have 2 100k linear potentiometer that are connected to the Uno using a usb cable: 2 wires to GND and +5 (of both pots) and the other 2 for reading the pot values. The problem is that I can't get stable results. The readings are always spiking.

From my research I found out that this is pretty common since I'm using an high resistance pot. I tried using a low passive filter and other solutions and nothing.
Should I buy a new and lower resistance pots or can I stick with this ones?

Some extra info:

  • My UNO serial speed is 38400 baud
  • Nothing else is drawing current from the Uno.
  • The usb cable that connects the pedals to the controller is about 1.5meters

Don't know what info matters...

I really appreciate some help here. Thank you.

Heavy protection circuits may indicate bad housing material, causing electrostatic discharge. Resistors in the input lines can protect the Arduino pins, to some degree.

Some ideas:

Noisy analog inputs can result from high impedance sources, or from noisy ADC reference or supply voltage.
Lower resistance pots (1-10k) may work much better.
Depending on the interior of the USB cable, switching the pins may help a bit. Also one (shielded) cable for each pot may help.
If a low pass filter does not help much, check the supply voltage. Add capacitors to the Arduino supply, AREF, and to the pots.
If you use the default (5V) ADC reference voltage, try using the more stable 1.1V reference, and adjust the pot ranges accordingly.