Перейти к содержимому

04s.ru

Только полезные вещи…

Меню
  • Главная
  • Объявления
    • Добавить объявления
    • Мои объявления
  • Полезные ресурсы
    • Другое
  • Генератор QR
  • Карта сайта
  • Контакты
Меню

Термистор NTC 3950 (100 кОм) и Arduino

Опубликовано в 30.03.202003.02.2021 от Lis

Стокилоомный термистор NTC 3950 (B57540G0104F000, B57560G1104F, B57560G104F или любой подобный) покажет температуру в градусах Цельсия. Возможно к вам в руки попал стокилоомный термистор, и вы хотите считать с него температуру в Цельсиях с помощью ардуино.

Для этого нужно сделать небольшую схему:

А код скетча примерно такой:

void setup(){
    pinMode(A0, INPUT);
    Serial.begin(9600);
    Serial.println("Start");
}
void loop(){
    int v = analogRead(A0);
    Serial.print(v);
    Serial.print("t");
    Serial.print(analog2tempBed(v));
    Serial.println();
    delay(100);
}
const short temptable_11[][2] PROGMEM = {
    { 832, 65 },
    { 858, 60 },
    { 883, 55 },
    { 904, 50 },
    { 924, 45 },
    { 940, 40 }, 
    { 955, 35 }, 
    { 968, 30 },
    { 977, 25 },
    { 987, 20 },
    { 994, 15 },
    { 999, 10 } 
};
# define BEDTEMPTABLE_LEN (sizeof(temptable_11)/sizeof(*temptable_11))
#define PGM_RD_W(x)   (short)pgm_read_word(&x)
static float analog2tempBed(int raw) {
    float celsius = 0;
    byte i;
 
    for (i = 1; i < BEDTEMPTABLE_LEN; i++)
    {
        if (PGM_RD_W(temptable_11[i][0]) > raw)
        {
            celsius = PGM_RD_W(temptable_11[i - 1][1]) +
                (raw - PGM_RD_W(temptable_11[i - 1][0])) *
                (float)(PGM_RD_W(temptable_11[i][1]) - PGM_RD_W(temptable_11[i - 1][1])) /
                (float)(PGM_RD_W(temptable_11[i][0]) - PGM_RD_W(temptable_11[i - 1][0]));
            break;
        }
    }
 
    // Overflow: Set to last value in the table
    if (i == BEDTEMPTABLE_LEN) celsius = PGM_RD_W(temptable_11[i - 1][1]);
 
    return celsius;
}

Не буду скрывать, код я спер из прошивки 3д принтера Обратите внимание на temptable_11 — эту таблицу возможно придется доделать под ваш диапазон температур. Надо прописать соответствие между температурой и данными analogRead(A0). Для этого не стоит разогревать термистор до нужной температуры, просто смотрим его сопротивление по даташиту, втыкаем вместо термистора потенциометр, и смотрим значение на А0. Хотя можно не заморачиваться и использовать эту таблицу для широкого диапазона температур:

   {1, 841},
   {54, 255},
   {107, 209},
   {160, 184},
   {213, 166},
   {266, 153},
   {319, 142},
   {372, 132},
   {425, 124},
   {478, 116},
   {531, 108},
   {584, 101},
   {637, 93},
   {690, 86},
   {743, 78},
   {796, 70},
   {849, 61},
   {902, 50},
   {955, 34},
   {1008, 3}

Или поискать еще тут эти таблицы: http://reprap.org/wiki/Thermistor/ru

Кстати у термисторов хорошая точность и выдерживает большие температуры)

5/5 - (2 голоса)
Просмотров: 5 493


Место для продажи

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Свежие записи

  • Авто выключатель для мультиметра
  • Индикатор разряда аккумулятора
  • Схема индикатора заряда аккумулятора на светодиодах
  • Linux mint восстановление системы с помощью LiveCD/USB
  • Схема стабилизатора тока на LM358

Популярные записи

  • Металлоискатель пират своими руками подробная инструкция (67 746)
  • Авторегулировка диаметра филамента (66 037)
  • A4988 и Arduino (18 868)
  • DT9205a — ремонт мультиметра (15 646)
  • ШИМ-регулятор 220 В ( IGBT ) (14 175)
  • Пробник для проверки оптопар (13 639)
  • ШИМ-регулятор на Arduino (12 045)
  • Шим регулятор на NE555 (11 091)
  • Схема стабилизатора тока на LM358 (10 788)
  • Linux mint восстановление системы с помощью LiveCD/USB (10 450)

Разделы

3D (1) Android (1) Arduino (14) CCleaner (1) Controller (1) DT9205a (2) LG (1) Linux (3) LM339 (1) LM358 (1) NE555 (9) NTC 100K (2) Power Bank (2) Server (4) SSD (1) SSL (1) Ubuntu (3) USB (2) VPS (1) Windows (8) АКБ (6) Авто (18) Асинхронный (3) Вирусы (1) Датчик (2) Двигатель (5) Индикатор (2) Металлоискатель (2) Мультиметр (2) Оптопара (1) Пластик (2) Полезное (18) Примочка (1) Разное (18) Реле (1) Сабвуфер (2) Симистор (1) Система (12) Схемы (36) Телевизоры (1) Телефон (1) Термистор (2) Тиристор (1) Тюнинг (5) Электроника (57)

Коментарии

  • Lis к записи ШИМ-регулятор 220 В ( IGBT )
  • Hdns Klos к записи ШИМ-регулятор 220 В ( IGBT )
  • Lis к записи Схема индикатора заряда аккумулятора на светодиодах
  • Lis к записи Индикатор разряда аккумулятора
  • Lis к записи Авто выключатель для мультиметра

Форма подписки

Подпишитесь на блог и получайте новые статьи!



QR код

QR код

Telegram канал

И смех и Грех — Тут весело и Интересно))
Красиво, но не факт… — Поделки на лазерном гравёре.