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

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

  3. #3
    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 20:28.

  4. #4
    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 20:29.

  5. #5
    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 20:38.

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


    Did you find this post helpful? Yes | No

    Default

    whats wrong ?


    '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 'PULS_LOW
    TEST2 VAR WORD 'PULS_HIGH
    TEST3 VAR WORD 'ADD TWO RESULT (PULS_LOW+PULS_HIGH)
    TEST4 VAR WORD 'MULTIPLY 100 (TEST3 * 100)
    TEST5 VAR WORD 'DIVIDE PULS_HIGH

    PULSIN PORTA.0,0,TEST1
    PULSIN PORTA.0,1,TEST2
    TEST3=TEST1+TEST2
    TEST4=TEST3 * 100 'WHATS WRONG ??
    TEST5=TEST4 /TEST2

    LCDOUT $FE,$80,"1:",#TEST1 'puls_low
    LCDOUT $FE,$88,"2:",#TEST2 'puls_high
    LCDOUT $FE,$C0,"3:",#TEST3 'puls_low + puls_high
    LCDOUT $FE,$C8,"4:",#TEST4 '
    'LCDOUT $FE,1,"5:",#TEST5

    PAUSE 200



  7. #7
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default What's wrong?

    What's wrong? What's wrong is a little thing that trips me up once in awhile...
    Overflow...
    Take a number that's larger than 8 bits, multiply it by another number larger than 8 bits, and the result won't fit in 16 bits! It'll look like it works, but if you take (for example), 12000 (fits in 14 bits), multiplied by 100 (fits in 7 bits), the result is 1,200,000 (fits in 21 bits). The result doesn't fit in a 16 bit word, and instead of 1,200,000, all you see is 20,352...because the extra 5 bits got lopped off by the math routines.

    But first, are the pulsin (test1 and test2) numbers correct from the circuit? If they are good numbers, then the rest should work ok...

    And your math was a bit backwards...you had the total pulsewidth divided by the pulsehi. That math doesn't give percentage. You've got to divide the part by the whole to get a percentage (44/100, 44%, 44parts divided by 100 whole, etc. and so on, easy to get tripped up by that too).

    Give this a try and see what happens:


    'same defines as you had before
    PLO VAR WORD 'PULS_LOW
    PHI VAR WORD 'PULS_HIGH
    PWIDTH VAR WORD 'ADD TWO RESULT (PULS_LOW+PULS_HIGH)
    DTYCYC VAR WORD 'DIVIDE PULS_HIGH

    PULSIN PORTA.0 , 0 , PLO : PULSIN PORTA.0 , 1 , PHI

    cutdown2:
    PWIDTH = PLO + PHI
    if PWIDTH > 655 then 'divide by 2 until 'TEST4' result 3 lines below won't overflow
    PLO = PLO / 2 : PHI = PHI / 2 : goto cutdown2
    endif

    DTYCYC = ( PHI * 100 ) / PWIDTH
    LCDOUT $FE , $80 , "PLO:" , DEC5 PLO 'puls_low
    LCDOUT $FE , $88 , "PHI:" , DEC5 PHI 'puls_high
    LCDOUT $FE , $C0 , "PW:" , DEC5 PWIDTH
    LCDOUT $FE , $C8 , "DC:" , DEC5 DTYCYC



    Of course, with all this dividing, you will lose some resolution (i.e. you'll see 10%, but the real result might be 9, 11, 10.1, whatever, don't know how far off it'll be).
    But, read the PBP manual and there is some 16/32 bit math handling functions in there that'll help you get better resolution of the final Duty Cycle measurement.

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