How to adjust values to a new range


+ Reply to Thread
Results 1 to 27 of 27

Hybrid View

  1. #1
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154

    Question How to adjust values to a new range

    I have 10-bit ADC reading with a usable range of 400 - 930.

    How can I adjust that value to create a range of 100 to 230?

    I've been dividing the ADC by 4 to get a PWM of 0 to 255, but all PWM values below 100 are useless, and values above 235 will shorten the life of a LCD.

    I'm at my wits end after 2 days.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  2. #2
    Join Date
    May 2013
    Location
    australia
    Posts
    2,635


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: How to adjust values to a new range

    pbp has a max and a min commands
    by combining max and min you can constrain a variable to a
    range of values
    Name:  Untitled.jpg
Views: 1583
Size:  58.7 KB
    Last edited by richard; - 15th August 2024 at 00:37.
    Warning I'm not a teacher

  3. #3
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154


    Did you find this post helpful? Yes | No

    Default Re: How to adjust values to a new range

    But that will still leave a dead space at the beginning and end of the pot. I need to convert on the fly a value from 400-900 to 100-235.

    There has to be a formula to do this. I never got far in algebra in school. I don't even know what to use as a search string in google.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  4. #4
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    967


    1 out of 1 members found this post helpful. Did you find this post helpful? Yes | No

    Default Re: How to adjust values to a new range

    The concept of mapping a range should be clear by this code example in C explained

    // map a value(inputlow to inputhigh) to the range(outputlow to outputhigh)
    Code:
    int16   map(int16 val, int16 inpl, int16 inph, int16 outl, int16 outh){
    int32 tmp=MAX(val,inpl)-inpl;                         // tmp = (maximum of Val and inputlow) - inputlow
    
        tmp *= (outh-outl);                                      // tmp = tmp * (outputhigh - outputlow)
        tmp /= (inph-inpl);                                       // tmp = tmp / (inputhigh - inputlow)
        tmp += outl;                                                // tmp = tmp + outputlow
        return MIN(tmp,outh);                                 // return the lower of tmp or outputhigh
    }
    Last edited by Jerson; - 15th August 2024 at 03:10. Reason: formatting

  5. #5
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154


    Did you find this post helpful? Yes | No

    Default Re: How to adjust values to a new range

    I just realized I didn't express myself properly.

    As I turn the pot, the formula should convert from 0 all the way to 1023, to a new range of 100 to 235.

    Or else I have that dead spot under 400 and above 900.

    Name:  Formula.jpg
Views: 1519
Size:  77.5 KB
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  6. #6
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154


    Did you find this post helpful? Yes | No

    Default Re: How to adjust values to a new range

    Quote Originally Posted by Jerson View Post
    ... tmp = (maximum of Val and inputlow) - inputlow...

    I'm puzzled by what is Maximum of Val? Is that the actual ADC input?


    EDIT: Oh, I get it, it's the maximum value between the input (ADC in) and InputLow (400).
    Last edited by Demon; - 15th August 2024 at 03:27.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  7. #7
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154


    Did you find this post helpful? Yes | No

    Default Re: How to adjust values to a new range

    Freaking awesome!


    Name:  Range formula.png
Views: 1575
Size:  69.4 KB
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

  8. #8
    Join Date
    Jan 2005
    Location
    Montreal, Quebec, Canada
    Posts
    3,154


    Did you find this post helpful? Yes | No

    Default Re: How to adjust values to a new range

    Aaaaaaaannnd I'm screwed.

    I go over 65,025 and I'm barely 1/2 to 1023 ADC input, that puts me over the WORD limit. I looked at the compiler options in MCSP and it says PBPL is for 18F only, I'm using a 16F1937 for this project.

    I don't know what my options are at this point...



    EDIT: Hmmm, what if I divide my input by 4, and adjust my input range accordingly...


    EDIT SOME MORE: WOOOT! It works freaking awesome! Thanks Jerson!
    Last edited by Demon; - 15th August 2024 at 05:29.
    My Creality Ender 3 S1 Plus is a giant paperweight that can't even be used as a boat anchor, cause I'd be fined for polluting our waterways with electronic devices.

    Not as dumb as yesterday, but stupider than tomorrow!

Similar Threads

  1. Simple way to adjust interrupt speed in DT_INTS-14 ?
    By CuriousOne in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 8th January 2015, 12:01
  2. Use a pot to adjust COUNT value
    By Sam in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 20th November 2011, 15:56
  3. Select Case range of values
    By kenif in forum PBP Wish List
    Replies: 3
    Last Post: - 25th June 2009, 13:27
  4. Replies: 9
    Last Post: - 31st July 2008, 08:56
  5. If Then Range
    By DynamoBen in forum mel PIC BASIC Pro
    Replies: 11
    Last Post: - 29th June 2005, 14:33

Members who have read this thread : 12

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