Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 19
  1. #1
    Новичок
    Регистрация
    22.10.2010
    Сообщений
    11
    Вес репутации
    170

    По умолчанию Arduino и температурный сенсор

    Доброго времени суток.
    Приобрел не так давно Arduino и к нему температурный сенсор Temperature sensor with steel head. Собрал схему(вложение, резистор 10КОМ)
    Как рассчитать температуру?На входе значения 545 и т.п. На сайте где брал температурный сенсор есть таблицы, но смысл не совсем понятен. С физикой на ВЫ. Прошу помощи в расчетах.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	AnalogInputPot_bb.jpg 
Просмотров:	3724 
Размер:	42.2 Кб 
ID:	10101  
    Последний раз редактировалось Chip; 11.01.2011 в 19:09.

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,380
    Вес репутации
    10

    По умолчанию Re: Arduino и температурный сенсор

    а какое сопротивление термистора при температуре +21 С ?
    Последний раз редактировалось Chip; 23.10.2010 в 00:17.

  3. #3
    Новичок
    Регистрация
    22.10.2010
    Сообщений
    11
    Вес репутации
    170

    По умолчанию Re: Arduino и температурный сенсор

    Цитата Сообщение от Chip Посмотреть сообщение
    а какое сопротивление термистора при температуре +21 С ?
    +21 / 11.9441 kOhm
    В таблице есть сопротивления от -25 до +125
    +25 / 10.000 kOhm
    Последний раз редактировалось Yo-Ya; 23.10.2010 в 08:09.

  4. #4
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,380
    Вес репутации
    10

    По умолчанию Re: Arduino и температурный сенсор

    Учитывая то что у тебя термистор при температуре +25С равен 10ком и резистор делителя тоже 10ком, то на аналоговом входе ардуино будет значение 2,5в или в цифровом выражении 512. Тоесть 512 это и есть +25С , значит для вывода температурры +25С нужно 512/20,48=25. Потом нужно сделать несколько таких точек и вычислить калибровочную константу
    Вот здесь есть пример как это сделать/
    А вообще лучше использовать линейный высокоточный датчик температуры LM35DZ или цифровой DS18B20
    Последний раз редактировалось Chip; 23.10.2010 в 12:47.

  5. #5
    Новичок
    Регистрация
    22.10.2010
    Сообщений
    11
    Вес репутации
    170

    По умолчанию Re: Arduino и температурный сенсор

    Цитата Сообщение от Chip Посмотреть сообщение
    Учитывая то что у тебя термистор при температуре +25С равен 10ком и резистор делителя тоже 10ком, то на аналоговом входе ардуино будет значение 2,5в или в цифровом выражении 512. Тоесть 512 это и есть +25С , значит для вывода температурры +25С нужно 512/20,48=25. Потом нужно сделать несколько таких точек и вычислить калибровочную константу
    Вот здесь есть пример как это сделать/
    А вообще лучше использовать линейный высокоточный датчик температуры LM35DZ или цифровой DS18B20
    Спасибо!Не могли бы вы еще уточнить как напряжение на входе высчитали?
    Например на входе у меня цифровое значение 583, с ним проделать преобразование 583/20,48? или как то по другому?не могу вникнуть как использовать сопротивления из таблицы температура\сопротивление. Хотелось бы понять.

  6. #6
    Новичок
    Регистрация
    22.10.2010
    Сообщений
    11
    Вес репутации
    170

    По умолчанию Re: Arduino и температурный сенсор

    то есть 583 это 583*5в/1024=2,8466796875 вольт? дальше исходя из вышесказанного:
    1024 - 20ком
    583 - ?ком

    583*20ком/1024=11,38671875ком => 20ком-11,38671875ком=8,61328125ком => смотрю по таблице t;khom:
    28;8.75777ком
    29;8.38690ком
    где то ~28,3

    так?
    Последний раз редактировалось Yo-Ya; 23.10.2010 в 15:42.

  7. #7
    Новичок
    Регистрация
    22.10.2010
    Сообщений
    11
    Вес репутации
    170

    По умолчанию Re: Arduino и температурный сенсор

    Еще вопрос, как реализовать сравнение сопротивлений из таблицы?
    допустим создам массив[][]={{temp,khom},{temp1,khom1},...}и т.д.
    как это реализовать?
    сейчас имею только:
    Код:
    const int in = 0;
    int sensor = 0;
    
    void setup()
     {
       Serial.begin(9600);
     }
    
    void loop() {
    	sensor = analogRead(in);
            Serial.print("Analog = ");
    	Serial.print(sensor);
            Serial.print("Voltage = ");
            double voltage = sensor*5.0/1024;
            Serial.print(voltage);
            double khom = (sensor*20.000/1024);
            khom = 20.000-khom;
            Serial.print("khOm = ");
            Serial.println(khom);
            delay(1000);
            
     }
    Выводит: Analog = 572Voltage = 2.79khOm = 8.83
    Тут есть вопросы, print выводит только 2 знака после запятой почему то. Значения переменных высчитываются как надо?

    вот таблица сопротивлений:
    Код:
    temperature/C;resistance/kOhm
    -25;133.500
    -24;125.672
    -23;118.350
    -22;111.498
    -21;105.084
    -20;99.0773
    -19;93.4469
    -18;88.1750
    -17;83.2296
    -16;78.5909
    -15;74.2384
    -14;70.1527
    -13;66.3162
    -12;62.7122
    -11;59.3254
    -10;56.1416
    -9;53.1475
    -8;50.3307
    -7;47.6799
    -6;45.1842
    -5;42.8339
    -4;40.6197
    -3;38.5330
    -2;36.5656
    -1;34.7103
    0;32.9600
    1;31.3081
    2;29.7487
    3;28.2760
    4;26.8848
    5;25.5702
    6;24.3274
    7;23.1523
    8;22.0407
    9;20.9889
    10;19.9934
    11;19.0509
    12;18.1582
    13;17.3124
    14;16.5109
    15;15.7511
    16;15.0306
    17;14.3472
    18;13.6987
    19;13.0833
    20;12.4990
    21;11.9441
    22;11.4169
    23;10.9161
    24;10.4400
    25;10.0000
    26;9.55693
    27;9.14743
    28;8.75777
    29;8.38690
    30;8.03380
    31;7.69753
    32;7.37721
    33;7.07200
    34;6.78110
    35;6.50378
    36;6.23934
    37;5.98711
    38;5.74646
    39;5.51680
    40;5.29758
    41;5.08828
    42;4.88838
    43;4.69743
    44;4.51498
    45;4.34060
    46;4.17391
    47;4.01452
    48;3.86207
    49;3.71624
    50;3.58800
    51;3.44314
    52;3.31529
    53;3.19287
    54;3.07563
    55;2.96331
    56;2.85569
    57;2.75256
    58;2.65369
    59;2.55890
    60;2.46799
    61;2.38080
    62;2.29714
    63;2.21686
    64;2.13980
    65;2.06583
    66;1.99480
    67;1.92658
    68;1.86105
    69;1.79809
    70;1.73758
    71;1.67942
    72;1.62351
    73;1.56975
    74;1.51804
    75;1.47300
    76;1.42045
    77;1.37439
    78;1.33007
    79;1.28740
    80;1.24632
    81;1.20675
    82;1.16864
    83;1.13193
    84;1.09655
    85;1.06246
    86;1.02960
    87;.997924
    88;.967376
    89;.937916
    90;.909498
    91;.882083
    92;.855630
    93;.830101
    94;.805459
    95;.781670
    96;.758701
    97;.736519
    98;.715094
    99;.694397
    100;.674400
    101;.655075
    102;.636398
    103;.618345
    104;.600890
    105;.584013
    106;.567690
    107;.551902
    108;.536629
    109;.521852
    110;.507552
    111;.493712
    112;.480316
    113;.467346
    114;.454788
    115;.442627
    116;.430848
    117;.419438
    118;.408384
    119;.397674
    120;.387294
    121;.377233
    122;.367481
    123;.358026
    124;.348859
    125;.339968
    Последний раз редактировалось Yo-Ya; 23.10.2010 в 20:42.

  8. #8
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    437

    По умолчанию Re: Arduino и температурный сенсор

    У тебя два два последовательных резистора R1,R2. Пусть R1 (постоянный) подключен к 0, R2 (терморезистор) - к напряжению V = 5в.
    В точке их соединения будет напряжение (R1/(R1+R2))*V. Возьми эксель и сделай таблицу со значениями. Сможешь посмотреть насколько хорошо подходит то или иное сопротивление R1 для нужного тебе диапазона температур.

  9. #9
    Новичок
    Регистрация
    22.10.2010
    Сообщений
    11
    Вес репутации
    170

    По умолчанию Re: Arduino и температурный сенсор

    Цитата Сообщение от SBorovkov Посмотреть сообщение
    У тебя два два последовательных резистора R1,R2. Пусть R1 (постоянный) подключен к 0, R2 (терморезистор) - к напряжению V = 5в.
    В точке их соединения будет напряжение (R1/(R1+R2))*V. Возьми эксель и сделай таблицу со значениями. Сможешь посмотреть насколько хорошо подходит то или иное сопротивление R1 для нужного тебе диапазона температур.
    Хм, сделал таблицу. "В точке соединения" это на аналоговый вход пойдет?

    Может ли быть такое что резистор на 12кОм работает как 11кОм? Оказалось что резистор (постоянный) вовсе не 10кОм, а 12кОм, не заметил сразу. Единственное на чем могу проверить показания - свое тело . Просто если брать в расчеты 12кОм то температура тела между 34 и 35, а вот если считать за 11кОм, то вроде бы все нормально.

    PS. как получили эту формулу (R1/(R1+R2))*V ?
    Последний раз редактировалось Yo-Ya; 24.10.2010 в 00:00.

  10. #10
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,380
    Вес репутации
    10

    По умолчанию Re: Arduino и температурный сенсор

    Может ли быть такое что резистор на 12кОм работает как 11кОм?
    Конечно может, все зависит от его погрешности, скорее всего и у термистора тоже есть погрешность
    Последний раз редактировалось Chip; 24.10.2010 в 00:46.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •