Пропорция

Тема в разделе "Флудилка", создана пользователем Рокки1945, 11 ноя 2022.

  1. Рокки1945

    Рокки1945 Гуру

    Диапазон температуры от 72 градусов до 137 градусов.
    Диапазон ШИМа от 100 процентов до 10 процентов.
    Всё, что не в диапазоне не рассматривается.
    По свойству пропорции получилось уравнение:
    Искомый шим на выходе = ((Т(полученное)*100 процентов/диапазон(137-62))
    Вот не могу сообразить как 10 процентов учесть в пропорции, может условие какое добавить.
    От 100 до 0 процентов всё нормально, но мне необходимо от 100 до 10 (чтобы 137 градусов был примерно равен 10 процентам).
    Прошу подсказать!
    Температура 73 = Шим = 98.46153846153847
    Температура 74 = Шим = 96.92307692307692
    Температура 75 = Шим = 95.38461538461539
    Температура 76 = Шим = 93.84615384615384
    Температура 77 = Шим = 92.3076923076923
    Температура 78 = Шим = 90.76923076923077
    Температура 79 = Шим = 89.23076923076923
    Температура 80 = Шим = 87.6923076923077
    Температура 81 = Шим = 86.15384615384616
    Температура 82 = Шим = 84.61538461538461
    Температура 83 = Шим = 83.07692307692308
    Температура 84 = Шим = 81.53846153846153
    Температура 85 = Шим = 80.0
    Температура 86 = Шим = 78.46153846153847
    Температура 87 = Шим = 76.92307692307692
    Температура 88 = Шим = 75.38461538461539
    Температура 89 = Шим = 73.84615384615384
    Температура 90 = Шим = 72.3076923076923
    Температура 91 = Шим = 70.76923076923077
    Температура 92 = Шим = 69.23076923076923
    Температура 93 = Шим = 67.6923076923077
    Температура 94 = Шим = 66.15384615384616
    Температура 95 = Шим = 64.61538461538461
    Температура 96 = Шим = 63.07692307692308
    Температура 97 = Шим = 61.53846153846154
    Температура 98 = Шим = 60.0
    Температура 99 = Шим = 58.46153846153846
    Температура 100 = Шим = 56.92307692307692
    Температура 101 = Шим = 55.38461538461539
    Температура 102 = Шим = 53.84615384615385
    Температура 103 = Шим = 52.30769230769231
    Температура 104 = Шим = 50.76923076923077
    Температура 105 = Шим = 49.23076923076923
    Температура 106 = Шим = 47.69230769230769
    Температура 107 = Шим = 46.15384615384615
    Температура 108 = Шим = 44.61538461538461
    Температура 109 = Шим = 43.07692307692308
    Температура 110 = Шим = 41.53846153846154
    Температура 111 = Шим = 40.0
    Температура 112 = Шим = 38.46153846153846
    Температура 113 = Шим = 36.92307692307692
    Температура 114 = Шим = 35.38461538461539
    Температура 115 = Шим = 33.84615384615385
    Температура 116 = Шим = 32.30769230769231
    Температура 117 = Шим = 30.76923076923077
    Температура 118 = Шим = 29.23076923076923
    Температура 119 = Шим = 27.692307692307693
    Температура 120 = Шим = 26.153846153846153
    Температура 121 = Шим = 24.615384615384617
    Температура 122 = Шим = 23.076923076923077
    Температура 123 = Шим = 21.53846153846154
    Температура 124 = Шим = 20.0
    Температура 125 = Шим = 18.46153846153846
    Температура 126 = Шим = 16.923076923076923
    Температура 127 = Шим = 15.384615384615385
    Температура 128 = Шим = 13.846153846153847
    Температура 129 = Шим = 12.307692307692308
    Температура 130 = Шим = 10.76923076923077
    Температура 131 = Шим = 9.23076923076923
    Температура 132 = Шим = 7.6923076923076925
    Температура 133 = Шим = 6.153846153846154
    Температура 134 = Шим = 4.615384615384615
    Температура 135 = Шим = 3.076923076923077
    Температура 136 = Шим = 1.5384615384615385
    Температура 137 = Шим = 0.0
     
  2. DetSimen

    DetSimen Гуру

    ты в школе не учился штоли? один отрезок на другой спроецировать не можешь?
    у тя один отрезок = (137 -72) = 65 градусов
    второй 90 (100 - 10) попугаев ШИМ
    Дальше продолжать? Или своего образования хватит?
     
    Asper Daffy и parovoZZ нравится это.
  3. DetSimen

    DetSimen Гуру

    у тебя ШИМ в таком уравнении укладывается в 0..90, что надо сделать чтоб он стал 10..100?
    Я верю, ты сможешь
     
    Asper Daffy и parovoZZ нравится это.
  4. DetSimen

    DetSimen Гуру

    Ясссна. Не смог.
     
    Asper Daffy и parovoZZ нравится это.
  5. Рокки1945

    Рокки1945 Гуру

    что надо сделать чтоб он стал 10..100?
     
  6. Рокки1945

    Рокки1945 Гуру

    @DetSimen - подскажите если знаете....
     
  7. DetSimen

    DetSimen Гуру

    для особотупых код

    Код (C++):
    constexpr int8_t   MIN_TEMP = 72;
    constexpr int8_t   MAX_TEMP = 137;
    constexpr uint8_t  MIN_PWM = 10;
    constexpr uint8_t  MAX_PWM = 100;

    //  ATemp исключительно в диапаносе 72..137, никаких проверок не делается

    uint8_t GetPWMFromTemp(int8_t ATemp) {
        float koeff = (float(MAX_PWM - MIN_PWM)) / (MAX_TEMP - MIN_TEMP);
        uint8_t resultPWM = round(koeff * (MAX_TEMP - ATemp)) + MIN_PWM;
        return  resultPWM;
    }
     
     
    Рокки1945 нравится это.
  8. Рокки1945

    Рокки1945 Гуру

    Спасибо
    Температура 73 = Шим = 98.32
    Температура 74 = Шим = 96.94
    Температура 75 = Шим = 95.55999999999999
    Температура 76 = Шим = 94.17999999999999
    Температура 77 = Шим = 92.8
    Температура 78 = Шим = 91.41999999999999
    Температура 79 = Шим = 90.03999999999999
    Температура 80 = Шим = 88.66
    Температура 81 = Шим = 87.28
    Температура 82 = Шим = 85.89999999999999
    Температура 83 = Шим = 84.52
    Температура 84 = Шим = 83.14
    Температура 85 = Шим = 81.75999999999999
    Температура 86 = Шим = 80.38
    Температура 87 = Шим = 79.0
    Температура 88 = Шим = 77.61999999999999
    Температура 89 = Шим = 76.24
    Температура 90 = Шим = 74.86
    Температура 91 = Шим = 73.47999999999999
    Температура 92 = Шим = 72.1
    Температура 93 = Шим = 70.72
    Температура 94 = Шим = 69.34
    Температура 95 = Шим = 67.96
    Температура 96 = Шим = 66.58
    Температура 97 = Шим = 65.19999999999999
    Температура 98 = Шим = 63.81999999999999
    Температура 99 = Шим = 62.44
    Температура 100 = Шим = 61.059999999999995
    Температура 101 = Шим = 59.67999999999999
    Температура 102 = Шим = 58.3
    Температура 103 = Шим = 56.919999999999995
    Температура 104 = Шим = 55.54
    Температура 105 = Шим = 54.16
    Температура 106 = Шим = 52.779999999999994
    Температура 107 = Шим = 51.4
    Температура 108 = Шим = 50.019999999999996
    Температура 109 = Шим = 48.64
    Температура 110 = Шим = 47.26
    Температура 111 = Шим = 45.879999999999995
    Температура 112 = Шим = 44.5
    Температура 113 = Шим = 43.12
    Температура 114 = Шим = 41.739999999999995
    Температура 115 = Шим = 40.36
    Температура 116 = Шим = 38.98
    Температура 117 = Шим = 37.599999999999994
    Температура 118 = Шим = 36.22
    Температура 119 = Шим = 34.839999999999996
    Температура 120 = Шим = 33.459999999999994
    Температура 121 = Шим = 32.08
    Температура 122 = Шим = 30.7
    Температура 123 = Шим = 29.32
    Температура 124 = Шим = 27.939999999999998
    Температура 125 = Шим = 26.56
    Температура 126 = Шим = 25.18
    Температура 127 = Шим = 23.799999999999997
    Температура 128 = Шим = 22.419999999999998
    Температура 129 = Шим = 21.04
    Температура 130 = Шим = 19.66
    Температура 131 = Шим = 18.28
    Температура 132 = Шим = 16.9
    Температура 133 = Шим = 15.52
    Температура 134 = Шим = 14.14
    Температура 135 = Шим = 12.76
    Температура 136 = Шим = 11.379999999999999
    Температура 137 = Шим = 10.0
     
  9. DetSimen

    DetSimen Гуру

    Удивительно, правда?
     
  10. Рокки1945

    Рокки1945 Гуру

    @DetSimen - а как без флоата обойтись тут?
    Моя система понимает только целые числа..
     
  11. DetSimen

    DetSimen Гуру

    мальчик, тебе скока лет? У тебя есть какое-нить образование?
     
    parovoZZ нравится это.
  12. Рокки1945

    Рокки1945 Гуру

    по правде сказать - ушёл от коэффициента - потомучто понимал, что он будет флоат - вот и сунулся в пропорцию - мой блок может только округлять
     
  13. Рокки1945

    Рокки1945 Гуру

    перемножением на 1000 вроде такого?
     
  14. DetSimen

    DetSimen Гуру

    считай всё в 100 - 1000 раз больше, потом на выходе поделишь на 100 - 1000, получишь то же самое
     
    Рокки1945 нравится это.
  15. Рокки1945

    Рокки1945 Гуру

    ладно ещё раз спасибо сейчас себя проверил все работает - в железе обкатаю - спасибо за азы
    Update:
    x = 72
    y = 137
    t = 0
    v = 0
    k = (90/65)*100#коэффициент зависимости шим к диапазону температуры
    for i in range (65):
    x+=1
    t = y - x#температура полученная
    v = ((k*(t))+1000)/100 # чтобы получить в процентах шим
    print('Температура ', ' ',x,' = ', 'Шим = ',v)
     
    Последнее редактирование: 11 ноя 2022