Variable voltage divider (wiper module project)

Hello everyone. Been working on a project of retrofitting variable delay for intermittent wipers in car (currently have only fixed 6s delay which is too short) so I got wiper stalk from higher model that have this function but struggle to figure out the connection. Inside stalk is a five position selectable resistance with values 0 /2,15k /4,3k /6,42k /8,55k (steps of 2,15k ohm). On one side it is connected to 12v and the second side goes to the original control module. I do assume that on higher models there is inside a voltage divider and it reads voltage from it. Also when the stalk is in off position or normal/high speed wiper position, the variable resistance is disconnected (reading infinite ohms).
I did some experiments with small voltage divider feed from 5v which worked sorta but steps were very close together, we are talking about 0,8v - 0,3v which for noisy environment as car is not very good and there is also that fact that in position 1, on the output will be just straight 12v. I thought using a zener diode but that would technically pull the whole 12v grid down, I think that is.

Plan is to cut the output wire to the control module, read voltage on this wire and then send 1s pulse to the control module to start the wipe cycle and the original module should do the rest. I currently cannot figure out the reading of the output. Also I should note that I can’t do any modification on the input side of the stalk; that 12v is the main input for the wiper motor when running constantly. I can do whatever on the output side tho.
I will appreciate any input or suggestion.

Add a voltage divider to the switch output, from 12V down to 5V, e.g. 33k and 22k. Add a capacitor (0.1..10µ) to GND and a overvoltage protection diode to 5V (Vcc).

If the resistor ladder is connected to 12V then add a 2k2 resistor from bottom of the ladder (8k55) to GND.

I think you need to figure-out the schematic...

Is the 12V and/or ground "permanently" connected?

2.15 / 8.55 is 25% so that should be usable.

But you might have to regulate the 12V if noise is a problem. Or there might be a "trick" of making the reference track the power supply but regulation is probably easier.

You can also add some filtering and a little delay so it doesn't react to every little glitch in the voltage divider output.

As your load changes, your system voltage can also fluctuate. You'll probably want to have a voltage divider for the cars system voltage that goes to your AREF pin in addition to what others have suggested. If you're scaling changes without a reference, you could see your wipers changing speed when the head lights are turned on or off, etc. Could make for a fun haunted car though. :wink:

My other concern is what happens if you try to drive the output signal high when the stalk is in it's highest position? If the stalk 12v is powering the motor when running constantly, will also giving the output module a high signal cause an issue?

Mapping the 1024 ADC values into 5 wiper steps should eliminate such changes.

The point I'm making is that the range itself coming from the voltage divider isn't always based on 12v, but anywhere from 12 up to 14.2 volts. Do you understand?

You are right with a derived AREF for ratiometric measurement.
But then AREF has to be protected against spikes and other dirty effects what can stand in contrast to a ratiometric reference.

True. So one filtered, divided system voltage to AREF, and a similarly filtered but separate divider coming from the stalk used to determine its position would be necessary. The off position of the stalk is infinite, and the motor controller might be able to ignore the max value if the stalk and signal can be on at the same time. If so, only three positions would need to be accounted for and the divider for AREF could be tweaked appropriately for resolution purposes.

FYI: The wipers are considered a safety critical system, changing it or modifying it can place you at liability if an accident occurs.

1 Like

I built interval relays that have a variable delay, turn it on, turn it off, and turn it on again and it will repeat...

Chances are things are a tad different.

Voltage does indeed change, normally when the car is running it sits about 13.4-13.6. I did see spikes high as 14 and when the engine is off it is 12 or can be lower. I would not worry about incorrect time setting when at 12v.

Here is the original wiring diagram with my added mod. Block 145 is the wiper stalk: A7 is 12V in, A1 is output from variable resistance to control module (block 645), A2 and A3 are constant speed outputs for motor (block 212). A6 is input from the control module to start the wipe cycle when in intermittent mode. ARDU block is obviously what I added with simplified output.

My other concern is what happens if you try to drive the output signal high when the stalk is in it's highest position? If the stalk 12v is powering the motor when running constantly, will also giving the output module a high signal cause an issue?

It should not since when constantly running the control module is disconnected from the circuit inside the stalk.

I don't think that adding any sort of filtering on the input is possible since the same input (to the stalk) also powers the motor. I did even consider any sort of filtrations and/or stabilization for input as steps should be wide enough so +-70 or so of adc value should be okay, even more maybe.

What about using dedicated ADC ic and simply reading a divider based on 12v input (to14v yeah) and send it as i2c data? It will add a little bit of complexity but not much.

I think that if you add your own logic from results from the switch, then you should completely bypass the old system. Basically 'replace' your original switch with relays (3 i'd use, 2 for wipers on - slow - fast & 1 for the spray) to simulate the switch. Then power the new switch with a regulated 5v, and measure that variable resistance as well as any other switch setting (spray, slow/fast wipe) and control your relays from the MCU of your choice (i managed on an ATtiny13) with any sort of logic.

Doing half a job will only complicate matters, but doing so with an added MCU will mean that you subject that MCU to the voltage spikes of the car. If on the other hand you do want to stay analog, you can change to using a 555 timer, which does withstand the higher voltage (and the spikes) without issue, the resistors in the switch now simply act as part of the timer circuit and no voltage divider is needed. Chances are this is how it is done in the original system of your new switch.

Part of most automotive module specifications is roughly 6V to 24V with some time limits on the 24V. This is because some road rangers use a 24V battery to jump start cars. Also understand that they sometimes hook them backwards. If you have a loose battery and the alternator is charging you may get some very nasty spikes, the level depends on the built in suppression in the vehicle. Vehicle electrical systems are very nasty.

An ex had a Jeep with a bad battery, internally shorting. Every bump in the road would make it go crazy. Every light was flashing so bad people would move over thinking she was an emergency vehicle. So yeah, nasty.

They are, but capacitors, flyback-diodes and diodes in general can help a lot. To put it simple, if you are going to use a mcu in a car, you have to protect it. and that means for any control signal coming from the car, a voltage divider probably isn't sufficient protection.

on a different note, the current interval may be created with a timer-control similar to (or the same as) a 555 timer, where the control signal is fed through a resistor and fills up a capacitor, in that case, just changing the switch may actually work without any other modification, but that would be to good to be true.

Resistors will work, but the current must remain in the range the micro can protect itself from while not exceeding its max current. Take a look at the ESD specifications from the processor OEM or the AEC-100 series of automotive requirements. It typically takes a ESD discharge greater than 2,000 to 3,000 volts for a person to feel the “zing”. The number varies because the sensitivity of people is different and measuring the voltage is imprecise, so neither 2,000 to 3,000 is an exact value. Look at this table: Automotive ESD AEC Q100 & ISO 10605 This will help explain why there is no one best method. Just a hint not all of the OEMs have the same specifications.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.