- Forum posts: 1
Mar 14, 2018, 7:54:27 AM via Website
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
- Pressing "Power Switch" or "Mode Switch" causes a brown-out on the
micro controller and resets it, most likely due to exceeding the USB
current. - 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)?
Recommended editorial content
With your consent, external content is loaded here.
By clicking on the button above, you agree that external content may be displayed to you. Personal data may be transmitted to third-party providers in the process. You can find more information about this in our Privacy Policy.