Show Posts
Pages: [1] 2 3 ... 17
1  Using Arduino / Sensors / Re: help with DC offset for mass air flow sensor on: March 24, 2011, 03:11:49 pm
Yep, those are some of the implications of what I want to do.  I do *not* want to induce a lean bias on the signal.

What's actually going on is I've put the MAF sensor in a larger diameter intake tube, and have scaled the fuel injectors by a similar amount.  But it appears the MAF sensor response isn't linear, probably exponential.  So the lower airflow at idle leads to a reading that the closed-loop OBD-II control system can't compensate for - signal has dropped too much.

This is a small piece of a project with much larger scope: 2jzduino (visit my profile web-site or try google).
2  Using Arduino / Sensors / Re: help with DC offset for mass air flow sensor on: March 23, 2011, 06:04:56 pm
Hmmm... pretty straightforward idea.
I guess I'd assumed the MAF signal output would be able to supply enough current that it would bulldoze any sort of pull-up resistor.
But running a quick experiment it seems this might work.  It seems pretty sensitive to the R value.  20k doesn't have enough effect, 10k has too much (pulling the output to a pretty stable 2.5V).
3  Using Arduino / Sensors / help with DC offset for mass air flow sensor on: March 23, 2011, 05:19:29 pm
I'm hoping some of the EE's or educated hobbyists here can help me with this challenge.

I have a Mass Air Flow sensor for which I want to increase the output signal for the lower part of the output range.  Here is a link to the closest thing to a datasheet that's available (pages 1-3)...

My particular sensor has a DC offset of ~0.7V at STP, and a max. output of ~4.8V.  The lookin resistance (measured with a voltmeter) across VG and E2G = 28k.

What I want to do is add about +200mV DC offset to the lower range of the output where VG < ~2V.
Specifically, where VG = 1.5V currently, I want the modified output VG' = 1.7V.

I'd be happy with either of the following solutions that have VG' = 1.7 when VG = 1.5...
 - an offset of 200mV across the full range [VG' = VG + 0.2]
 - offset > 200mV at VG = 0 , and nearly-zero offset for VG=4.8V [i.e. VG' = VG + (4.8-VG)*0.06]

Whatever the solution I strongly prefer passive components.
I've played around with LTspice and can almost get what I want by simulating the sensor output as a voltage source, and connecting +2V to the +ve side of the source through a diode.  But not quite, and I don't *really* know what I'm doing.  (I tried a reverse-biased Zener diode too, which seemed even closer, but was sensitive to series resistance of the source and again, found I didn't know what I was doing.)

I've looked at op-amps but I'd prefer not to build a voltage summer circuit, mostly because I think it's possible to achieve what I want through careful selection of some sort of diode and a few resistors.

Help, either in the form of search keywords or comments and discussion is appreciated.
FWIW I have easy access to +12V and +5V DC.
Thanks to anybody interested enough to offer some friendly help smiley

4  Using Arduino / General Electronics / Re: Have you ever ordered printed circuit boards ? on: March 22, 2011, 03:51:24 pm
I went with Eagle, the tutorial, and for my very first custom PCB.
The whole process went pretty well I thought.  My results here...

[Edit: Also, see this tutorial... ]
5  Forum 2005-2010 (read only) / Troubleshooting / Re: Best approach to use this type of 'sensor/switch'? on: July 08, 2010, 08:23:36 am
Do you have an electrical schematic for this thing also?  From the mech drawing it's not possible to tell where the conductors are.
6  Forum 2005-2010 (read only) / Troubleshooting / Re: help with very simple code! please on: June 23, 2010, 10:39:31 am
Doesn't appear fixed...

also "=" is assignment.  "==" is boolean comparison.
7  Forum 2005-2010 (read only) / Troubleshooting / Re: Interrupt triggered once on startup? on: June 23, 2010, 10:31:58 am
They way you've listed is the way that I like to debounce...
I.e. do nothing while the input state is changing quickly.

200ms should be an eternity for any decent electro-mechanical switch.
8  Forum 2005-2010 (read only) / Troubleshooting / Re: Interrupts and stepper motor advice needed. on: March 26, 2010, 08:12:31 am
Yep, I understand your thinking behind the serial.print.  But like I said, you are over-running the interrupts.  I'm sure of it.  Either max out the baud rate for this test, or get the serial.print out of the interrupt altogether (set a global variable and print it's contents in the main loop).
9  Forum 2005-2010 (read only) / Troubleshooting / Re: Interrupts and stepper motor advice needed. on: March 25, 2010, 02:45:02 pm
Looks more or less right, but by performing the serial.print inside the interrupt you're over-running the next one.

5-digits (52000) * 8 bits = 40 bits
@ 9600 bps -> T(serial) ~= 0.004s

It's likely that you're spending almost all of your processor time inside this interrupt as a result.

Are you suggesting that the micros() value output is only displayed once?  Or that it always displays the same value?

Also, you don't need to re-enable TIMSK1 inside the interrupt.  Once it is enabled, it's on until you explicitly turn it off.
I also think Timer 1 is the timer used for the micros() timer... but I can't recall with certainty right now.  So by resetting it you might be preventing micros() from rolling-over.  When you start playing with timer registers you have to be careful to rely on arduino environment functions relying on the same.
10  Forum 2005-2010 (read only) / Troubleshooting / Re: Interrupting sequence on: March 25, 2010, 02:49:29 pm
Interrupts will still work while calling delay().  But delay() may end up being longer than you expect (due to time consumed inside an interrupt()).
11  Forum 2005-2010 (read only) / Troubleshooting / Re: problem if serial send is not 3 digit. on: February 09, 2010, 01:10:46 pm
I recommend you fire the other 19,639 people.  They are redundant smiley-wink
12  Forum 2005-2010 (read only) / Troubleshooting / Re: FrequencyTimer2 puzzlement on: February 09, 2010, 01:22:17 pm
Some guesses quickly reviewing your code and the frequencytimer2 page in the playground...

At 20,000 I'm pretty sure you've exceeded the upper bound limit of the setPeriod() member function (although the description in the playground is not as clear as it could be).

Also, you're printing out a lot of info in your interrupt routine through serial at 9600 baud.  Another interrupt gets queued long before the last interrupt gets a chance to finish... which would be related to the problem above where the interrupt happens at a frequency that is not what you intend.
13  Forum 2005-2010 (read only) / Troubleshooting / Re: LCD 4x20 issue on line 3/4 with over 16 characters on: November 14, 2009, 07:06:26 pm
What happens if you write 1 byte to the setCursor(16,3) position?
14  Forum 2005-2010 (read only) / Troubleshooting / Re: 'if' equation always firing... on: January 15, 2010, 03:12:21 pm
Looky here...
if (temp3 >= x ); {

You have a rogue ";"
15  Forum 2005-2010 (read only) / Troubleshooting / Re: __inline functions: undefined reference error on: January 06, 2010, 10:40:35 am
That does explain it, and isn't poorly written at all.
Thank you.
Pages: [1] 2 3 ... 17