How can I measure Duty cycle ?


Closed Thread
Results 1 to 21 of 21

Hybrid View

  1. #1
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by MaxiBoost
    Hello friends ,

    I`m trying measure my cars injectors duty cycle .
    Have any body experince about this ?

    For example ,
    injectors running pwm cycle ,
    if injectors full open ,I must see %100 duty cycle on the display.

    Im trying measure injectors cycle (ms) than calculate duty ,
    but this is not correct way I think .

    This kit ,
    http://www.jaycar.com.au/productView...=&SUBCATID=347

    working great ,They are use a 16F84 pic only .

    thanks

    PBP...
    Use the Pulsin twice; once to measure the pulse width when low, then right after that, measure the pulse width when high. Add the two results together. Multiply the total result by 100 and divide that total by the pulse-high result and you'll get a percentage relating to a duty cycle. This will get you close, but not absolutely perfect. The total pulse width could change a lot between successive readings (i.e. during fast acceleration or deceleration) and completely ruin the end result. Maybe a little bit of software filtering or averaging over a couple of cycles added to the software.
    JDG

  2. #2
    Join Date
    Jan 2006
    Location
    Istanbul
    Posts
    1,185


    Did you find this post helpful? Yes | No

    Default

    What about "Capture" ?


    ----------------------------------
    "If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte

  3. #3
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Yup that's the much accurate way if the PIC have the CCP module. Case not, Pulsin may work... but accuracy is pretty poor.

    So you can still detect the rising edge, start a timer, wait 'till falling edge. You have now the High Pulse measure. From there you reset the Timer and wait the next rising edge. There you have the Low pulse measure.

    Few maths later, you have the duty cycle.
    http://www.picbasic.co.uk/forum/show...36&postcount=4

    also look at this one
    http://www.picbasic.co.uk/forum/show...se+measurement

    HTH
    Last edited by mister_e; - 18th December 2006 at 05:10.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  4. #4
    Join Date
    Nov 2006
    Location
    ist
    Posts
    13


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mister_e View Post
    Yup that's the much accurate way if the PIC have the CCP module. Case not, Pulsin may work... but accuracy is pretty poor.

    So you can still detect the rising edge, start a timer, wait 'till falling edge. You have now the High Pulse measure. From there you reset the Timer and wait the next rising edge. There you have the Low pulse measure.

    Few maths later, you have the duty cycle.
    http://www.picbasic.co.uk/forum/show...36&postcount=4

    also look at this one
    http://www.picbasic.co.uk/forum/show...se+measurement

    HTH

    Hi again and thank your answers ,

    Dear mister_e ,

    I give to a circuit example in my first message (jaycar kit) use a 16F84A ,
    This kit is working good and without any problem .
    What is your comment ? or have you another idea ?
    I think ,they must use very simple programme !
    16F84 not have ccp module .

    If you can help me ,thank you
    if you can not ,thank you again

    regards

  5. #5
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by MaxiBoost View Post
    Hi again and thank your answers ,
    16F84 not have ccp module .

    which is why I said to use the pulsin commands in the earlier post.

  6. #6
    Join Date
    Nov 2006
    Location
    ist
    Posts
    13


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by skimask View Post
    which is why I said to use the pulsin commands in the earlier post.
    I can try but fail ,
    Maybe Im not expert ,I dont .

  7. #7
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by MaxiBoost View Post
    I can try but fail ,
    Maybe Im not expert ,I dont .
    Ok, just to prove that the pulsin idea does work.........(within certain parameters anyways, I know it takes a finite amount of time for an injector to open and close and this amount would have to be accounted for in final calculations, and I also know that fuel rail pressure, system voltage, and injector/fuel temperature also have an effect on open/close times. I never said this method would be 100% accurate, but I'm sure the results can be tweaked thru software to get something fairly accurate.)

    Do you have working hardware? In other words, do you have an input wire that could be or is connected directly to a PIC input pin? And if you connected an o'scope to that pin/wire, would the resultant signal on the 'scope follow/match the signal on the wire to the injector?

    Without working hardware, further discussion would be fruitless...
    So if you're just talking in theory, an idea you have...say so now so I (others?) don't use up too much time on this.

  8. #8
    Join Date
    Oct 2004
    Posts
    448


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by skimask View Post
    which is why I said to use the pulsin commands in the earlier post.
    I'm afraid this does not work; after the first pulsin has taken its reading, since the transition has *already* happenned, the next pulsin of the opposite polarity (level?) will take place only at the next-to-next pulse. Of course, if the duty cycle for a sequence is going to stay somewhat the same then this should make no difference. I was trying to decode an IR signal by using these consecutive pulsins, and got completelty wrong results.

  9. #9
    Join Date
    Feb 2005
    Location
    Kolkata-India
    Posts
    563


    Did you find this post helpful? Yes | No

    Default PORTB Interrupt ?

    Hi,

    I am not sure about the fuel injection stuff. Possibly a variable duty and variable frequency. One option may be to use the portb on change interrupt feature. So for every falling or rising edge you get an interrupt. One problem is that depending on the timer prescaler you may run out of time if the frequency is too low causing a timer overflow. Again that can be accounted with ISR checking for timer overflow and incrementing a pseudo timer high byte counter making the timer a 16bit one.
    Regards

    Sougata

Similar Threads

  1. Replies: 9
    Last Post: - 8th October 2008, 12:15
  2. how to generate 83.33khz with 16.7% duty cycle?
    By donatelo in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 23rd September 2008, 18:08
  3. HPWM the old fashioned way
    By Srigopal007 in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 19th November 2004, 20:09
  4. PWM _ Duty Cycle in Tenths
    By rwskinner in forum mel PIC BASIC Pro
    Replies: 11
    Last Post: - 17th May 2004, 13:09
  5. Duty Cycle Dilemmas
    By crankshaft in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 27th February 2003, 13:40

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts