How can I measure Duty cycle ?


Closed Thread
Results 1 to 21 of 21

Hybrid View

  1. #1
    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

  2. #2
    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.

  3. #3
    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 .

  4. #4
    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.

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


    Did you find this post helpful? Yes | No

    Default

    @skimask you are right ,
    I work on proteus before ,

    Now Im just build circuit on breadboard.
    And Im take some shoot.

    This is "duty cycle meter" working circuit ,I say before ..
    Its working good on bench and my car ..



    This is duty cycle shema
    Last edited by MaxiBoost; - 27th December 2006 at 19:28.

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


    Did you find this post helpful? Yes | No

    Default

    PWM generator ,this simple circuit come with duty cycle meter .
    Its use for test.



    PWM generator shema ,simple 555 pwm generator .



    Starting circuit on breadboard,
    16F84A ,10mhz osc
    Last edited by MaxiBoost; - 27th December 2006 at 19:29.

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


    Did you find this post helpful? Yes | No

    Default

    Here simple "pulsin" code ,
    yes its not finish .Only run for test .

    'DEVICE 16F84A
    DEFINE OSC 10

    DEFINE LCD_DREG PORTB
    DEFINE LCD_DBIT 4
    DEFINE LCD_RSREG PORTB
    DEFINE LCD_RSBIT 3
    DEFINE LCD_EREG PORTB
    DEFINE LCD_EBIT 2
    DEFINE LCD_BITS 4
    DEFINE LCD_LINES 2

    TEST1 VAR WORD

    PULSIN PORTA.0,1,TEST1
    Lcdout $fe, 1,"Puls :" ,#TEST1
    PAUSE 200


    lcd picture


    This is proteus circuit,
    Last edited by MaxiBoost; - 27th December 2006 at 19:38.

  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

  10. #10
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,651


    Did you find this post helpful? Yes | No

    Talking % of what ????

    Hi,Sougata,

    you're right ...

    But the big problem is injectors are nor open 100% of the cycle !!!

    a "100%" aperture equals, say, only 20 or 30 degrees at crankshaft ....

    and this value has to be entered somewhere to measure something useful.

    now, a simple "PULSIN" is enough to measure the ON duration in µs ... but maximal aperture ( vs. rotation speed ? ) has to be known to calculate a displayable percentage.

    add to that needles inertia is not negligible at those timings ... and you'll see your measure is somewhat false !!!

    Some data is missing here ...

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

Similar Threads

  1. Replies: 9
    Last Post: - 8th October 2008, 11: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, 17:08
  3. HPWM the old fashioned way
    By Srigopal007 in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 19th November 2004, 19:09
  4. PWM _ Duty Cycle in Tenths
    By rwskinner in forum mel PIC BASIC Pro
    Replies: 11
    Last Post: - 17th May 2004, 12:09
  5. Duty Cycle Dilemmas
    By crankshaft in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 27th February 2003, 12: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