Ntc термистор измерение температуры

Тема в разделе "Микроконтроллеры AVR", создана пользователем Yerabdi, 25 дек 2021.

  1. akl

    akl Гуру

    ты для начала объясни как ты измеряешь сопротивление. потому что таблицу желательно соотносить с исходными данными чтобы быстрее было
     
  2. Yerabdi

    Yerabdi Гик

    Подтяжка 10КОм стоит на 5В,сам термистор идёт к минусу
     
  3. akl

    akl Гуру

    вот так в экселе можно находить функцию по градуировке и делать таблицу по этой функции.
    но этого недостаточно - нужно чтобы была таблица была массивом из температур, а значения АЦП быстро пересчитывались в индекс таблицы
     

    Вложения:

    Рокки1945 нравится это.
  4. akl

    akl Гуру

    ну дак сделай градуировку - сколько единиц АЦП получается при разных температурах
    или просто объясни по какой формуле пересчитываешь единицы АЦП в сопротивление
     
  5. Yerabdi

    Yerabdi Гик

    Х=ацп*1023/5
     
  6. akl

    akl Гуру

    с таким подсчетом получается на температурах больше 50 градусов уже цена деления градусов 10
    то есть АЦП=2 это 100 градусов, АЦП=3 это 90 градусво, АЦП=4 это 80 градусов и т.д. точность так себе
     
  7. Yerabdi

    Yerabdi Гик

    при 100гр у меня сопротивление 673Ом. В порт поступает 0,32В по этой формуле Х=ацп*1023/5 выходит 65
    [​IMG]
     
  8. Yerabdi

    Yerabdi Гик

    Вот схема подключения термистора
     

    Вложения:

    • image_45.jpg
      image_45.jpg
      Размер файла:
      13,9 КБ
      Просмотров:
      103
  9. akl

    akl Гуру

    всё зря считал потому что непонятно как сопротивление считается
     
    Последнее редактирование: 26 дек 2021
  10. akl

    akl Гуру

    чего? ты можешь нормально написать - "ацп" это что?
    и что такое "Х"?

    а 65 - это попугаев?
     
  11. akl

    akl Гуру

    если Х - это вольты, то почему на вопрос как считается сопротивление ты пишешь формулу, которая считает вольты?
     
  12. Yerabdi

    Yerabdi Гик

    Не пойму зачем считать сопротивление если уже есть градировочная таблица где уже указывается все.
    Меня интересует расчет температуры зависимости от ацп
     
  13. akl

    akl Гуру

    зачем вообще посылать в порт вольты, а потом из них обратно пересчитывать в ацп, если можно сразу посылать ацп
    и какой вообще смысл в вольтах если нужно измерять омы?
     
  14. akl

    akl Гуру

    етить. а как ты применишь таблицу, в которой написано это сопротивление, если не посчитаешь сопротивление?

    в твоей таблице нет никаких вольт и никакого ацп - там только омы и градусы.
     
  15. Yerabdi

    Yerabdi Гик

    в таблицу можно написать температуру а значения ацп я сам вручную посчитаю поставлю в таблицу.
    Главная задача как считать с таблицы есть ли есть два параметра которые соответствует ацп к температуре
     
  16. parovoZZ

    parovoZZ Гуру

    Так и заноси в таблицу значения АЦП. На кой лишние пересчеты?
     
  17. parovoZZ

    parovoZZ Гуру

    Да и 8 бит для температуры как-то маловато.
     
  18. Yerabdi

    Yerabdi Гик

    С таблицы как тогда находим сответсвующего значения ацп.Пробовал через цикл for долго придется считать
     
  19. akl

    akl Гуру

    во таблица вроде так должно быть
    Код (C++):
    int tempArr[]={
    117,112,107,103,99,96,93,90,87,85,
    82,80,78,76,74,72,70,68,67,65,64,
    62,61,59,58,57,56,54,53,52,51,50,
    49,48,46,45,44,43,43,42,41,40,39,
    38,37,36,35,35,34,33,32,31,31,30,
    29,28,28,27,26,25,25,24,23,23,22,
    21,21,20,19,19,18,17,17,16,15,15,
    14,14,13,12,12,11,10,10,9,9,8,
    7,7,6,6,5,5,4,3,3,2,2,
    1,0,0,-1,-1,-2,-2,-3,-4,-4,-5,
    -5,-6,-6,-7,-8,-8,-9,-9,-10,-11,-11,
    -12,-12,-13,-13,-14,-15,-15,-16,-16,-17,-18,
    -18,-19,-20,-20,-21,-21,-22,-23,-23,-24,-25,
    };

     
    вот так применять
    Код (C++):

    int adc=analogRead(pin);
    adc-=40;
    adc/=5;
    if(adc>=0 && adc<sizeof(tempArr)){
        int temp = tempArr[adc];
    }
     
    Yerabdi нравится это.
  20. Yerabdi

    Yerabdi Гик

    Можете обяснить откуда был взять adc-=40; 40?