Read car AC display using Arduino

Hi All,

I’m trying to connect my Arduino to my car AC display (please see picture below). The AC display is at the bottom. There are 5 wires that going to the display.

  • blue/red - dimmer
  • green - acc power
  • yellow/red - knob temp (0-5v) control
  • blue - data (I believe that this is the data wire.)
  • black - ground

Here some info about the display:
(blue/red wire) - The display will dim when the head light comes on. I tested that wire with a meter and the voltage is 0v when the headlight is off, ~12v when the headlight is on. I want to plug that wire into my Arduino board and I’m going to use a voltage regulator to bring the voltage to 5v.

(green wire) - This is the acc wire. The only time it get voltage is when the car is on. I would like use this to power up my arduino. The voltage is ~12v. Question: is it safe to use ~12v power supply for my Arduino?

(yellow/red wire) - There is a knob that control the fan. I tested the wire and the voltage range from 0v - 5v. 0v means at the lowest setting, 5v means at the highest.

(blue wire) - This is where I’m getting confuse. I’m not sure if this the data wire (serial) or just voltage. When I tested the wire by pluging it into my Arduino (Analog), the voltage range from 0v - ~1025v. It will loop from 0 - 1025v, starting back to 0v. When I plug that wire into my Arduino using serial, I get no data. So I’m just lost at this point. Any help would be great.

(black wire) - Of course just the ground wire.

Any suggestions, help would be greatly appreciated.

Thanks for reading.

Careful! You are doing things that can damage your Arduino!

The acc wire that supplies 12V… yes, it could be used to power the Arduino, but you should be aware that it can be a “noisy” 12 volts and might have voltage drops or voltage spikes. Others have written about this. Not sure what the best advice is for this, but in theory it should work. I think I’ve read of others putting a voltage regulator in between the 12V and the Arduino to help save the Arduino from battery weirdness.

Using a 5V voltage regulator to drop a 12V signal for sense detection on an Arduino is not a good idea. It is a really, really bad idea. You should not do that. What you should do is use an optoisolator as a switch. Have the 12V signal switch the optoisolator on/off. Have a digital I/O pin on the Arduino connected to ground on the Arduino. So when the 12V signal is there, the switch is on, and current flows from the digital I/O pin to ground. When the 12V signal is not there, no current flows from the digital I/O pin to ground. Your use of a voltage regulator is just plain wrong. You do not want to add voltage to an Arduino’s input pins from another voltage source. They aren’t designed to do that. A voltage regulator will generate heat by burning off the excess voltage as… well… heat. It is designed to power something - not for using as an input signal. It might work, but it also might fry your Arduino.

The analog pins on the Arduino are only designed for 0 to 5V. The value you are getting is NOT voltage. The value is a range between 0 and 1023, which corresponds to 0 to 5V. So if you read a value of 512, that would be approximately 2.5V.

As for what you suspect is a data wire… It’s not likely to be a compatible serial signal that you can just hook up to the serial pins on an Arduino. You would need an oscilliscope or a digital probe that actually capture and analyze the highs and lows to figure out the signaling and protocol. Not something you can do without one, unless you can somehow find the specs on the protocol used. And even if it was a TTL serial or RS-232 or RS-485 signal, tapping into it with an Arduino could affect the signal and make it not work.

Is the fan knob a potentiometer with 3 wires? If so, your best bet might be to disconnect the fan knob from the AC unit and instead connect it to the Arduino to read, then use a digital potentiometer IC (like the DS1308 for example) to send a digitally controlled output to the AC unit. This would also let you override the fan setting from the Arduino.