Edge detection on a DC motor

hi, i'm making an exhaust valve for my car. Everything works as intended, only the valve itself moves quit slow. This is because a have resistor of 100 ohms in front of it so i can measure the voltage drop when it's fully closed or fully open. Something i didn't take into account was the very low internal resistance of the DC motor, so the motor is not getting 12V as i intended.

Is there a way to change the edge detection so that i don't have to put a resistor in front of it or do i just lower resistor in front so much that it gets it's full voltage back on the DC motor?

ps: when this valve close the current rises because the motor hits the housing to close itself fully

Why 100 Ω and not a shunt of 0.01 Ω ?

1 Like

Hi, @sander420
Welcome to the forum.

You need a current shunt to measure the motor current.

Google;

arduino current sensor

Tom... :grinning: :+1: :coffee: :australia:

Good way to eventually burn out your motor

1 Like

Yeah that’s why i have the resistor for edge detection. That way it stops the power to the motor when it is fully open or closed

Thanks a lot. I forgot these shunt resistors existed. I am swapping it out when i have time

Is just used what i had lying around. I’ll order shunt resistors when i have chance and swap them out

So you will have the 100 ohm resistor to limit current and the small shunt for measuring current?

Do i need a current limiting resistor? It draws about .8 amps when it is pushing against an edge

Few motors are designed to survive being stalled for any significant length of time, and if powered while stalled, will probably burn out.

If the motor is driven into a stall condition, change the valve design.

If speed of actuation is an issue you can have two drivers for the motor.

Driver 1 will put full power on the motor for some number of milliseconds, to close the valve.
Driver 2 will put a much lower power (via a series resistor or PWM or both) to keep the motor there but not overheat the motor.

This is how they drive automotive fuel injectors.

1 Like

Hi,
The best solution is to have limit switches fitted to the valve, so the software knows when it is fully open or closed.
Then you use that information to turn your motor off at the limits, that way you do not need to monitor current to detect the motor stalling.
This could also be used to detect operational faults, like motor failure.

Tom... :grinning: :+1: :coffee: :australia:

1 Like

I think there is no way around this. The valve needs to fully close against an edge otherwise you would have an exhaust leak

I will look into that thank you

With limiting switches i don’t think i get goed enough of a seal to close it without leaks

I see some torque limiting devices on servos and sometimes on axles. It's just a spring loaded face gear set that clicks and slips when driven against an fixed unmoving load.

You could probably find one that could deliver enough pulses at high enough torque to drive the valve full open or close.

a7

Do you think that will be necessary? The moment it pushes against the edge, the arduino will cut power to the DC motor leaving it fully opened or fully closed

Have a look at how commercial ones work.
There are some vacum operated ones which would simply cure the stalling issue .

With an electric motor you would need limit switches , with a clever linkage design , you can make an “ over centre” spring setup that would hold the valve in one position.
I’d go the vac route as it’s simple.

A solenoid operated valve is another option

I have a naturally aspirated engine. They don’t have a constant vacuum if i’m correct

Unless it’s a diesel , it will produce a vacuum , you might need a reservoir for it .

You can always make a cable operated valve !