I am looking for an Arduino-based solution for an automotive lighting application.

System Requirements:

  • Able to Operate in Automotive (Interior) Environment (12 +/- 2V DC Voltage)

  • Minimum 3 12 V DC Inputs (Preferably 6)

  • Minimum of 3 12 V DC Outputs capable of operating standard automotive-style relays. (Preferably 6)
  • Compact/Condensed Form-Factor

Finding an Arduino that runs on a 12 V power supply is simple, but finding one that can handle 12 V I/Os has proven tricky.

Using a relay shield for the outputs is straightforward enough, and would be a safe way to step up the output voltage and current (although current is of little concern, given I'm only going to powering the coil in a relay). But what to do about the inputs? I don't want a transistor on each input - that would get quite tedious and large very quickly. Using relays on both sides would work, but most shields are setup to receive coil activation signals from the Arduino and as such also can't handle 12 V inputs, so using a relay shield to step-down from 12 V to 5 V also seems problematic.

Is there an all-in-one I/O solution that can step-down incoming voltages for the board and step-up output voltages on the other side?

What are my best options? I'd prefer not to have to custom-make a shield for such a basic I/O application...

Any and all help is greatly appreciated!

  • 1
    I think this post is 'on-topic', but you may have to look at ways of converting 10-14V -> 5V and that might be better posted on The Electrical Engineering forum, but don't mention the "A" word, otherwise they will fling you post over here faster than you car can do a 1/4 mile :) Jul 28 '17 at 7:52
  • 1
    I understand what you mean. Converting voltage isn't foreign to me (I'm a M.E.), but I'm surprised there is not already a shield that accommodates this sort of thing. Maybe something like this? ledsee.com/index.php/en/arduino-modules2013-02-16-10-32-17/…
    – Simcik
    Jul 28 '17 at 13:35

A Logic Level Converter can step-down incoming voltages for the Arduino inputs and may also work to drive the relay coils. Heres an example of a 4 channel board:


and there are also 8 channel boards:


The boards are small and use BSS138 MOSFETs, which, according to the data sheet: http://cdn.sparkfun.com/datasheets/BreakoutBoards/BSS138.pdf can handle a maximum of 0.22A continuous current and a Drain-Source Voltage of 50V. The SparkFun link has lots of information about these devices. Normally, you would use them to translate between 5V and 3.3V but I don't see why you couldn't power the "high voltage side" with the vehicles 12 - 14V and the "low voltage side" with 5V from the Arduino.


You could use a simple voltage divider on the inputs. It would take 2 resistors pre input. That wouldn't be too huge.

  • 1
    I do not think a voltage divider would be sufficient for an automotive application given the likelihood of voltage fluctuations.
    – Simcik
    Jul 28 '17 at 4:52
  • I see what you're saying. But you could divide it down to 3.5 volts or maybe a little less and still rely on it reading HIGH. So the overvoltages wouldn't get out of range as much. You could also put a cap across to take out the big spikes.
    – Delta_G
    Jul 28 '17 at 18:33
  • That's a good point - what's the lower cut-off for "HIGH", just under 1V, right?
    – Simcik
    Jul 28 '17 at 22:28
  • Depends on the chip. For the 328 and the 2560 it's 0.6 * Vcc. So right at 3V for something like an UNO at 5V. I do know from much experience that the signal form any 3.3V device will reliably get you a HIGH. The cutoff for LOW is 0.3*Vcc, so for an UNO at 5V that's about 1.5V. Between 1.5V and 3.0V things aren't so well defined.
    – Delta_G
    Jul 30 '17 at 18:53

An easy solution would be to use a 10K resistor in series between the 12V input and the Arduino input. This reduces the current down to about 1mA. The zener diode in the microcontroller would then safely limit the voltage to 5V.


simulate this circuit – Schematic created using CircuitLab

Its the nice easy compact solution you are looking for.

  • 1
    There is no Zener in the microcontroller, but a diode from GDN to the pin, and another diode from the pin to Vcc. Aug 27 '17 at 17:19

I Suggest you to use esp8266 in order to control appliances over wifi and I want to know that why you want to use 12v power supply in your project... Most of the programmable boards, sensors are only compatible with 5v...... So please think about that...

  • 3
    I don't think you read the question well enough. Automotive systems (with the exception of a few specific sensors) operate on 12V DC. Any board used MUST be able to, via some method (relay shield, transistor, voltage divider, etc.), accommodate this voltage. What I am asking about is how best to accommodate that voltage. Additionally, WiFi is NOT a suitable control method for this type of system - this will be discrete analog I/O with basic logic controlling it.
    – Simcik
    Jul 28 '17 at 4:55
  • 2
    @Shyam Singla - Did you post this answer on the wrong question? There is no mention of WIFI, and the 12V power supply is because the target environment, a car, uses 12V through out. Also I believe you are wrong when you say most programmable boards and sensor are 5V. Jul 28 '17 at 7:48
  • @CodeGorilla There is no mention of WiFi in this answer either. ESP8266 might not be the best solution in this case, but it isn't the worst, it would still work.
    – Avamander
    Aug 7 '17 at 21:51
  • 1
    @Avamander "control appliances over wifi" Aug 8 '17 at 7:09
  • 1
    @CodeGorilla My bad, though an ESP8266 would still work, although it's not the best choice.
    – Avamander
    Aug 8 '17 at 9:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.