ШИМ и светодиод

Тема в разделе "Микроконтроллеры AVR", создана пользователем ELITE, 20 ноя 2018.

  1. ELITE

    ELITE Гик

    Заметил такую особенность, что зрительно яркость светодиода меняется совершенно не линейно...
    в итоге при работе ШИМа в значениях 1-63 идет достаточно быстрое нарастание рякости
    а в диапазоне 127-255 практически незаметно изменение уже....

    Подскажите пожалуста простенький алгоритм или формулу, как пересчитать диапазон 1-255 дабы вначале нарастание было медленне, чем в концу (по параболе)
     
  2. b707

    b707 Гуру

    не парабола, а экспонента
     
  3. ELITE

    ELITE Гик

    ветвь параболы или экспонента
    но формулы....

    и да, это тини13 - ресурсов мало, пробовал и варианты со степенью и корнем... не говоря уж о тангенсе - очень ресурсоемки
     
  4. Vovka

    Vovka Гик

    таблицу?
     
  5. DetSimen

    DetSimen Guest

    А если б ты в университете на все предметы ходил, а не только языки изучал, ты бы это просто знал, а не токащас случайно заметил. Кста, я тебе тайну открою, к звуковосприятию это тоже относица.
     
  6. ELITE

    ELITE Гик

    тини 13 - на таблицу уйдет четверть памяти её....
     
  7. Vovka

    Vovka Гик

    Сомневаюсь! Попробуйте подсчитать, сколько реально вам нужно уровней
     
  8. ELITE

    ELITE Гик

    вы прекрасно умеете флудить, но вот полезных постов от вас 1 из 10ти в лучшем случае

    если нечего по теме сказать - попрошу не разводить демагогии и прочего флуда в моих темах
     
  9. ELITE

    ELITE Гик

    в целом да, уровней 64 вполне хватит, но даже так не хочется тратить 64 байта.... н тогда использовать мап для изменения диапазона... - а мап жирный ....
    просто /4 ...
    щас попробую....
     
  10. ELITE

    ELITE Гик

    хотя не, 64 градации уже весьма отчетливо видно разницу... надо весь диапазон в 256 значений использовать
     
  11. ИгорьК

    ИгорьК Гуру

    Нах таблицу.
    Делай map в двух диапазонах и все. Оба диапазона считай линейными. Ни один глаз не заметит.
     
  12. ИгорьК

    ИгорьК Гуру

    Звиняй, не заметил
     
  13. b707

    b707 Гуру

    похоже Кот прав, вы математику в вузе все ж прогуливали. Попробуйте создать реальные уровни на экспоненте - вы увидите, что в одном байте даже близко 64 уровня не сделать. дай бог 8-16
     
  14. ELITE

    ELITE Гик

    да, уже разложил на 64... всего 12 уровней боле-менее влезает
    это вообще не выгодно, придется делать 256 а то и 512 массив для плавности... не вариант
     
  15. parovoZZ

    parovoZZ Гуру

    Кривая чувствительности глаза выглядит так
    [​IMG]
    и описывается слеедующим соотношением
    y(x) = k1•x2 + k2•x + k3, где k1, k2, k3 – неизвестные коэффициенты
    У меня есть табличка из ста значений. Если надо - вечером кину.
     
  16. ELITE

    ELITE Гик

    жду
     
  17. Vovka

    Vovka Гик

    Я вот смотрю на "Кривую чувствительности глаза" - там всего 4 участка. Может будет достаточно сделать 4 условия для разного приращения значения ШИМА?
     
  18. parovoZZ

    parovoZZ Гуру

    Код (Text):
    9781
    9780
    9778
    9775
    9769
    9761
    9752
    9740
    9726
    9710
    9692
    9672
    9650
    9626
    9600
    9572
    9542
    9510
    9476
    9440
    9402
    9362
    9319
    9275
    9229
    9181
    9131
    9078
    9024
    8968
    8909
    8849
    8786
    8722
    8656
    8587
    8517
    8444
    8370
    8293
    8215
    8134
    8051
    7967
    7880
    7791
    7701
    7608
    7513
    7416
    7318
    7217
    7114
    7009
    6902
    6793
    6682
    6569
    6455
    6338
    6219
    6097
    5974
    5849
    5722
    5593
    5462
    5329
    5194
    5056
    4917
    4776
    4633
    4487
    4340
    4191
    4039
    3886
    3731
    3573
    3414
    3252
    3089
    2923
    2756
    2586
    2415
    2241
    2065
    1888
    1708
    1526
    1343
    1157
    969
    779
    588
    394
    198
    0
     
    256 уровней и 256 отсчетов
    Код (Text):
    0,8697
    0,8605
    0,8593
    0,8659
    0,8805
    0,9030
    0,9335
    0,9718
    1,0181
    1,0723
    1,1344
    1,2044
    1,2824
    1,3682
    1,4620
    1,5638
    1,6734
    1,7910
    1,9164
    2,0498
    2,1912
    2,3404
    2,4976
    2,6627
    2,8357
    3,0166
    3,2054
    3,4022
    3,6069
    3,8195
    4,0401
    4,2685
    4,5049
    4,7492
    5,0014
    5,2615
    5,5296
    5,8056
    6,0895
    6,3813
    6,6811
    6,9887
    7,3043
    7,6278
    7,9593
    8,2986
    8,6459
    9,0011
    9,3642
    9,7352
    10,1142
    10,5011
    10,8959
    11,2986
    11,7092
    12,1278
    12,5543
    12,9887
    13,4310
    13,8813
    14,3394
    14,8055
    15,2795
    15,7615
    16,2513
    16,7491
    17,2548
    17,7684
    18,2899
    18,8194
    19,3568
    19,9021
    20,4553
    21,0164
    21,5855
    22,1625
    22,7474
    23,3402
    23,9410
    24,5496
    25,1662
    25,7907
    26,4232
    27,0635
    27,7118
    28,3680
    29,0321
    29,7042
    30,3841
    31,0720
    31,7678
    32,4715
    33,1832
    33,9027
    34,6302
    35,3656
    36,1090
    36,8602
    37,6194
    38,3865
    39,1615
    39,9444
    40,7353
    41,5341
    42,3408
    43,1554
    43,9779
    44,8084
    45,6468
    46,4931
    47,3473
    48,2094
    49,0795
    49,9575
    50,8434
    51,7372
    52,6390
    53,5486
    54,4662
    55,3918
    56,3252
    57,2666
    58,2158
    59,1730
    60,1381
    61,1112
    62,0922
    63,0810
    64,0778
    65,0826
    66,0952
    67,1158
    68,1443
    69,1807
    70,2250
    71,2773
    72,3374
    73,4055
    74,4816
    75,5655
    76,6574
    77,7571
    78,8648
    79,9805
    81,1040
    82,2355
    83,3748
    84,5222
    85,6774
    86,8405
    88,0116
    89,1906
    90,3775
    91,5723
    92,7751
    93,9858
    95,2044
    96,4309
    97,6653
    98,9077
    100,1580
    101,4162
    102,6823
    103,9563
    105,2383
    106,5282
    107,8260
    109,1317
    110,4454
    111,7669
    113,0964
    114,4338
    115,7792
    117,1324
    118,4936
    119,8627
    121,2397
    122,6247
    124,0175
    125,4183
    126,8270
    128,2436
    129,6682
    131,1007
    132,5410
    133,9893
    135,4456
    136,9097
    138,3818
    139,8618
    141,3497
    142,8455
    144,3493
    145,8610
    147,3806
    148,9081
    150,4435
    151,9869
    153,5382
    155,0974
    156,6645
    158,2396
    159,8225
    161,4134
    163,0122
    164,6190
    166,2336
    167,8562
    169,4867
    171,1251
    172,7714
    174,4257
    176,0879
    177,7580
    179,4360
    181,1219
    182,8158
    184,5176
    186,2273
    187,9449
    189,6705
    191,4039
    193,1453
    194,8946
    196,6519
    198,4170
    200,1901
    201,9711
    203,7600
    205,5569
    207,3616
    209,1743
    210,9949
    212,8234
    214,6599
    216,5042
    218,3565
    220,2167
    222,0849
    223,9609
    225,8449
    227,7368
    229,6366
    231,5443
    233,4600
    235,3836
    237,3150
    239,2545
    241,2018
    243,1571
    245,1203
    247,0914
    249,0704
    251,0573
    253,0522
    255,0550
     
  19. Belkin

    Belkin Гик

    Для первой таблицы требуется минимум 512 байт.
    Для второй - 1024...
    А еще куда-то надо впихнуть программу...
    Тини13 явно пролетает... ;)
     
  20. DetSimen

    DetSimen Guest

    Если хранить начальное значение, а потом только дельты от предыдущих, можно сыканомить
    Максимальная разность укладывается в байт