Designing an interface for my car steering wheel to a Android head unit

  • Replies:0
  • OpenNot stickiedUnanswered
  • Forum posts: 1

Mar 14, 2018 7:54:27 AM via Website

I am designing an interface for my car steering wheel to a Android head unit, using a Sparkfun Arduino Pro Micro to handle the USB side of things. The steering wheel buttons use three wires and a [resistor][1] ladder for the buttons, as shown in this diagram from the service manual:
Each resistor in the diagram is the same value. My current solution is looks like this:
Which works on my PC, but causes two problems in the car

  1. Pressing "Power Switch" or "Mode Switch" causes a brown-out on the
    micro controller and resets it, most likely due to exceeding the USB
  2. The car is a much noisier environment and the "Volume Switch"
    buttons are not distinguishable reliably in the car, no matter how
    much smoothing i do in code.

Ideally what I need is to know which line (L or W) is being pressed when the ADC reads a value. This would make the noise far less of an issue and I could then probably apply some sort of current limiting to eliminate the brown-outs without worrying about compressing the ADC range of values too much (and lose the diode).

Is there a simple way I can read the value at the ADC and use a digital pin to figure out which line was pressed (hopefully without too many components)?