Discussion in "Project Help" started by    TB    Aug 9, 2008.
Sat Aug 09 2008, 05:14 PM
#1
I'm using a DS89C450

I need to monitor a +7V input with variable frequency - is it possible to sample the frequency on a 8051 without additional hardware?

I need this to log revolutions of an engine. Output is as said +7V, when the engine is idling output is 26Hz (approx. 750rpm). So basically I need to translate the frequency of the input to a given value. Is it possible?

EDIT: Can I use the external interrrupt and a counter to solve this? eg a timer that resets a counter every one second, and then the external interrupt incrementing the counter? So the value of the counter equals the frequency when reset?


[ Edited Sat Aug 09 2008, 05:17 PM ]
Tags frequency conversionvariable frequencyrevolutionstimer
Sat Aug 09 2008, 05:33 PM
#2
hi TB,
u would need only two timers for the task. use the first timer as a counter and connect the input to the corresponding counter input pin( e.g. if u are using timer0 as the counter , connect the input to the T0 pin of the uC. The second timer can be used to create the fixed time interval and just read the counter value when the timer overflows (i,e when the second timer interrupt occurs.
As for the +7V, better check the datasheet of the uC whether this level ( which is greater than the usual +5V level) can be safely used as the input directly to the uC . Else, u can always use a voltage divider/5.1V zener to reduce the level to required +5V level.

P.S. using the internal counter doesnot interrupt ur program flow so it is recommended. Ur idea of using external iterrupt also holds good but would affect other tasks of ur uC , as ur frequency of input increases generating an interrupt on every input transition which might reduce the efficiency/timing of ur other coding.


[ Edited Sat Aug 09 2008, 05:38 PM ]
Tags voltage dividertwo timersfirst timertime intervalinput pin
Sat Aug 09 2008, 06:03 PM
#3
Ahh good point on the external interrupt - just didn't think that thought to an end
There is absolutely no need to run an interrupt handler every single time.

I'l look at that diode - I guess it's better than using a resistor?
Tags resistordiode
Sat Aug 09 2008, 07:16 PM
#4
definitely TB, a zener is always preferred to a simple voltage divider because it would clamp the input to a max. voltage to 5V even if ur signal voltage accidentally rises a few volts above above 7V during measurement.
Tags simple voltage dividersignal voltagemax voltagezenervolts
Sun Aug 10 2008, 03:31 AM
#5

Hi TB,

As our friend pdi33 has put it rightly, you are basically building a freq.counter/meter.

i would suggest to go with 1 sec sampling period, which gives accuracy of 1 Hz.

also what is the max freq./rpm of the engine ?

you can also use a normal NPN transistor like BC547 for connecting the input voltage,
feed the +7V to the base of transitor via a suitable value resistor (4k7/10k) and the collector is connected to the micro's pin( with a pullup) and emitter to Gnd


one more thing ( i think you already know this), you have to common the Gnd of the Micro circuit with the Gnd of engine circuit



all the best !


Arun
Tags npn transistorsampling periodbc547micro circuitsuitable value
Sun Aug 10 2008, 11:24 AM
#6
If it's an inductive pickup being used to derive the rpm pulses,a Schmitt trigger before the micro would be helpful,else there could be lots of false triggers for the counter.

Tb,what are you using for the input signal .. magnet-coil,Hall effect sensor,...?
 pdi33 like this.
Tags magnet coilinductive pickuphall effect sensorschmitt triggerinput signal
Sun Aug 10 2008, 02:04 PM
#7


Hi TB,

are a attempting a tachometer, to know the RPM of engine ?


Arun
Tags tachometerrpmtb
Sun Aug 10 2008, 05:53 PM
#8
@ TB,
as shashi bhai so rightly pointed out ( a very critical point in RPM measurement which i forgot to mention),a schmitt trigger would be highly useful especially when ur signal is not purely digital.
Tags schmitt triggerbhaicritical pointrpmmeasurement
Sat Jan 17 2009, 05:24 AM
#9
I'm working on a tachometer- and what occurs to me is that there are two ways to do a tach with a high speed mcu:
1. Count the pulses from the engine (I assume an ignition engine since this is what my tach is for...) over some known time period. Then you'd multiply this number by some constant to get the rpm (or Hz)
2. Use the engine ignition pulses as defining the time period, then count the 5mHz (F_osc = 20mHz)counter pulses in this time period. Divide F_osc by this number, multiply by 60 to get rpm. It may seem like a lot of math, but using integer and binary division by just shifting things right to divide, left to multiply, I think it's do-able... The good thing is the much faster response time- you don't have to wait a second or so to get a result , and it's a hell of a lot more accurate, even with all the integer math... What do you guys think?

The second thing I was wondering is the best way, with a pic to get the enging pulses in. I'm planning on using an inductive input, a wire wrapped around the spark plug wire, the other end to engine ground, thru some small coax, and this will be fed into the PICs ECCP input, after conditioning by some means...

For this conditioning, I was thinking about first checking the signal with a scope, to find its peak, then put the signal thru some resistor, and maybe a small capacitor to keep the spike within the limits able to be handled by the PIC. Of couirse, a little hysterisis network would also make the PIC read the signel more reliably. Any thoughts as to how this wopuld work?

Get Social

Information

Powered by e107 Forum System

Conversation

Mon Mar 27 2017, 04:09 AM
priyanja awate
my project is greenhouse monitering and controlling using 8051 .can u give me the program of this project
ExperimenterUK
Sat Mar 25 2017, 09:56 PM
@Noreen I suggest you log in and post a full description of what you need in our PIC forum
Sat Mar 25 2017, 03:10 PM
Noreen
Hello I worked on a project related to Wireless Electricity theft detection using GSM during my bachelors. I used Nokia 6230 for sending sms using AT commands. I chose to work with SMS text mode. The microcontroller I used was PIC16F877A and its software coding done through PIC Basic Pro. Unfortunately, I lost my account password and do not have coding for generation sms using AT commands. I need that coding. Can some one help me to provide complete Pic Basic Pro code. In which step by step guidance is given so that I can understand easily. Regards,
Wed Mar 22 2017, 09:13 PM
ajay kumar
help me nokia lcd light
Wed Feb 22 2017, 06:14 AM
ChollyMo
Indeed, on the LCD tutorial, many missing Tables and figures !!
Wed Feb 22 2017, 06:06 AM
ChollyMo
I don't see any Table 3. I'm using Chrome.
Fri Feb 03 2017, 05:56 AM
irfan shaikh
hi, i want interface WS2811 pixel led using NUVOTON N79E352, but i dont know how to code it. can anyone help me or provide me sample coding for interfacing WS2811 PIXEL LED. THNX
Thu Jan 19 2017, 08:42 PM
abhays
Hi...i have made a circuit for interfacing PT100 with LM358 whose temperature is shown on the LCD...But the temperature is not getting incresed slowly ..a small change directly increses the temp...can any one help me
Thu Jan 19 2017, 04:27 PM
roba
send me alarm clock simulation using proteus software
Mon Jan 16 2017, 03:15 PM
Rutuja
How can we read notepad file using random acess file

Downloads

Comments

SAUnwin
Tue Mar 21 2017, 02:29 PM
letonarolikah
Mon Mar 20 2017, 11:21 AM
nerodear
Tue Mar 14 2017, 07:08 AM
XuZiling
Wed Feb 22 2017, 02:40 AM
diwakar_96
Thu Feb 16 2017, 02:40 PM
Helia
Thu Feb 09 2017, 09:59 AM
fasihaftab
Sat Jan 28 2017, 08:58 AM
jmunjr
Tue Jan 17 2017, 06:25 PM

Online

Guests: 70, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 37804
Newest member: SAUnwin
Forum Activity
ExperimenterUK Avatar
Posted By ExperimenterUK
Sat Mar 25 2017, 09:49 PM
I have attached code showing one method you could ...
Deepakvaishu Avatar
Posted By Deepakvaishu
Sat Mar 25 2017, 07:59 AM
I am using Keil and 8051 microcontroller
ExperimenterUK Avatar
Posted By ExperimenterUK
Fri Mar 24 2017, 06:05 PM
The best way is to use an interrupt to run the cou...
Deepakvaishu Avatar
Posted By Deepakvaishu
Fri Mar 24 2017, 05:22 AM
Hi,I got that we should use timer......But I am a ...
ExperimenterUK Avatar
Posted By ExperimenterUK
Thu Mar 23 2017, 09:14 PM
You have largely answered your own question.Use on...
ExperimenterUK Avatar
Posted By ExperimenterUK
Thu Mar 23 2017, 07:03 AM
I have looked at your code.I think you are confuse...
Deepakvaishu Avatar
Posted By Deepakvaishu
Thu Mar 23 2017, 05:34 AM
hello,I can type the letters now when the particul...
SAUnwin Avatar
Posted By SAUnwin
Tue Mar 21 2017, 02:55 PM
HI,There are two ways I'd tackle thiss.Key down on...
Deepakvaishu Avatar
Posted By Deepakvaishu
Mon Mar 20 2017, 08:24 AM
hello,I am using a keypad to type the text message...
Helia Avatar
Posted By Helia
Thu Mar 16 2017, 09:15 AM
hi.. the following code is not working on hardware...