Help with pressure sensor.


Closed Thread
Results 1 to 27 of 27

Hybrid View

  1. #1
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by DavyJones View Post
    Mack,
    Gotcha that would make sense. If you don't mind can we discuss the 8 bit vs. 10bit and let me rant a little about some observations. With regards to the ADC isn't just the obvious difference between reading 8 bit vs. 10 bit just precision? There is nothing else to consider is there? I can either get a return value from 0 -> 255 or 0 -> 1024. One thing I noticed given the 8 bit response it tends to not bounce around as much as the 10 bit. The 10 bit response raw data when I am at 0psi bounces all over the place from 92 to 100. I have to run that through Darryl's average routine to get that stablized. That helps but doesn't stop it completely which brings me to a question is there any way to get that to settle down? The other question is whats the proper term for a signle interval on the ADC read? Is it tick or interval, increment?
    Just a precision thing. With more precision you can can expect more "bouncing" sometimes noise will cause this or the sensor it's self. A lot of sensors a pretty sensitive Sometimes a capacitor from the ADC pin to zero will help smooth thing out, This may even be needed with some 8 bit applications.
    My other observation/question based on your statment about switching back and fourth between 10 bit and 8 bit. From my observations and looking at many examples of code there is always more then one way to accomplish something in the coding. I didn't miss anything here right I mean:
    Yep there is always more than one way do do anything. I coding we call this a style.
    ADCON1 = %10000000
    'ADCON1.7 = 1 'I DID THAT ABOVE RIGHT?

    Setting ADCON1.7 = 1 is essentially the same thing as my example correct? You're just setting the individual bit right?
    For your chip
    ADCON1 = %10000000
    makes all of th ADC pins analog, left justified, VREF+ at VDD and VREF- at VSS.
    If you want some of the ADC pins digital or change the VREFs then you will run into a problem.
    ADCON1.7 = 1 or 0 is just changing that particular bit.
    After this experience and reviewing what you taught me and looking at Bruce's example more closely that you could accomplish the 8 bit using the ADCIN by just setting ADC_BITS=8 in the beginning and the read on ADCIN basically puts both the ADRESH and ADRESL together for you in your variable. If you choose to use Bruce's method and wanted to do the 10 bit you've got to put those two result registers together right? Setting ADC_BITS is a one time thing at the beginning?
    Not quite... In the data sheet I have for this chip take a look at section 11.4.1.
    The register containing ADRESH and ADRESL is really 16 bits wide. ADRESH and ADRESL are 8 bits each.
    It's tough even with the datasheet until someone get's you pointed in the right direction. I think I am intellegent and I should be able to figure this stuff out but thats not always so. Now that you've given me direction it's much clearer I appreciate the help I get from this forum.
    This all can be quite confusing, if this forum was not here I would not have a clue either.
    Dave
    Always wear safety glasses while programming.

  2. #2
    Join Date
    Jul 2007
    Posts
    74


    Did you find this post helpful? Yes | No

    Default

    I have a similar problem, I got everything to work, except translating the math.

    My lowest ADVAL is 0 and it's also the HIGHEST pressure.

    I saw how the math worked out for him, but I am lost.

  3. #3
    Join Date
    Jul 2007
    Posts
    74


    Did you find this post helpful? Yes | No

    Default

    AD Res 1024

    Lowest voltage = .085v = 100psi = ADVal 18

    Highest voltage = .999v = 10psi = ADVal 205

    In order to switch everything around all I did differently was subtract my highest voltage (1volt) from lowest voltage (.085volt) and went from there!

  4. #4
    Join Date
    Jul 2007
    Posts
    74


    Did you find this post helpful? Yes | No

    Default

    So then I thought it out a little more, and instead of converting to voltage etc.. ADVal represents that value...

    SO

    highest ADVal = 205

    205 - whatever the adval is at for the input from the sender = x

    x * .5347 = pressure

    on my 187 resolution scale here.

  5. #5
    Join Date
    Jul 2007
    Posts
    74


    Did you find this post helpful? Yes | No

    Default

    didnt work very well... lost again

  6. #6
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by erice1984 View Post
    AD Res 1024

    Lowest voltage = .085v = 100psi = ADVal 18

    Highest voltage = .999v = 10psi = ADVal 205

    In order to switch everything around all I did differently was subtract my highest voltage (1volt) from lowest voltage (.085volt) and went from there!
    Can you give the make and model or data sheet for the sensor?

    Maybe show your code too.

    If that voltage range is correct I would go with 8 bit resolution and a reference voltage. Are you really getting a lower reading with a higher pressure?
    Dave
    Always wear safety glasses while programming.

  7. #7
    Join Date
    Jul 2007
    Posts
    74


    Did you find this post helpful? Yes | No

    Default

    yes, its an autometer 2242 pressure sender unit. its really annoying.

    all I have is
    15 ohms = 100psi
    175 ohms = 10psi


    What I am doing right now is using regulated current. ~5mA

  8. #8
    Join Date
    Jul 2007
    Posts
    74


    Did you find this post helpful? Yes | No

    Default

    reason why I am not using the 8bit adc is because I would have to use a lot more current to get it up out of the 19mV range, and not really wanting to do that since it seems to vary more, its probably my hardware tho, LM317T current reg.

  9. #9
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    I think I see the problem.

    The ADC is for measuing a voltage.

    Use the sensor for R1 of a voltage divider and a fixed resistor for R2. The feed that output to the PIC.

    http://en.wikipedia.org/wiki/Voltage_divider
    Dave
    Always wear safety glasses while programming.

Similar Threads

  1. Need a cheap touch sensor idea.. here it is
    By mister_e in forum Code Examples
    Replies: 20
    Last Post: - 16th April 2016, 22:42
  2. Is this a K Type sensor?
    By jessey in forum mel PIC BASIC Pro
    Replies: 20
    Last Post: - 21st November 2009, 13:55
  3. PICBASIC PRO-coding for wireless sensor node
    By syazila in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 10th February 2009, 00:05
  4. Replies: 6
    Last Post: - 18th January 2008, 08:17
  5. 1-Wire Pressure Sensor
    By Mith in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 13th August 2005, 00:32

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