Running car clocks from arduino

Hi guys, a brief introduction,

Im an experienced programmer but completely new to electronics, as such, its the electronics im having issues with.

I basically want to add a little screen to my car to monitor sensors around the car. Oil temp, oil pressure, boost pressure etc. Id also like to interface this with the car dash and to do this it would appear i need to output 12volts.

Now im aware that the arduino only deals up to 5 volts but searching around it would seem i can use a transistor to get this increase in voltage?

Can anyone give me a quick guide on how i would go about this, i understand my project isnt unique but even after reading through others like mine im still having no luck on this initial step.

Even if its just a link i would be most appreciative.

Regards

Ross

I'm not sure if they exist for 12V, but there are things called "logic level converters" Here's a 3V to 5V one: http://www.sparkfun.com/products/8745

The idea is that some micros and sensors operate at 3.3V, and others operate at 5V. If you output 5V to a 3.3V system, it will blow up. So by using the above converter, you can turn 3V signals to 5V, and vice versa. Google around for some 12V to 5V ones.

Rossco_:
Id also like to interface this with the car dash and to do this it would appear i need to output 12volts.

Can you explain a little more about what you mean by that?

Normally, to control 12V with the 5V outputs of the 'duino you'd use either a relay or a transistor. Google "Arduino relay shield."

I don't get why you need 12v output... Do you need to switch on something?

And.. this is just an idea, but I think that it's easyer to sobstitute the original car display, read the signal bus from the car and interface it with your screen.

Yes, the clocks in the car (mk2 golf gti) require a signal from 0 - 12v for operation of the instruments. I want to start of by operating the rev counter (tacho) so im assuming i need to supply the clocks with a 12v signal to get the needle to work its way the full range of the clock.

If anyone knows otherwise i would love to hear as i said im a total newbie and a lot of this is assumptions

Sorry Rossco, is "clock" Scottish for speedo/instrument?

To output to 12v you can level shift with a transistor or an open collector/drain interface chip.

To input from 12v you can use a zener or voltage divider.


Rob

Rob, haha, yes its a scottish term. We would say look how far my clocks go or something similar.

Instrument cluster is the technical term i guess.

'To output to 12v you can level shift with a transistor or an open collector/drain interface chip.'

Thats exactly what im after, can you provide a link or even a small insight as to how i would go about implementing this?

Much appreciated.

I still don't get why you need to output 12v. It sounds like what you want to do is read the sensors. Do you want to control what the "clocks" say or do you just want them to operate normally?

I want to control what the clocks say, ultimately i want the speedo and the rev counter to do a full sweep of the dials upon ignition being turned on.

Like a small starting ceremony.

Rossco_:
I want to control what the clocks say, ultimately i want the speedo and the rev counter to do a full sweep of the dials upon ignition being turned on.

Like a small starting ceremony.

OK, that's a little different. What you want to be is a "man in the middle" between the dials and their sensors. In normal operation you just pass on the signal from the sensor. At startup you pass a signal for a full sweep.

What I would recommend is using the arduino to control a relay to switch the input between the sensor and the arduino. In normal operation the relay is switched to the sensor and operation is, well, normal. At startup you switch the relay to connect the output of the arduino to the input and send a signal to make the needle do a full sweep.

What kind of signal do you need to send? Most likely, it's constant voltage, variable frequency, which lends itself easily to pulse-width modulation. You'll have to find out what voltage level it uses. If it's more than 5V you'll have to use a transistor.

Thats exactly it, you have the idea bang on.

As far as i can work out the clocks are requiring a voltage higher than 5v, from what i can find out its between 9v and 11v so i would have to use a transistor as you say.

What im very unsure of is how i would actually go about using a transistor. I get that there are 3 pins on a transistor, the input pin on the arduino goes to the base, this is the switch right?

The collector has the 9-11v supply? so when i set the arduino pin to a voltage it gets sent and passed on?

Im assuming i would have to use the analog pins so i can actually set a value?

Here's a tutorial on using a power transistor:
http://itp.nyu.edu/physcomp/Tutorials/HighCurrentLoads

You want to use an analog output, but you have to go a little further. The analog output creates a pulse-width modulation (PWM) signal. It creates a series of pulses. The analog value is what portion of the time the signal is on. What you'll need to do is vary the frequency of the pulses.

This tutorial shows how to change the PWM frequency:

Great, i fully appreciate that mate.

I shall have a bash with those links and let you all know how i get on.

Thanks again