Pages: [1] 2   Go Down
Author Topic: Using electric motor to control engine speed on gas motor  (Read 2553 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

My project is to develop a load-based high idle control system.  It might sound complicated, but I think it should be pretty easy.  Just want someone to take a look at it for me.

The mechanical portion is already in place.  The vehicle's cruise control actuator is the perfect setup for doing this.  I've unplugged it from the rest of the vehicles electrical system, so it is no longer being used for "cruise control".
Basically, it's just a 12v electric motor that has a cable that runs to the gas engine's throttle body. 


So, to control that electric motor, I need an H-bridge controller.  I'll post up my parts list here in a minute.


I'm wanting to use an Arduino to control this project.  I run an air compressor off of the engine, which requires more engine speed than the typical ~850rpm that an engine idles at.  This is where I need high-idle capabilities.


Overview:

Arduino is set to hold 1500 engine rpm
Arduino reads tach signal from engine (tap into tach signal wire)
Arduino uses PWM to control H-bridge, which controls electric control motor


Benefit of doing it this way, is that the engine will hold 1500rpm no matter what the load is.  As the air compressor cycles, the load changes.  Therefor, a set throttle position (say 20%) may hold 1500rpm with no load, but as soon as that compressor kicks on, it may drop down to 1200rpm or less.


Your thoughts on this?
Logged

Ontario, Canada
Offline Offline
Full Member
***
Karma: 0
Posts: 175
That's me in the avatar. :D
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sounds like a plan to me.

You need a way for the arduino to monitor engine RPMs.
I'll be looking into this myself, over the summer, as I want to make a cruise control system.

What vehicle are you running this system on?
Does it use a cable throttle, or Drive By Wire?


Off the top of my head, ideas to grab the engine revs.
-Tach signal off the distributor (not sure if this would be at a high voltage though)
-Voltage off of the gauge needle motor.
-OBDII interface.

Some sort of failsafe would be good. Perhaps a switch that kills power to the arduino unit?
Something automated that kills Arduino power if the motor starts to race [Perhaps when you get fuel-cut at the rev limit?]

In terms of powering the Arduino off of ~14.4v car voltage, I was planning on using a (LM7809CT-ND) to pull the voltage down to 9v, and have the Arduino voltage regulator drop it to 5v.
Not sure if this is the best way though.
« Last Edit: December 08, 2011, 01:28:30 pm by Panici » Logged

Electrical Engineering Student

UK
Offline Offline
Shannon Member
****
Karma: 184
Posts: 11197
-
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If I were you I'd follow the approach which is conventional for engine management systems to control idle speed - fit an idle control valve - basically a stepper motor controlled air bleed valve - to provide an air bleed past the throttle plate. This avoids interfering with the cruise control system. By designing the air bleed to provide a suitable restriction, you avoid any issues about giving the engine excessive throttle. (When it is off load and at small throttle openings the engine is extremely sensitive to small changes in throttle position.)

The Megasquirt web site suggests some sources for the idle control valve and describes how to drive them. They are inexpensive, easy to plumb in for most installations, and electrically straight forward.
« Last Edit: December 08, 2011, 02:09:13 pm by PeterH » Logged

I only provide help via the forum - please do not contact me for private consultancy.

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sounds like a plan to me.

You need a way for the arduino to monitor engine RPMs.
I'll be looking into this myself, over the summer, as I want to make a cruise control system.

What vehicle are you running this system on?
Does it use a cable throttle, or Drive By Wire?


Off the top of my head, ideas to grab the engine revs.
-Tach signal off the distributor (not sure if this would be at a high voltage though)
-Voltage off of the gauge needle motor.
-OBDII interface.

Some sort of failsafe would be good. Perhaps a switch that kills power to the arduino unit?
Something automated that kills Arduino power if the motor starts to race [Perhaps when you get fuel-cut at the rev limit?]

In terms of powering the Arduino off of ~14.4v car voltage, I was planning on using a (LM7809CT-ND) to pull the voltage down to 9v, and have the Arduino voltage regulator drop it to 5v.
Not sure if this is the best way though.


I appreciate your response!  The vehicle is an older Toyota with a big ol' straight 6 engine.  It's a cable driven throttle body, and the cruise control actuator is mounted on the passenger side fender, and has a cable that runs straight to the throttle body. 
That's why I want to use it for this project.  It's already hooked up, and I know it has enough power to actuate the throttle body.

As for a safety, I've already got that lined out too.  Other than the Arduino reading a tach signal, the entire system will be separated from the vehicles electrical system.  It will be armed (powered) by a master toggle switch on the dash.  Therefor, if a problem were to arrise, I can simply kill the power to the high-idle system, and be on my way.


I'm glad you brought up the voltage issue!  I was wondering about that as well.
I've ordered the Arduino Uno R3, and the power specs for it only go up to 12v.  My rig runs right at 13.8v at a high idle.
Looks like we're both curious if anyone else has suggestions on power?


For the tach signal.  My rig is OBD-1, so I may be able to pull a signal off of that.  If not, there is a tach signal wire somewhere, just need to refer to the wiring diagram.
Also has a tach in the factory gauge cluster.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If I were you I'd follow the approach which is conventional for engine management systems to control idle speed - fit an idle control valve - basically a stepper motor controlled air bleed valve - to provide an air bleed past the throttle plate. This avoids interfering with the cruise control system. By designing the air bleed to provide a suitable restriction, you avoid any issues about giving the engine excessive throttle. (When it is off load and at small throttle openings the engine is extremely sensitive to small changes in throttle position.)

The Megasquirt web site suggests some sources for the idle control valve and describes how to drive them. They are inexpensive, easy to plumb in for most installations, and electrically straight forward.




I appreciate your help!  I had actually thought about using an air bleed system, or even tapping into the vehicles ISC module. 
However, with my rig, reliability is key, and I don't want to compromise any part of the electrical/engine management system.  That's why I've decided to control the cruise actuator, as it's simply "pressing the gas pedal" for me.  That allows for the engine management system to remain in full control, and untouched.
If my system has a problem, I'll simply unplug it, without having to worry about what else it may be affecting.  Just trying to limit myself somewhat!

Logged

0
Offline Offline
Tesla Member
***
Karma: 118
Posts: 8962
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You may want to look at using a servo for the throttle control.
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You may want to look at using a servo for the throttle control.


Can you elaborate on this, please?
Logged

0
Offline Offline
Tesla Member
***
Karma: 118
Posts: 8962
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Can you elaborate on this, please?

A servo can be commanded to push/pull linkage to specific positions (or rotate to specific positions). May be easier than using a stepper motor.
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Can you elaborate on this, please?

A servo can be commanded to push/pull linkage to specific positions (or rotate to specific positions). May be easier than using a stepper motor.


I understand that.  However, my point is that the cruise control actuator that came installed on my vehicle from the factory, does exactly what I'm wanting to do.  Whenever you are driving down the road with the cruise control on, it is holding the vehicles speed by controlling the throttle.  As the load increases (you start going up a hill), the actuator will apply more throttle to hold that speed.

The only thing that I am wanting to do differently, is hold a set RPM instead of a set Speed.  Instead of monitoring the vehicles speed sensor to vary the throttle, I just want to monitor the tach signal, and actuate the throttle accordingly.  That is just a change on the coding side, and should have nothing to do with the mechanical side (actuator), as we already know that it can actuate the throttle.


When I first thought about this project, I did contemplate using a simple RC servo, but then I would run into issues of it being powerful enough, sealing it from the elements, hooking up a cable assembly to run to the throttle body..ect.  I just didn't see a point in reinventing the wheel (so to say) on the mechanical side of this.


I'll post up pictures of the motor assembly tonight.


Here is my parts list to order:

Arduino Uno - R3  -  http://www.sparkfun.com/products/11021

Pololu Motor Controller  -  http://www.pololu.com/catalog/product/1376


Does anyone see any problem with using the Arduino Uno R3 with that motor controller? 




Also, take a look at this video I found on Youtube.  This guy is using the Arduino and a home-made H-bridge to control a cruise control actuator.  This is exactly what I am wanting to do, except have the Arduino sense a tach signal instead of the potentiometer that he is using in the video:




Thanks for your suggestions, and keep them coming!   smiley-cool
Logged

UK
Offline Offline
Shannon Member
****
Karma: 184
Posts: 11197
-
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Have you got a reliable tach signal? That's something that can prove quite tricky to get accurate, because the coil LT signal is very dirty. This is another area where the Megasquirt site has some very useful suggestions and circuit diagrams.
Logged

I only provide help via the forum - please do not contact me for private consultancy.

0
Offline Offline
Tesla Member
***
Karma: 118
Posts: 8962
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Instead of monitoring the vehicles speed sensor to vary the throttle, I just want to monitor the tach signal, and actuate the throttle accordingly.

What are the technical differences between the speed sensor output and tach outputs? In what form is the speed sensor output?
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Have you got a reliable tach signal? That's something that can prove quite tricky to get accurate, because the coil LT signal is very dirty. This is another area where the Megasquirt site has some very useful suggestions and circuit diagrams.

I'll take a look at the megasquirt site.  I would think there is at least one place to get a reliable tach signal on my rig, since the ECU is controlling the ignition, and driving a tachometer that is in the factory gauge cluster.  That's my next step.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, I pulled off my factory cruise control actuator, and in true Land Cruiser fashion, it's WAY overbuilt.

Here are pics:















Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

All of the drive gears are metal, the electric motor (huge) uses very nice bronze bushings for the worm gear, and that worm gear is actually driving a massive round gear that is located underneath the plastic cover (where you're seeing all of the wires).
The plastic gears that you are seeing are only part of the encoder system (I'm guessing that's an encoder system, anyone know for sure?).

Here is the wiring diagram for that system:

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I just happened to have a cruise control actuator from a newer toyota truck laying in my garage  smiley-razz

This unit appears to be the exact same unit that the guy in the youtube video is using.  There is a NOTICEABLE difference in quality.  Everything is plastic, the cover had to be pried off by breaking some little plastic tabs, all of the gears are plastic, the electric motor is about 1/4 of the size..ect.  But, it does work...

Here are some pics/comparison shots:















Logged

Pages: [1] 2   Go Up
Jump to: