Багатоканальний терморегулятор на arduino uno. Вентилятор за допомогою ардуїно залежить від температури. Складові ПІД регулятора

Принципова схема саморобного чотириканального термостата з відображенням температур, побудований на основі Arduino UNO, LM325 та з дисплеєм 1602А, дозволяє керувати чотирма роздільними навантаженнями.

Тут описується модернізований варіант пристрою, який крім пасивного вимірювання та індикації температури ще може керувати чотирма нагрівачами, з метою підтримки заданої температури у чотирьох різних місцях, в яких у першому варіанті було можливе лише вимірювання температури.

Робота чотириканального термометра та його програми дуже докладно описана у попередній статті (Л.1), тому тут буде лише про зміни для реалізації роботи чотириканального термостата.

Принципова схема

Принципова схема показано на рис.1.

Мал. 1. Принципова схема термостата на Arduino UNO, LM325 з дисплеєм 1602А.

На відміну від першої схеми (Л.1) тут присутні чотири транзисторні ключі, навантажених на обмотки реле К1-К4, що керують чотирма різними нагрівальними пристроями (Н1-Н4). Керуючі команди на ці ключі надходять від чотирьох цифрових портів D9-D12 плати ARDUINO UNO.

Програма

Програма наведена у таблиці 1.

Таблиця 1.

Перша відмінність у тому, що задані порти для керування нагрівачами. Це порти D9-D12, задані тут:

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(10, OUTPUT);

pinMode(9, OUTPUT);

Можна вибрати інші вільні цифрові порти, після підключення індикатора залишилися D8 і D13. Але автор обрав саме ці: D9, D10, D11, D12. Друге відмінність у цьому, що з управління нагрівачами використовується компараторна функція if. У рядках:

if(temp< -15)digitalWrite(12, HIGH);

if(temp > -15)digitalWrite(12, LOW);

if(tempi< 1)digitalWrite(11, HIGH);

if(tempi > ​​1)digitalWrite(11, LOW);

if(temp2< 20)digitalWrite(10, HIGH);

if(temp2 > 20)digitalWrite(10, LOW);

if(temp3< 10)digitalWrite(9, HIGH);

if(temp3 > 10)digitalWrite(9, LOW);

У цих рядках вказується за якої температури, який логічний рівень має бути на відповідному порту. Наприклад, при температурі першого датчика (Т1) нижче -15°З порту D12 буде логічна одиниця. При температурі другого датчика (Т2) нижче 1°С порту D11 буде логічна одиниця.

При температурі третього датчика (ТЗ) нижче 20°С порту D10 буде логічна одиниця. При температурі четвертого датчика (Т4) нижче 10°З порту D9 буде логічна одиниця. Звичайно, температури можна задати і зовсім інші, будь-які, які потрібні для конкретного застосування даного приладу.

Більше того, вже в готовому пристрої, за потреби їх легко змінити. Для цього потрібно підключити персональний комп'ютер до USB-порту плати ARDUINO UNO та завантажити програму з іншими даними щодо температурних порогів. В принципі, для цього можна передбачити на корпусі готового пристрою роз'єм USB.

Зазвичай, в «типовому» терморегуляторі є петля гістерезису, тобто ланцюг, який створює різницю між тепературою включення нагрівача і температурою його вимкнення. Це потрібно для того, щоб нагрівач вмикався/вимикався не дуже часто. Особливо це важливо, якщо нагрівачем керує електромагнітне реле.

Тому що контакти реле не розраховані на такий режим роботи і можуть швидко вийти з ладу від підгоряння через іскріння. Але гістерезис вносить похибку у роботу термостата. Тут було вирішено не створювати гістерезис, а для того, щоб контакти реле перемикалися не надто часто просто уповільнити роботу приладу. Для цього у рядку:

час індикації збільшено до трьох секунд. В результаті, вимірювання повторюються з періодом у три секунди, і в будь-якому випадку, реле не може перемикатися частіше, ніж один раз на три секунди.

Деталі

Електромагнітні реле К1-К4 можна застосувати будь-які з обмотками на 12V та контактами, досить потужними для керування конкретними нагрівачами.

Вихідні каскади можна зробити і за іншими схемами, наприклад, на оптосі-місторах. У цьому випадку, до відповідних портів плати ARDUINO UNO підключаються через струмообмежувальні резистори, світлодіоди оптосиміс-торів або, так званих, «твердотільних реле».

Каравкін В. РК-08-17.

Література: 1. Каравкін В. – Чотириканальний термометр на ARDUINO UNO, РК-06-17.

Основне завдання контролера холодильника – підтримка в камері заданої температури. Робитиме це регулятор температури за рахунок зміни електричної потужності на модулі Пельтьє.

У попередньому уроці ми розробили регулятор потужності. Зв'язок регуляторів потужності та температури виглядає так.

  • Регулятор температури отримує виміряну температуру, порівнює її із заданою температурою та обчислює значення заданої потужності для регулятора потужності.
  • Регулятор потужності формує ШІМ, що відповідає заданій потужності.

Регулятор потужності ми збудували за інтегральним законом регулювання. Для стабілізації температури будемо використовувати складніший алгоритм управління – пропорційно-інтегрально-диференціювальний (ПІД) регулятор.

ПІД регулятор.

У попередньому уроці я докладно розповів про . Підкреслив його переваги та недоліки.

Регулятор, що працює за таким принципом, має високу точність. Інші критерії якості регулювання – швидкодія та стійкість – у нього не на висоті.

Для того, щоб досягти високих показників для всіх критеріїв, необхідно використовувати регулятор, що поєднує в собі різні закони регулювання.

Саме таким пристроєм є пропорційно-інтегрально-диференціюючий (ПІД) регулятор. Він формує вихідний сигнал, що є сумою трьох складових з різними передатними характеристиками. Завдяки цьому ПІД регулятор забезпечує висока якістьрегулювання та дозволяє оптимізувати управління за окремими критеріями.

У формуванні вихідного сигналу ПІД регулятора беруть участь:

  • Пропорційна складова– значення пропорційно помилці неузгодженості (різниці заданого та реального значень регульованого параметра).
  • Інтегруюча складова- Інтеграл помилки неузгодженості.
  • Диференціююча складова- Похідна помилки неузгодженості.

Математична форма запису закону ПІД регулятора має вигляд:

o(t) = P + I + D = K p e(t) + K ∫e(t)dt + K d de(t)/dt

  • o(t) - вихідний сигнал;
  • P – пропорційна складова;
  • I – інтегруюча складова;
  • D – диференціююча складова;
  • Kp, Ki, Kd – коефіцієнти пропорційної, інтегруючої, диференційної ланок;
  • e(t) – помилка неузгодженості.

У схематичному вигляді ПІД регулятор можна так.

Структурна схема ПІД регулятора напруги U виглядає так.

  • Виміряна напруга Ureal(t) віднімається із заданого Uset.
  • Отримана помилка неузгодженості e(t) надходить на пропорційну, інтегруючу та диференціюючу ланки.
  • В результаті суми складових виходить керуючий вплив o(t), який подається на елемент, що регулює.

За програмної реалізації ПІД регулятора обчислення вихідного сигналу відбуваються через рівні проміжки часу. Тобто. регулятор є дискретним за часом. Тому, далі я вживатиму вирази: попередній стан сигналу, попереднє значення і т.п. Йдеться про стан системи у попередній точці тимчасової дискретизації.

Складові ПІД регулятора.

Ще раз. Вихідний сигнал ПІД регулятора – це сума трьох складових:

  • пропорційною;
  • інтегруючою;
  • диференціюючою.

Пропорційна складова.

P(t) = K p * e(t)

Немає пам'яті, тобто. значення вихідного сигналу залежить від попереднього стану системи. Просто помилка неузгодженості, помножена на коефіцієнт, передається на вихід. Вихідний сигнал компенсує відхилення регульованого параметра. Сигнал тим більше, що більше помилка неузгодженості. При помилці, що дорівнює 0, сигнал на виході теж дорівнює 0.

Пропорційна складова не здатна повністю компенсувати помилку. Це видно із формули. Вихідний сигнал у Kp разів більший за помилку. Якщо помилка неузгодженості дорівнює 0, то вихідний сигнал регулятора дорівнює 0. А тоді й компенсувати нічим.

Тому у пропорційних регуляторах завжди існує так звана статична помилка. Зменшити її можна за рахунок збільшення коефіцієнта Kp, але це може призвести до зниження стійкості системи і навіть автоколивань.

До недоліків пропорційних регуляторів слід зарахувати:

  • наявність статичної помилки регулювання;
  • невисока стійкість зі збільшенням коефіцієнта.

Є вагома перевага:

  • Висока швидкість регулювання. Реакція пропорційного регулятора на помилку неузгодженості обмежена лише часом дискретизації системи.

Регулятори, які працюють лише за пропорційним законом, застосовують рідко.

Головне завдання пропорційної складової у ПІД регуляторі – підвищити швидкодію.

Інтегруюча складова.

I(t) = K i ∫e(t)dt

Пропорційна інтегралу помилки неузгодженості. З урахуванням часової дискретності регулятора можна написати так:

I(t) = I(t -1) + K i * e(t)

  • I(t-1) – значення I у попередній точці тимчасової дискретизації.

Помилка неузгодженості множиться на коефіцієнт і додається до попереднього значення інтегруючої ланки. Тобто. вихідний сигнал постійно накопичується і поступово збільшує свій вплив на об'єкт. Таким чином, помилка неузгодженості повністю компенсується навіть при малих значеннях помилки та коефіцієнта Ki. У стані вихідний сигнал регулятора повністю забезпечується інтегруючої складової.

До недоліків інтегрального регулятора слід зарахувати:

  • низька швидкодія;
  • середня стійкість.

Перевага:

  • Здатність повністю компенсувати помилку неузгодженості за будь-якого коефіцієнта посилення.

На практиці часто використовують інтегруючі регулятори (тільки інтегруюча складова) та пропорційно-інтегруючі (інтегруюча та пропорційна складові).

Головне завдання інтегруючої ланки у ПІД регуляторі – компенсація статичної помилки, забезпечення високої точності регулювання.

Диференціююча складова.

D(t) = Kd de(t)/dt

Пропорційна швидкості зміни помилки неузгодженості. Своєрідний показник прискорення помилки неузгодженості. Диференціююча складова передбачає відхилення регульованого параметра в майбутньому і протидіє цьому відхиленню. Як правило, вона компенсує запізнення впливу регулятора на об'єкт та підвищує стійкість системи.

З урахуванням тимчасової дискретності регулятора диференційну складову можна обчислити так:

D(t) = K d * (e(t) - e(t -1))

Вона показує, наскільки змінилося значення помилки неузгодженості за тимчасову одиницю дискретності регулятора.

Регуляторів, що складаються з єдиної ланки, що диференціює, не буває.

Головне завдання диференційної ланки в ПІД регуляторі – підвищення стійкості.

Налаштування ПІД регулятора.

Якість регулювання ПІД регуляторів значною мірою залежить від того, наскільки оптимально обрані коефіцієнти. Коефіцієнти ПІД регулятора визначаються практично у системі з реальним об'єктом шляхом підбору. Існують різні методики налаштування. Я розповім лише про загальні принципи.

Про якість регулювання судять за перехідною характеристикою регулятора. Тобто. за графіком зміни регульованого параметра у часі.

До традиційних пунктів послідовності налаштування ПІД регулятора я додав би, що, перш за все, треба визначитися які критерії якості регулювання краще.

У попередньому уроці при розробці регулятора потужності нас насамперед цікавили точність та стійкість. А швидкодію ми навіть штучно знизили. Якісь регулятори працюють в умовах значних перешкод і їм важливіша за стійкість, від інших потрібна висока швидкодія навіть на шкоду точності. Критерії оптимізації можуть бути різними. Загалом ПІД регулятори налаштовують для забезпечення всіх критеріїв якості регулювання на високому рівні.

Складові ПІД регулятора налаштовуються окремо.

  • Вимикається інтегруюча та диференціююча ланки і вибирається коефіцієнт пропорційної ланки. Якщо регулятор пропорційно-інтегруючий (відсутня диференціююча ланка), то досягають повної відсутності коливань на перехідній характеристиці. При налаштуванні регулятора на високу швидкодію коливання можуть залишитися. Їх спробує компенсувати диференційну ланку.
  • Підключається диференціююча ланка. Його коефіцієнтом прагнуть усунути коливання параметра регулювання. Якщо не вдається, зменшують пропорційний коефіцієнт.
  • За рахунок інтегруючої ланки видаляють залишкову помилку неузгодженості.

Налаштування ПІД регулятора має ітераційний характер. Тобто. пункти підбору коефіцієнтів можуть багаторазово повторюватися до того часу, доки досягне прийнятний результат.

Завдяки високим характеристикам та універсальності ПІД регулятори широко застосовуються в системах автоматизації виробництва.

У наступному уроці розроблятимемо ПІД регулятор температури.

Поділиться з вами досвідом створення розумного регулятора обертання вентиляторів, за участю термодатчика, LCD-дисплея та, звичайно ж, Arduino.

Кілька місяців тому я прочитав низку статей про Arduino і дуже зацікавився цим девайсом, а незабаром вирішив придбати. Треба відзначити, що я далекий від мікроелектроніки, тому плата привернула себе передусім відносною простотою в освоєнні. Набалувавшись з LED-ами і «Hello world»-ами, захотілося зробити щось практичне, заодно детальніше ознайомитися з можливостями Arduino. Пам'ятаючи про аномально спекотне літо 2010 року, виникла ідея зібрати регулятор обертів кулера в залежності від температури з виведенням усіх супутніх характеристик на LCD. Сподіваюся, що комусь дана схема або її варіації зможуть стати в нагоді, тому вирішив викласти свої нариси.

Для цієї схеми нам знадобиться:

  • Власне сама плата Arduinoабо аналог;
  • Макетна платадля збирання компонентів схеми;
  • Дисплей WH1601A-NGG-CT з підстроювальним резистором на 20 комчи аналогічний;
  • Резистори – 220 Ом, 10 ком, 4.7 ком;
  • Біполярний транзистор SS8050Dчи аналогічний йому;
  • Цифровий температурний датчик DS18B20;
  • Діод 1N4148або аналог;
  • Вентиляторосьовий трипровідний (на 12В), наприклад - комп'ютерний;
  • Роз'єм гнізда живлення 2,1/5,5 мм.

Комп'ютерний кулер має три дроти, два з яких - червоний (+12V) та чорний (GND) використовуються для живлення, а третій (жовтий) пов'язаний з таходатом, побудованим на елементі Холла. На жаль, 5V з плати нам явно недостатньо, але 6 цифрових виходів Arduino можуть працювати в режимі ШІМ (вони відзначені на самій платі білими квадратиками, або літерами PWM), тому ми можемо регулювати подачу сигналу з плати на реле, яке відповідатиме за зміну напруги, що подається на вентилятор.

Отримувати інформацію про обороти ми з третього дроту від таходатчика, скориставшись модифікованим способом, заснованим на реалізації переривань, які більшість Arduino можуть приходити на цифрові pin 2 (переривання 0) і 3 (переривання 1). До речі, у Arduino Mega є ще 4 додаткових піна з можливістю отримання переривань.

Тепер необхідно розташувати цифровий датчик температуридані якого ми будемо використовувати для регулювання напруги, що подається на цифровий вихід з ШІМ, а отже для «відкриття» каналу напруги вентилятора. Для датчиків фірми Dallas існує власна бібліотека Arduino - Dallas Temperature, яку згодом ми і підключатимемо в скетчі. Бібліотеку необхідно розпакувати до каталогу arduino-0018/libraries/.

Залишилося останнє – підключити LCD, де у нас буде відображатися вся поточна інформація про температуру та швидкість вентилятора. Оскільки я використав для складання екран WH1601A, можуть мати місце відомі проблеми з відображенням рядків. Для їх усунення ми скористаємося бібліотекою LiquidCrystalRus, яку необхідно також розпакувати в каталог arduino-0018/libraries/.

//Підключаємо бібліотеку для термодатчика#include //Підключаємо бібліотеку для LCD#include #define PowerPin 9 // pin для контролю живлення вентилятора#define HallSensor 2 // pin для датчика обертів вентилятора (переривання)#define TempPin 7 // pin для датчика температури LiquidCrystalRus lcd(12, 11, 10, 6, 5, 4, 3); //Підключення LCD DallasTemperature tempSensor; int NbTopsFan, Calc, fadeValue; //цілочисленні змінні для розрахунків float temper; //речова змінна для зберігання температури typedef struct( // Вводимо новий тип змінних для вентиляторів char fantype; unsigned int fandiv; ) fanspec; //Масив змінних нового типу fanspec fanspace = ((0,1), (1,2), (2,8)); //Змінна, відповідальна вибір типу датчика вентилятора (1 – униполярный датчик Холла, 2 –биполярный датчик Холла) char fan = 2; //Ця функція у нас буде викликатись при кожному перериванні void rpm () ( NbTopsFan++; ) // Функція розрахунку напруги, що подається на цифровий pin з ШІМ void temp () (fadeValue = min (int (temper * 7), 255)); // Помножуємо температуру на коефіцієнт, // беремо від твору ціле число } // Т.к. максимальне значення ШІМ становить 255, то подавати більше немає сенсу – беремо мінімум із двох void setup() ( tempSensor.begin (TempPin); //Запускаємо температурний датчик lcd.begin (16, 2); //Задаємо характеристики LCD lcd.setDRAMModel (LCD_DRAM_WH1601); //І тип дисплея pinMode (HallSensor, INPUT); // Налаштовуємо pin для отримання переривань attachInterrupt (0, rpm, RISING ); //Прив'язуємо переривання за номером 0 до нашої функції, причому вона буде вираховуватися щоразу при зміні сигналу) void loop() ( temper = tempSensor.getTemperature(); // Отримуємо температуру temp(); // Вираховуємо напругу, що подається на ШІМ analogWrite (PowerPin, fadeValue); // Подаємо його NbTopsFan = 0; // Обнулюємо змінну, що містить оберти delay (1000); //Чекаємо 1 секунду Calc = ((NbTopsFan * 60)/fanspace.fandiv); //Розраховуємо величину оборотів за 60 секунд, поділену на множник вентилятора lcd.print (Calc, DEC); //Виводимо розраховану величину у десятковому вигляді lcd.print ("rpm -"); lcd.print (temper); //Виводимо температуру lcd.home(); )

Читаючи першу частину заголовка багато хто з вас, напевно, подумав – ще один термостат на багатостраждальній Arduino. І… Це правда – так, це черговий термостат для чергового котла, чергового будинку, але правда це лише частково – у статті я не хочу концентруватися на самому пристрої – їх (статей) дійсно достатньо. Безперечно, я опишу термостат, але більше хотів би розповісти про те, як я пов'язував сам мікроконтролер із котлом. Отже, кому цікаво – прошу…

Як все починалося

Насамперед хочу сказати, що я анітрохи не програміст і зі справжнім мікроконтролером справи до цього не мав. Моє перше знайомство з МК AVR (та й взагалі з МК) було ще у старшій школі, коли мені захотілося дізнатися, як же таки працює ця загадкова штука. Я прочитав кілька статей і з того часу в пам'яті у мене залишилися лише уривки, які можна було описати лише двома словами – DDR і PORT – на цьому мої знання і обривалися. Потім був універ, 5-й курс – «Програмування мікроконтролерів», де ми всі познайомилися з MSC51 у віртуальному середовищі. Тут уже були і переривання, і таймери, і решта. Ну, ось із таким багажем знань я і прийшов до проблеми. Закінчимо на цій автобіографічній ноті і перейдемо до цікавішої частини.

Отже, власне, з чого почалося створення термостату - після встановлення автономного опалення з газовим котлом, я, як і багато хто, зіткнувся зі звичайними проблемами - температура в будинку дуже залежала від погоди на вулиці - мороз - у квартирі холодно, потрібно збільшувати температуру теплоносія батареях, потепліло – навпаки. Такі танці з бубном мене дуже влаштовували, т.к. регулювання котла ускладнювалося тим, що він був встановлений за дверцятами, а дверцята підперті мікрохвильовою піччю, на якій лежала купа мотлоху. Ну, ви зрозуміли - голка в яйці, яйце в качку і т.д.

Вирішувалась ця проблема дуже просто – датчиком OTC (Outside Temperature Compensation), який підключається до котла та дозволяє йому автоматично підлаштовувати температуру теплоносія в залежності від вуличної температури. Проблема, начебто, вирішена, але читання сервіс-мануалу на котел (Ferolli Domiproject C24D) швидко розтоптало мою надію - підключення датчика зовнішньої температури в даній моделі не передбачено. Всі? Всі. І ось, напевно, можна було б закінчити, але влітку в казані в грозу досі незрозумілим мені способом згоряє плата управління, і розмовляючи з сервіс-меном (плату згодом відремонтували) я запитав, чи можливо підключення OTC на мій котел? Він відповів, що підключають, використовуючи зовнішні термостати. Це відклалося у мене в пам'яті, але я не особливо на цьому концентрувався до настання холодів, а далі все та сама проблема.

Гартуючи все ту ж сервісну інструкцію, але вже з метою подивитися, як підключається термостат, я помітив, що на ті ж клеми підключається «OpenTherm регулятор». Тут же я зрозумів - ось воно! Пошук у Google OpenTherm Arduino мене знову засмутив - нічого особливо тямущого. Був монітор повідомлень, але це не те – мені й слухати, то нема чого – потрібен саме термостат.

Давайте зробимо для початку на Arduino щось просте. У главі 12ми вже винаходили термостати на аналогових компонентах. Тепер подивимося, як можна залучити до цієї корисної у господарстві справи цифрову техніку.

Ми вже згадували (див. розділ 18), що до складу AVR-контролерів входить 10-розрядний багатоканальний АЦП. На платах Arduino його висновки спеціально позначені як аналогові входи (буквою Аіз цифрами від нуля до п'яти). Зауважте, що вони можуть бути задіяні як звичайні цифрові з номерами від 14 до 18, і ми в такій якості ними ще скористаємося. Один із цих входів ми якраз і застосуємо для вимірювання температури, а керувати підключенням навантаження будемо з одного із цифрових виходів.

Разом нам знадобляться:

□ плата Arduino Uno (годиться і будь-яка інша);

Я термістор як датчик температури. Підійде, наприклад, наявний

□ «Амперці» В57164-К 103-J з номінальним опором 10 кОм при 25 °C – саме його характеристики наведені в главі 13як ілюстрацію до властивостей термісторів;

□ змінний резистор 10 кОм, постійний резистор 620 Ом;

□ виконавче реле – електромагнітне (обов'язково з підсилювальним транзисторним ключем, див. далі) або твердотільне.

У продажу є модулі на основі 5-вольтових електромагнітних реле спеціально підігнаних під управління від виходів Arduino. Електромагнітні реле самі по собі вимагають досить великого струму управління (і він тим більше, чим потужніше реле, - безпосередньо від логіки можуть працювати тільки найпотужніші герконові реле), тому у всіх подібних релейних модулях обов'язково є транзисторний підсилювальний ключ. Наприклад, в "Амперці" продається такий модуль на основі реле HLS8L-DC5V-S-C. Якщо вас електромагнітне реле не влаштовує, і ви прагнете граничної простоти схеми, то можна пошукати твердотільні реле - підійдуть, наприклад, CX240D5R фірми Crydom або аналогічні з напругою спрацьовування 3-15 В. У них струм управління становить близько 15 мА при 5 вольтах на вході, що допустимо для AVR, тому їх вхід, що управляє, можна підключати до цифрового висновку Arduino безпосередньо. Щоправда, при напрузі 220 вольт комутувати навантаження потужністю більше кіловата CX240D5R не може, але нам у цій задачі більше не потрібно.

Схема термостата Arduino Uno показана на рис. 21.2.

Мал. 21.2. Схема термостату на Arduino Uno

На схемі обмотка реле К1 (з нормально розімкненими контактами) умовно приєднується прямо до цифрового виходу Arduino - мається на увазі, що це згадане раніше твердотільне реле з потрібними характеристиками, або просто управляючий вхід готової плати релейного модуля. Для контролю стану схеми одночасно з нагрівачем спрацьовує світлодіод. Програма термостата відповідно до такої схеми вкрай проста:

Величини резисторів підігнані під зазначений термістор В57164 К з номінальним опором 10 кОм при 25 ° C (103 J). Відповідно до програми спрацьовування реле відбуватиметься поблизу значення на виході АЦП, що дорівнює 500. Це становить приблизно середину 10-розрядного діапазону (вся шкала – 1024 градації), тобто таке значення встановиться при приблизній рівністі верхнього та нижнього опорів щодо входу АТ (Напруга на цьому вході тоді складе приблизно 2,5 вольта).

Зверніть увагу, що обидві функції ifне закінчуються звичним else. Для запобігання брязкоту в програму введено гістерезис: реле вмикається при перевищенні значення коду 510, а вимикається при зниженні до значення 490. У проміжку воно зберігатиме попередній стан. Двадцять одиниць коду (те, що в главі 12ми називали зоною нечутливості) відповідають приблизно 10 мілівольтам, тобто гістерезис при температурі в межах 30-40 градусів складе трохи менше однієї десятої градуса (перевірте самі за допомогою табл. 13.1 з глави 13).

Встановлення температури спрацьовування за допомогою резистора R2 за таких параметрів можливе в межах приблизно від 22 до 96 °C. Зрозуміло, практично такий широкий діапазон регулювання не потрібно, тому доцільно номінал R2 зменшити. Величина R1 підбирається так, щоб R1 та номінальне значення R2 у сумі становили опір термістора при нижньому значенні бажаного діапазону температур (відповідно до табл. 13.1). Для більш точного припасування можна провести калібрування і змінити порогові значення в програмі, вимірюючи температуру, що встановилася звичайним термометром.

Якщо ви застосуєте в цій схемі інші датчики, не забудьте про знак температурного коефіцієнта. Звичайний діод або транзистор у діодному включенні (як у схемах з глави 13) також мають негативний нахил параметри, тому їм у програмі доведеться міняти лише числові значення порога спрацьовування. А ось напівпровідникові датчики типу ТМР35 (див. розділ 13) або просто металеві термометри опору (як у конструкції з глави 17) мають позитивний температурний коефіцієнт, тому умови спрацьовування доведеться змінити на зворотні. Причому не просто поміняти «більше» на «менше» і навпаки, а змінити і співвідношення порогів для гістерези - в новій ситуації нагрівач повинен буде включатися, якщо значення менше порогу, а вимикатися - якщо більше.


Top