Arduino Controlled PWM

Rate this Entry

While learning about PWM manipulation, I also discovered a really cool related project
Basically, this device allows you to connect an Arduino in and immediately (after some minor coding) read the values via standard OBD-II protocol based interfaces. Some example values are: RPM, throttle position and calculated engine load. There are many more values to read with this handy little device as well.

For more info on standard OBD-II PIDs, take a good look at the OBD-II PIDs here

The device above plugs directly into your vehicle's OBD-II port and is also powered by that same port. The other end of the device is connected to the Arduino. I suggest using an Arduino Uno Rev3.

I have put a great deal of time and research into this little device and have had a good deal of help from one of my conrads who is an EE. Essentially, with a system like this you could control current to just about anything your heart so desires. It is, however, very smart to ensure that what you intend to control via PWM is compatible with PWM. Be smart, do your research first!

So, at the end of the line, this little box sits connected to the reactor and Arduino waiting for the Arduino to pulse a 5V gate signal (at the dynamic duty cycle) thus altering the amount of current sent to the reactor.
Tags: None Add / Edit Tags


  1. Stevo's Avatar
    Updated 12-16-2013 at 07:27 PM by Stevo
  2. Stevo's Avatar
    I have added a current carrier from and added a $3 project box to it. Soldered the wires in and routed with some rubber grommets.

    I added the proper capacitors to the current carrier.

    Updated 12-16-2013 at 07:09 PM by Stevo
  3. Stevo's Avatar
    Bear with me, I'm porting this info from my account....
  4. Stevo's Avatar
    Now, I will go into the install (which was a *****):

    Next, for my car, I needed to build a mounting plate for the reservoir and bubble to be mounted on. I built one from 14 guage steel and painted it black.

  5. Stevo's Avatar
    This is the "brain" consisting of (left to right) a 5V 1A voltage regulator, Arduino Nano, and 4N35 optocoupler on a prototype board. I am using a 15 pin Molex 0.062 standard size connector set to keep the brain modular. This was installed into my glove box where it is tucked away quite nicely.

    Here is the power slave mounted out of sight:

  6. Stevo's Avatar
    I should receive the OLED display some time this week so that I can get a readout of the amperage as well as other metrics from the OBD-II system.
  7. Stevo's Avatar
    This is where the OBD-II module plugs in:

  8. Stevo's Avatar
    And this is the display module in the custom 3D box I created.

    It's hard to see, but the top left is amps. The display is 128x64 OLED and active area 22.79(W)11.85 (H) mm
  9. Chillie's Avatar
    it looks very clean, nice work.

    I have been thinking of building an Arduino based controller for the cell. Having all the OBD2 data you could hook up the 02 and other sensors, and have the Arduino optimize the offsets. It looks like this Pic based controller did this , but no longer seems available.