Як приготувати розчин NaCl для калібрування TDS-метра
TDS/EC-метр для води з щупом: посібник з використання для Arduino
Використовуйте TDS/EC-метр для вимірювання кількості розчинених твердих речовин у воді та її питомої електричної провідності. Датчик нагоді для перевірки ефективності очищення питної води в побутовому фільтрі, аналізу якості дистильованої води або приготування живильного розчину в гідропонних системах.
Відеоогляд
Деталі
Сенсор TDS/EC – це солемір та кондуктометр на одній платі.
- Солемір TDS (Total Dissolved Solids) служить визначення загальної кількості розчинених твердих речовин, у воді від 0 до 10'000 ppm.
- Кондуктометр EC (Electrical Conductivity) служить визначення питомої електричної провідності води від 0 до 20,000 мСм/см.
За вихідними даними TDS і EC можна судити про загальну мінералізацію, жорсткість та солоність води. Чутливість датчика дозволяє зафіксувати навіть 2-3 крупинки харчової солі розчиненої у склянці дистильованої води.
Модуль не можна використовувати для визначення якості питної води, оскільки вода може містити одночасно шкідливі та корисні для організму мінерали.
TDS/EC-метр складається з занурювального щупа та плати управління. Щуп сенсора виконаний у пластиковому герметичному циліндрі із двома електродами на кінці. При зануренні у вимірюваний розчин між електродами виникає опір, який фіксує та обробляє плату управління.
TDS/EC-метр відноситься до серії «Flash», а отже до однієї шини I²C можна підключити понад 100 модулів. Стандартна адреса встановлена 0x09.
Рекомендації щодо вимірювання
- Перед вимірюваннями протріть електроди щупа спиртом або дистильованою водою.
- При сильному забрудненні електродів опустіть щуп у дистильовану воду на пару годин.
- Після занурення сенсора в рідину, ведіть щупом у різні боки, ніби перемішуючи рідину. Це дозволить позбутися бульбашок повітря, які можуть потрапити між контактами електродів у процесі занурення датчика.
- Чекайте щонайменше хвилини з моменту занурення щупа до проведення вимірів.
- Не торкайтеся руками електродів вимірювального щупа.
- Між вимірюваннями різних рідин сполосніть щуп у дистильованій воді або струсіть залишки крапель попередньої рідини.
- Датчик слід калібрувати, як у процесі експлуатації, і після кожної заміни датчика.
- Постійне збільшення показань модуля (>20 ppm на день) означає про випаровування рідини в яку занурений датчик або про наявність у ній мікрофлори.
Підключення та налаштування
TDS/EC-метр підтримує два вихідні інтерфейси для підключення до контролера: аналоговий та цифровий I²C.
Аналоговий інтерфейс
Що знадобиться
Рекомендуємо також звернути увагу на додаткові плати розширення:
- Trema Shield допоможе підключити модуль Arduino за допомогою акуратного шлейфу.
- Trema Set Shield допоможе підключити модуль Arduino без проводів зовсім.
Схема пристрою
Схема пристрою з Trema Shield
Схема пристрою з Trema Set Shield
На завершення опустіть вимірювальний щуп у воду.
Програмне налаштування
Цифровий інтерфейс I²C
Що знадобиться
Рекомендуємо також звернути увагу на додаткові плати розширення:
- Trema Shield допоможе підключити модуль Arduino за допомогою акуратного шлейфу.
- Trema Set Shield допоможе підключити модуль Arduino без проводів зовсім.
Схема пристрою
Схема пристрою з Trema Shield
Схема пристрою з Trema Set Shield
Підключення до програмної шини I2C:
При використанні програмної шини I2C модуль можна підключити до будь-яких висновків Arduino, але потрібно додатково встановити бібліотеку iarduino_I2C_Software.h, для створення програмної шини I2C, вказавши номери вибраних вами висновків. Про те, як це зробити, читайте нижче в розділі «Підключення бібліотеки», а також на сторінці Wiki - Розширені можливості бібліотек iarduino для шини I2C.
На завершення опустіть вимірювальний щуп у воду.
Програмне налаштування
- Налаштуйте плату Arduino Uno у середовищі Arduino IDE.
- Завантажте та встановіть бібліотеку iarduino_I2C_TDS. Для встановлення рекомендуємо використовувати нашу інструкцію з встановлення бібліотек для Arduino.
- Виконайте калібрування датчика.
- Перейдіть до прикладів роботи через цифровий інтерфейс I²C.
Калібрування датчика
Для підвищення точності показань датчик необхідно калібрувати. TDS/EC-метр підтримує апаратне та програмне калібрування.
Калібрування датчика доступне тільки на шині I²C, з аналоговим сигналом калібрувальні коефіцієнти необхідно вираховувати самостійно.
Для калібрування знадобиться два буферні розчини з різною концентрацією солей, які можна купити або приготувати самостійно.
Приготування калібрувальних розчинів
Розглянемо процес приготування буферних розчинів для подальшого калібрування TDS/EC-метра. Для прикладу готуватимемо розчини з концентрацією 500 ppm і 1500 ppm.
Що знадобиться
- 1× Хлорид калію KCl
- 3× Склянка для води
- 1× Дистильована вода (H2O)
- 1× Шприц
- 1× Ваги
Якщо хлориду калію KCl немає, можна використовувати хлорид натрію NaCl – це звичайна харчова сіль. Однак у звичайній кухонній солі міститься багато домішок, які негативно впливатимуть на точність показань.
Інструкція з приготування
- Пронумеруйте склянки цифрами «0», «1» та «2» відповідно.
- У склянці «0» приготуємо еталонний розчин калію хлориду з концентрацією 10'000 ppm:
- У склянку "0" насипте 1 г (1'000 мг) калієвої солі (KCl).
- У склянку "0" налийте 50-70 мл дистильованої води.
Перемішайте вміст склянки до розчинення солі. - У склянку «0» долийте дистильованої води до 100 мл розчину.
Перемішайте вміст склянки до однорідності розчину. - У результаті в склянці "0" ми отримали еталонний розчин 10'000 ppm.
(1'000 мг/100 мл = 10'000 мг/л = 10'000 ppm) .
- У склянці «1» приготуємо першу калібрувальну рідину 500 ppm:
- У склянку "1" перелийте 5 мл еталонного розчину зі склянки "0" за допомогою шприца.
Тепер у склянці "1" знаходиться 5 мл початкового розчину.
(1'000 мг/100 мл = 50 мг/5 мл) . - У склянку «1» долийте дистильованої води до 100 мл розчину.
Перемішайте вміст склянки. - У результаті в склянці «1» ми отримали першу калібрувальну рідину 500 ppm.
(50 мг/100 мл = 500 мг/л = 500 ppm) .
- У склянку "1" перелийте 5 мл еталонного розчину зі склянки "0" за допомогою шприца.
- У склянці «2» приготуємо другу калібрувальну рідину 1'500 ppm:
- У склянку "2" перелийте 15 мл еталонного розчину зі склянки "0" за допомогою шприца.
Тепер у склянці "2" знаходиться 15 мл початкового розчину.
(1'000 мг/100 мл = 150 мг/15 мл) . - У склянку «2» долийте дистильованої води до 100 мл розчину.
Перемішайте вміст склянки. - У результаті в склянці «2» ми отримали другу калібрувальну рідину 1'500 ppm.
(150 мг/100 мл = 1'500 мг/л = 1'500 ppm) .
- У склянку "2" перелийте 15 мл еталонного розчину зі склянки "0" за допомогою шприца.
- Еталонний розчин у склянці "0" більше не знадобиться. А калібрувальні розчини у склянках «1» та «2» повинні настоятися не менше 2 годин.
-
Формула: ШПРИЦЬ = КОНЦЕНТРАЦІЯ * КІЛЬКІСТЬ / ЕТАЛОН
Ця формула дозволяє визначити, скільки еталонної рідини (зі склянки "0") потрібно взяти в шприц для приготування калібрувальної рідини в будь-яких концентраціях.
-
Приклад: Потрібно створити 100 мл калібрувальної рідини 1'500 ppm з еталонної 10'000 ppm.
- КОНЦЕНТРАЦІЯ = 1,500 ppm.
- КІЛЬКІСТЬ = 100 мл.
- ЕТАЛОН = 10'000 ppm.
- ШПРИЦЬ = КОНЦЕНТРАЦІЯ * КІЛЬКІСТЬ / ЕТАЛОН = 1'500 * 100 / 10'000 = 15 мл.
Приклад показує чому на 4 пункті інструкції для приготування 100 мл рідини з концентрацією 1'500 ppm, ми переливали шприцем саме 15 мл еталонного розчину.
Апаратне калібрування
Апаратне калібрування – це калібрування датчика за допомогою кнопки.
Що знадобиться
- Підключіть та налаштуйте TDS/EC-метр через цифровий інтерфейс I²C.
- Приготуйте калібрувальні розчини. За замовчуванням концентрація першого розчину 500 ppm, а другого – 1500 ppm.
Інструкція
- Протріть електроди щупа спиртом або дистильованою водою.
- Опустіть щуп датчика в першу калібрувальну рідину. У нашому прикладі концентрація першої калібрувальної рідини встановлена в 500 ppm.
- Зачекайте одну хвилину.
- Натисніть кнопку калібрування. Повинний блимати світлодіод «1».
- Зачекайте, поки не почнуть переморгуватися світлодіоди «1» і «2».
- Витягніть щуп датчика з першої калібрувальної рідини.
- Протріть електроди щупа спиртом або дистильованою водою.
- Опустіть щуп датчика у другу калібрувальну рідину. У нашому прикладі концентрація другої калібрувальної рідини встановлена в 1500 ppm.
- Зачекайте хвилину.
- Натисніть кнопку калібрування. Повинний блимати світлодіод «2».
- Зачекайте, поки світлодіод «2» не перестане блимати.
- Якщо світлодіод «2» згас і світлодіод «1» не ввімкнувся, значить калібрування виконане.
- Одночасне включення двох світлодіодів інформує про помилку калібрування.
Примітки
- Концентрація еталонного розчину для першої стадії – 500 ppm, для другої стадії – 1500 ppm.
- Нові еталонні значення концентрації калібрувальних розчинів можна встановити функцією setKnownTDS().
- Температура калібрувальних рідин повинна бути близькою до 25 °С. Якщо температура рідин відрізняється від 25 °С, її реальне значення необхідно вказати функцією set_t() .
- Про помилку калібрування вказують не тільки світлодіоди, але й функцію getCalibration(), див. приклад нижче.
- Можливі причини помилки калібрування: неправильно приготовлені калібрувальні рідини, переплутаний порядок калібрувальних рідин (на першій стадії використовували рідину призначену для другої стадії та навпаки), поганий контакт модуля зі щупом, несправний модуль.
Програмне калібрування
Програмне калібрування - це калібрування датчика без кнопки.
Що знадобиться
- Підключіть та налаштуйте TDS/EC-метр через цифровий інтерфейс I²C.
- Приготуйте калібрувальні розчини. За замовчуванням концентрація першого розчину 500 ppm, а другого – 1500 ppm.
Інструкція
- Протріть електроди щупа спиртом або дистильованою водою.
- Опустіть щуп датчика в першу калібрувальну рідину. У нашому прикладі концентрація першої калібрувальної рідини встановлена в 500 ppm.
- Зачекайте хвилину.
- Викличте функцію setCalibration() з параметрами 1 та концентрацією першого калібрувального розчину.
- Витягніть щуп датчика з першої калібрувальної рідини.
- Протріть електроди щупа спиртом або дистильованою водою.
- Опустіть щуп датчика у другу калібрувальну рідину. У нашому прикладі концентрація другої калібрувальної рідини встановлена в 1500 ppm.
- Зачекайте хвилину.
- Викличте функцію setCalibration() з параметрами 2 та концентрацією другого калібрувального розчину.
- Витягніть щуп датчика з другої калібрувальної рідини.
Вихідний код
#include // Підключаємо бібліотеку до роботи з апаратної шиною I2C, до підключення бібліотеки iarduino_I2C_TDS. #include // Підключаємо бібліотеку до роботи з TDS/EC-метром I2C-flash. iarduino_I2C_TDS tds(0x09); // Створюємо об'єкт tds для роботи з функціями та методами бібліотеки iarduino_I2C_TDS, вказуючи адресу модуля на шині I2C. // Якщо оголосити об'єкт без вказівки адреси (iarduino_I2C_TDS tds;), адресу буде знайдено автоматично. float val_t = 25.0; // Температура калібрувальних рідин. // void setup() < // // Підготовка: // delay (500); // Чекаємо на завершення перехідних процесів пов'язаних з подачею харчування. Serial.begin(9600); // Ініціюємо роботу з шиною UART для передачі в монітор послідовного порту на швидкості 9600 біт/сек. tds.begin(&Wire); // Ініціюємо роботу з TDS/EC-метром I2C-flash, вказавши посилання на об'єкт для роботи з шиною I2C, на якій знаходиться модуль (за замовчуванням &Wire). tds.set_t(val_t); // Вказуємо температуру рідини °С. Serial.println("ОПУСТИТЕ ДАТЧИК В 1 РОЗЧИН (500 ppm)."); // delay (60000); // Чекаємо 1 хвилину. // Запускаємо 1 стадію калібрування: //tds.setCalibration(1, 500); // Виконуємо 1 стадію калібрування вказавши відому концентрацію 1 розчину (у прикладі 500ppm). Serial.println("КАЛІБРУВАННЯ"); // while( tds.getCalibration()==1 )< delay(500); >// Чекаємо завершення 1 стадії калібрування. // Змінюємо калібрувальні розчини: // Serial.println("СПОЛОСНІТЬ ДАТЧИК."); // delay (30000); // Чекаємо 30 секунд. Serial.println("ОПУСТИТЕ ДАТЧИК У 2 РОЗЧИН (1500 ppm)."); // delay (60000); // Чекаємо 1 хвилину. // Запускаємо 2 стадію калібрування: // tds.setCalibration(2, 1500); // Виконуємо 2 стадію калібрування вказавши відому концентрацію 2 розчину (у прикладі 1500ppm). Serial.println("КАЛІБРУВАННЯ.""); // while( tds.getCalibration()==2 ) < delay(500); >// Чекаємо завершення 2 стадії калібрування. // Виводимо результат калібрування: // bool f = tds.getCalibration(); // Отримуємо результат калібрування. Serial.print("КАЛІБРОВКА ВИКОНАНА"); З ПОМИЛОЮ."); >// Serial.println("------------------------------------ ---"); // > // // void loop() < // // Виводимо мінералізацію та електропровідність рідини: // Serial.print((String)"TDS="+tds.getTDS()+"мг /л, " ); // Serial.print((String)"EC="+tds.getEC()+"мСм/див.\r\n"); // delay(1000); // >//
Примітки
- Ми використовували концентрації еталонних розчинів для першої стадії – 500 ppm, для другої стадії – 1500 ppm. Однак ви можете вказувати свої значення калібрувальних розчинів у функції setCalibration().
- Температура калібрувальних рідин повинна бути близькою до 25 °С. Якщо температура рідин відрізняється від 25 °С, її реальне значення необхідно вказати функцією set_t() .
- Функція getCalibration() повертає стадію калібрування 1 або 2, повідомляє про простий 0, а починаючи з версії бібліотеки 1.3.0 інформує про помилку калібрування 3 і дозволяє отримати додаткову інформацію.
- У наведеному коді виконувалося відстеження стадій калібрування зверненням до функції getCalibration() із затримками 500мс т.к. більш часті звернення до модуля під час калібрування знижують точність цього калібрування.
Зміна адреси модуля на шині I2C:
За замовчуванням усі модулі FLASH-I2C мають встановлену адресу 0х09. Якщо ви плануєте підключати більше 1 модуля на шину I2C, необхідно змінити адреси модулів таким чином, щоб кожен з них був унікальним. Більш детально про те, як змінити адресу, а також багато іншого, що стосується роботи FLASH-I2C модулів, ви можете прочитати в цій статті.
У першому рядку скетчу необхідно записати до змінної newAddress адресу, яка буде присвоєна модулю. Після цього підключіть модуль до контролера та завантажте скетч. Адреса може бути від 0х07 до 0х7F.
uint8_t newAddress = 0x09; // Призначається модулю адресу (0x07 <адреса < 0x7F). // #include // Підключаємо бібліотеку до роботи з апаратної шиною I2C, до підключення бібліотеки iarduino_I2C_TDS. #include // Підключаємо бібліотеку до роботи з TDS/EC-метром I2C-flash. iarduino_I2C_TDS tds; // Створюємо об'єкт tds для роботи з функціями та методами бібліотеки iarduino_I2C_TDS. // Якщо при оголошенні об'єкта вказати адресу, наприклад, tds(0xBB), приклад буде працювати з тим модулем, адреса якого була вказана. void setup()< // Serial.begin(9600); // if( tds.begin(&Wire) )< // Ініціюємо роботу з TDS/EC-метром, вказавши посилання на об'єкт для роботи з шиною I2C на якій знаходиться модуль (за умовчанням &Wire). Serial.print("Знайдено TDS/EC-метр 0x"); // Serial.println(tds.getAddress(), HEX); // Виводимо поточну адресу модуля. if( tds.changeAddress(newAddress) )< // Змінюємо адресу модуля на newAddress. Serial.print("Адреса змінено на 0x"); // Serial.println(tds.getAddress(),HEX); // Виводимо поточну адресу модуля. >else < // Serial.println("Адреса не змінений!"); // >// >else < // Serial.println("TDS/EC-метр не знайдено!"); // >// > // // void loop() < // >//
Даний приклад використовує бібліотеку iarduino_I2C_TDS, яка працює тільки з модулями TDS/EC-метр, а значить дозволяє міняти лише їхні адреси.
Зміна та сортування адрес на шині I2C:
Змінити адресу будь-якого I2C модуля серії «Flash» можна апаратно, використовуючи установник адрес FLASH-I2C.Це модуль, що підключається до шини I2C, на платі якого розміщений дисплей і кнопки керування, за допомогою яких можна дізнатися кількість будь-яких пристроїв на шині I2C, і змінювати адреси модулів Flash-I2C не відключаючи їх від шини, що значно скоротить час складання ваших проектів. Модуль оснащений роз'ємом USB, через який можна запитати як сам модуль, так і шину I2C, або можна запитати шину I2C без використання роз'єму USB на платі модуля. Установник адрес нагоді в проектах з великою кількістю модулів Flash-I2C.
Змінити адресу будь-якого I2C модуля серії «Flash» можна програмно, про те, як це зробити розказано у статті Wiki - Програмне встановлення адрес модулів FLASH-I2C. У цій статті розглянуто приклади з використанням бібліотеки iarduino_I2C_Address, яка дозволяє отримувати адреси будь-яких пристроїв на шині I2C, міняти адреси модулів Flash-I2C не відключаючи їх від шини, отримувати назву, номер моделі, версію прошивки модулів Flash-I2C, а головне автоматично сортувати адреси модулів Flash-I2C навіть якщо на шині є пристрої з однаковими адресами.
Приклади роботи
Розглянемо базові приклади до роботи з TDS/EC-метром.
Аналоговий інтерфейс
Виведемо дані із датчика через аналоговий інтерфейс.
Вихідний код
const uint8_t pin_Vm = A0; // Визначаємо висновок якого підключений аналоговий вихід модуля. // const float Vcc = 5.0f; // Напруга живлення Arduino. const float Vccm = 3.3f; // Напруга живлення ОУ модуля (внутрішньосхемно використовується 3,3В). const float Ka = 1000.0f; // Множник статечної функції (визначається калібруванням модуля). Можна отримати функцію getKa(). const float Kb = -5.0f; // Ступінь статечної функції (визначається калібруванням модуля). Можна отримати функцію getKb().const float Kt = 0.02f; //Температурний коефіцієнт (залежить від складу рідини). const float Kp = 0.5f; // Коефіцієнт перерахунку (залежить складу рідини). const float Kf = 0.85f; // Коефіцієнт передачі ФВЧ+ФНЧ модуля (залежить від частоти змінного струму використовуваного щодо вимірювань). const float T = 25.0f; // Опорна температура °C. const float t = 25.0f; // Температура досліджуваної рідини °C. // void setup() < // delay(500); // Чекаємо на завершення перехідних процесів пов'язаних з подачею харчування. Serial.begin(9600); // Ініціюємо роботу з шиною UART для передачі в монітор послідовного порту на швидкості 9600 біт/сек. >// // void loop() < // // Отримуємо напругу виході модуля: // float Vm = analogRead(pin_Vm)*Vcc/1023; // У. // Отримуємо питому електропровідність: // float S = Ka * pow ((Vccm-Kf * Vm) / 2, Kb) / 1000; // мСм/див. // Наводимо питому електропровідність // // рідини до опорної температури T: // float EC = S/(1+Kt*(t-T)); // мСм/див. // Отримуємо мінералізацію рідини: // float TDS = EC*Kp; // ppm. // Виводимо отримані дані: // Serial.print((String)"S="+S+"мСм/см, "); // Serial.print((String)"EC="+EC+"мСм/см, "); // Serial.print((String)"TDS="+TDS+"мг/л\r\n"); // delay (1000); //>//
Результат роботи
Після прошивки контролера, в COM-порт Arduino виводитиметься виміряна електропровідність рідини S, наведена електропровідність рідини EC і кількість розчинених твердих речовин рідини TDS.
Коефіцієнти Ka та Kb визначаються модулем у процесі калібрування, їх значення можна отримати функціями getKa() та getKb() відповідно.
Цифровий інтерфейс I²C
Виведемо дані із датчика через цифровий інтерфейс I²C.
Вихідний код
#include // Підключаємо бібліотеку до роботи з апаратної шиною I2C, до підключення бібліотеки iarduino_I2C_TDS. #include // Підключаємо бібліотеку до роботи з TDS/EC-метром I2C-flash. iarduino_I2C_TDS tds(0x09); // Створюємо об'єкт tds для роботи з функціями та методами бібліотеки iarduino_I2C_TDS, вказуючи адресу модуля на шині I2C. // Якщо оголосити об'єкт без вказівки адреси (iarduino_I2C_TDS tds;), адресу буде знайдено автоматично. float val_t = 25.0; //Температура досліджуваної рідини. // void setup() < // delay(500); // Чекаємо на завершення перехідних процесів пов'язаних з подачею харчування. Serial.begin(9600); // Ініціюємо роботу з шиною UART для передачі в монітор послідовного порту на швидкості 9600 біт/сек. tds.begin(&Wire); // Ініціюємо роботу з TDS/EC-метром I2C-flash, вказавши посилання на об'єкт для роботи з шиною I2C, на якій знаходиться модуль (за замовчуванням &Wire). >// // void loop() < // tds.set_t(val_t); // Вказуємо поточну температуру рідини. Serial.print((String)"Ro=" +tds.getRo() + "Ом, "); // Виводимо загальний виміряний опір. Serial.print((String)"S=" +tds.get_S() +"мСм/см, "); // Виводимо виміряну питому електропровідність рідини. Serial.print((String)"EC=" +tds.getEC() +"мСм/см, "); // Виводимо питому електропровідність рідини, приведену до опорної температури. Serial.print((String)"TDS="+tds.getTDS()+"ppm\r\n" ); // Виводимо кількість розчинених твердих речовин рідини. delay(1000); //>//
Результат роботи
Після прошивки контролера, в COM-порт Arduino буде виводитися загальний опір медлу висновками щупа Ro, вимірювана електропровідність рідини S, наведена електропровідність рідини EC і кількість розчинених твердих речовин рідини TDS.
Більше прикладів ви знайдете в меню Arduino IDE: Файл / Приклади / iarduino_I2C_TDS.
Елементи плати
Датчик TDS/EC складається з вимірювального щупа та плати управління.
Щуп сенсора виконаний у пластиковому герметичному циліндрі із двома електродами на кінці. При зануренні у вимірюваний розчин або воду між електродами виникає опір, який фіксує та обробляє плату управління.
Плата управління генерує змінну напругу, яка надходить на електроди щупа. При зануренні щупа в рідину, між його електродами виникає опір, який обернено пропорційно електропровідності рідини. Далі сигнал посилюється операційним підсилювачем, зчитується цифровою частиною схеми, випрямляється, згладжується і ще через один операційний підсилювач надходить на аналоговий вихід датчика.
Модуль побудований на базі мікроконтролера STM32F030F4 та двох операційних підсилювачах LMC7101 та LM358. На платі також розпаяна кнопка калібрування, інформаційні світлодіоди та контакти для підключення до контролера.
Кнопка калібрування
Кнопка «Калібрування» служить для виконання апаратного калібрування модуля. Усі подробиці щодо використання кнопки читайте у розділі калібрування модуля.
Інформаційні світлодіоди
Інформаційні світлодіоди «1» і «2» служать для наочності виконання апаратного та програмного калібрування модуля. Усі подробиці читайте у розділі калібрування модуля.
Trema-контакти
TDS/EC-метр підтримує два вихідні інтерфейси для підключення до контролера: аналоговий та цифровий I²C.
Аналоговий інтерфейс
| Контакт | Функція | Підключення |
|---|---|---|
| S | Вихідний сигнал сенсора | Підключіть до піна вводу-виводу мікроконтролера за допомогою АЦП. |
| V | Харчування | Підключіть до живлення мікроконтролера. |
| G | Земля | Підключіть до землі мікроконтролера. |
Цифровий інтерфейс I²C
| Контакт | Функція | Підключення |
|---|---|---|
| SDA | Лінія даних шини I²C | Підключіть до піна мікроконтролера SDA. |
| SCL | Лінія тактування шини I²C | Підключіть до піна мікроконтролера SCL. |
| V | Харчування | Підключіть до живлення мікроконтролера. |
| G | Земля | Підключіть до землі мікроконтролера. |
Формули та визначення
Формули
- Vout ≈ (Vccm - 2Vm) / Kf
- Ro = (R + Rd) Xc / (R + Rd + Xc)
- S = Ka * Vout ^ Kb / 1000
- EC = S / (1 + Kt * (t - T))
- TDS = EC × Kp × 1000
Визначення
- Vccm - напруга живлення ОУ модуля 3,3 Ст.
- Vm – напруга на аналоговому виході модуля.
- Kf коефіцієнт передачі ФВЧ + ФНЧ на другому ОУ. Коефіцієнт використовується для отримання Vout з Vm. Для вимірювань на частоті 2кГц (за замовчуванням) Kf 0,85.
- Vout – напруга на виході першого ОУ. Можна вирахувати з напруги на виході модуля Vm або запросити функцією getVout() , що надасть точніше значення.
- S — виміряна питома електрична провідність мсм/см. Обчислюється з електричної провідності G (мСм) та постійної датчика Kd (см-1). Виміряну питому електропровідність S можна запросити функцією get_S() .
- EC - наведена питома електропровідність рідини. Електрична провідність рідини S залежить від її поточної температури t: що вище температура рідини, то вище її електрична провідність і навпаки. За цим питому електричну провідність S вимірюють за будь-якої температури t, а потім результат призводять до опорної температури T отримуючи EC. Наведену питому електропровідність EC можна запросити функцією get_EC().
- TDS – кількість розчинених твердих речовин у ppm (мг/л води). Це значення визначається множенням наведеної питомої електричної провідності ЄС (мкСм/см) коефіцієнт перерахунку Kp = 0,5 (за замовчуванням).Кількість розчинених твердих речовин TDS можна запросити функцією get_TDS().
- t – поточна температура рідини. Модуль визначає всі параметри вимірюючи опір рідини, який сильно залежить від її температури. Для цього модуля необхідно вказувати поточну температуру рідини для отримання коректних значень. Поточну температуру t необхідно встановити функцією set_t().
- T - опорна температура рідини, при якій добуток її виміряної питомої електропровідності та коефіцієнта перерахунку Kp дорівнює концентрації розчинених твердих речовин рідини TDS. Опорну температуру T можна запросити функцією get_T().
- Kt - температурний коефіцієнт рідини, який показує наскільки електрична провідність рідини залежить від її температури. Температурний коефіцієнт рідини Kt використовується для приведення питомої електричної провідності рідини S виміряної за поточної температури t до питомої електричної провідності рідини EC для опорної температури T. Температурний коефіцієнт рідини Kt можна запросити функцією getKt() .
- Kp - коефіцієнт перерахунку для перетворення наведеної питомої електричної провідності рідини EC кількість розчинених твердих речовин TDS. Коефіцієнт перерахунку Kp можна запросити функцією get_Kp().
- Коефіцієнти статечної функції Ka і Kb визначаються модулем самостійно в процесі калібрування та автоматично зберігаються в його пам'яті. Калібрування є кращим методом вказівки коефіцієнтів Ka та Kb.
Опис функцій бібліотеки:
Бібліотека підтримує роботу з датчиком тільки по шині I²C, з аналоговим сигналом програмний модуль не працюватиме.
Бібліотека iarduino_I2C_TDS може використовувати як апаратну, і програмну реалізацію шини I2C.Про те, як вибрати тип шини I2C, розказано нижче в розділі «Підключення бібліотеки», а також на сторінці Wiki - розширені можливості бібліотек iarduino для шини I2C.
Підключення бібліотеки:
#include // Підключаємо бібліотеку для роботи з апаратною шиною I2C, до підключення бібліотеки iarduino_I2C_TDS.h #include // Підключаємо бібліотеку для роботи з модулем. // iarduino_I2C_TDS tds(0x09); // Створюємо об'єкт tds для роботи з функціями та методами бібліотеки iarduino_I2C_TDS, вказуючи адресу модуля на шині I2C. // iarduino_I2C_TDS tds; // Якщо адреса модуля не відомий, його можна не вказувати, він буде знайдено автоматично. // Якщо адреса не вказана, то на шині повинен бути лише один модуль. void setup() <//. // tds.begin(&Wire); // Ініціюємо роботу з модулем, вказавши посилання на об'єкт для роботи з шиною I2C, на якій знаходиться модуль (за замовчуванням &Wire). . // Доступні об'єкти: Wire, Wire1, Wire2. >//
#include // Підключаємо бібліотеку до роботи з програмною шиною I2C, до підключення бібліотеки iarduino_I2C_TDS.h SoftTwoWire sWire(3,4); // Створюємо об'єкт програмної шини I2C вказавши висновки, яким буде призначено роль ліній: SDA, SCL. // #include // Підключаємо бібліотеку до роботи з модулем. iarduino_I2C_TDS tds(0x09); // Створюємо об'єкт tds для роботи з функціями та методами бібліотеки iarduino_I2C_TDS, вказуючи адресу модуля на шині I2C. // iarduino_I2C_TDS tds; // Якщо адреса модуля не відомий, його можна не вказувати, він буде знайдено автоматично. // Якщо адреса не вказана, то на шині повинен бути лише один модуль. void setup() <//. // tds.begin(&sWire); // Ініціюємо роботу з модулем, вказавши посилання на об'єкт для роботи з шиною I2C, на якій знаходиться модуль (за замовчуванням &Wire). . //>//
- В обох прикладах спочатку підключається бібліотека для роботи із шиною I2C. Для апаратної шини бібліотека Wire.h (попередньо встановлена в Arduino IDE), а для програмної шини бібліотека iarduino_I2C_Software.h, зі створенням об'єкта якому вказуються вибрані вами висновки шини, у прикладі висновки (3-SDA, 4-SCL) .
- Далі підключається бібліотека та створюється об'єкт для роботи з модулем.
- У коді Setup() при ініціалізації роботи з модулем вказується посилання на об'єкт роботи з обраною шиною I2C begin(&ШИНА) . Інші рядки коду однакові для будь-якої шини I2C.
Функція begin()
- Призначення: ініціалізація роботи із модулем.
- Синтаксис: bool begin()
- Параметри:
- &ШИНА - Посилання на об'єкт для роботи з шиною I2C, на якій знаходиться модуль.
- Для апаратної шини: Wire, Wire1, Wire2. якщо підключено бібліотеку Wire.h
- Для програмної шини посилання на об'єкт бібліотеки iarduino_I2C_Software.h.
- Параметр не є обов'язковим, за замовчуванням використовується посилання &Wire.
- true: ініціалізація модуля пройшла успішно.
- false : ініціалізація модуля пройшла успішно.
Функція reset()
- Призначення: перезавантаження модуля.
- Синтаксис: bool reset()
- Параметри: ні
- Значення, що повертається:
- true : перезавантаження модуля успішно.
- false : перезавантаження модуля не вдалося.
Функція changeAddress()
- Призначення: Зміна адреси модуля на шині I²C.
- Синтаксис: bool changeAddress(uint8_t newAddr)
- Параметри:
- newAddr : нова адреса модуля на шині I²C. Доступний діапазон адрес від 0x08 до 0x7E.
- true : адреса модуля успішно змінена.
- false : адреса модуля не успішно змінена.
- Стандартна адреса 0x09 .
- Адреса модуля зберігається після вимкнення живлення.
- Поточну адресу модуля можна запросити функцією getAddress().
Функція getAddress()
- Призначення: запит на поточну адресу модуля на шині I²C.
- Синтаксис: uint8_t getAddress()
- Параметри: ні.
- Значення, що повертається: поточна адреса модуля від 0x08 до 0x7E .
- Примітки: нову адресу модуля можна встановити функцією changeAddress() .
- Приклад:
Serial.print("Адреса модуля на шині I²C: 0x"); Serial.println(tds.getAddress(), HEX);Функція getVersion()
- Призначення: запит про версію прошивки модуля.
- Синтаксис: uint8_t getVersion()
- Параметри: ні
- Значення, що повертається: номер версії прошивки від 0 до 255 .
- Приклад:
Serial.print("Версія прошивки модуля:"); Serial.println(tds.getVersion());Функція setPullI2C()
- Призначення: керування внутрішньосхемною підтяжкою ліній шини I²C.
- Синтаксис: bool setPullI2C(bool f)
- Параметри:
- f: прапор стану внутрішньосхемної підтяжки. Допустимі значення:
- true: встановити внутрішньосхемну підтяжку.
- false: зняти внутрішньосхемну підтяжку.
- true : внутрісхемна підтяжка успішно змінена.
- false : Внутрісхемна підтяжка змінена не успішно.
- Прапор установки внутрішньосхемної підтяжки зберігається після відключення живлення.
- Поточний стан внутрішньосхемної підтяжки можна запросити функцією getPullI2C() .
- Внутрішньосхемна підтяжка ліній шини I²C здійснюється до рівня 3,3 Ст. Однак датчик допускає встановлювати зовнішні резистори, що підтягують, і модулі з підтяжкою до рівня 5 В.
Функція getPullI2C()
- Призначення: запит стану внутрішньосхемного підтягування ліній шини I²C.
- Синтаксис: bool getPullI2C()
- Параметри: ні.
- Значення, що повертається:
- true : Внутрісхемна підтяжка включена.
- false : внутрісхемна підтяжка вимкнена.
Функція setFrequency()
- Призначення: встановлення частоти змінного струму, що використовується для вимірювань.
- Синтаксис: bool setFrequency(uint16_t frequency)
- Параметри:
- frequency: частота змінного струму від 50 до 5000 Гц.
- true : встановлення частоти пройшло успішно.
- false : встановлення частоти не вдалося.
- Значення за замовчуванням 2000 Гц.
- Вказана частота змінного струму зберігається після відключення живлення.
- Поточну частоту змінного струму можна запросити функцією getFrequency().
- Для модулів версії 6 і вище частота автоматично визначається в процесі калібрування. Модуль підбирає частоту максимально узгоджену з параметрами щупа, кабелю та вхідного каскаду операційного підсилювача.
// Вказуємо модулю проводити вимірювання струмом із частотою 100 Гц. tds.setFrequency(100);
Функція getFrequency()
- Призначення: запит частоти змінного струму, що використовується для вимірювань.
- Синтаксис: uint16_t getFrequency()
- Параметри: ні.
- Значення, що повертається: частота змінного струму від 50 до 5000 Гц.
- Примітки: Ви можете встановити нову частоту змінного струму функцією setFrequency() .
- Приклад:
Serial.print("Модуль використовує змінний струм із частотою: "); Serial.print(tds.getFrequency()); Serial.print("Гц.");Функція setCalibration()
- Призначення: програмне калібрування модуля, тобто. без натискання на кнопку калібрування.
- Синтаксис: bool setCalibration(uint8_t num, uint16_t tds)
- Параметри:
- num: номер стадії калібрування. Допустимі значення 1 або 2 .
- tds : концентрація еталонного розчину, що використовується для поточної стадії калібрування. Допустимі значення від 0 до 10000 ppm.
- true : програмне калібрування вказаної стадії пройшло успішно.
- false : програмне калібрування цієї стадії пройшло не успішно.
- Концентрації еталонних розчинів на першій та другій стадії калібрування мають бути різними.
- Поточну стадію програмного калібрування можна запросити функцією getCalibration.
- Функція setCalibration виконує програмне калібрування. Модуль TDS/EC також підтримує апаратне калібрування за допомогою функції setKnownTDS() та кнопки «Калібрування».
- При успішному завершенні калібрування зміняться значення Ka і Kb, а в модулях версії 6 і вище буде визначена нова частота змінного струму, що використовується для вимірювань. Змінені значення можна прочитати функціями getKa, getKb та getFrequency.
// Виконуємо першу стадію калібрування // Встановлюємо концентрацію першого еталонного розчину 750 ppm tds.setCalibration(1, 750); // Чекаємо 1 хвилину delay (60000); // Виконуємо другу стадію калібрування // Встановлюємо концентрацію другого еталонного розчину 3000 ppm tds.setCalibration(2, 3000);
Функція getCalibration()
- Призначення: одержання поточної стадії калібрування модуля.
- Синтаксис: uint8_t getCalibration([& uint8_t])
- Необов'язковий параметр: адреса змінної для отримання додаткової інформації.
- Значення, що повертається: поточна стадія калібрування модуля.
- 0 – калібрування не виконується.
- 1 - виконується 1 стадія калібрування модуля.
- 2 - виконується 2 стадія калібрування модуля.
- 3 - помилка калібрування (тільки для модулів версії 6 та вище).
- Функція відображає стан як апаратного, так і програмного калібрування.
- Апаратне калібрування запускається натисканням кнопки на платі модуля.
- Програмне калібрування можна виконати функцією setCalibration().
- Для модулів версії 6 і вище, можна вказати як параметр адресу змінної, за якою надсилатиметься додаткова інформація про калібрування.
- 0 – немає додаткової інформації.
- 1 - Виконується пошук частоти (на початку 1 стадії калібрування).
- 2 - Виконується накопичення даних електропровідності (на 1 та 2 стадії).
- 3 - Модуль очікує запуск 2 стадії калібрування (між 1 та 2 стадіями).
Serial.print("Поточна стадія калібрування модуля:"); Serial.println(tds.getCalibration());Serial.println("Чекаємо завершення 2 стадії калібрування."); while( tds.getCalibration() == 2 ) < delay(500); >Serial.println("2 стадія калібрування завершена.");i = tds.getCalibration(&j); if( i==0 ) < Serial.println("КАЛІБРОВКА ВИКОНАНО УСПІШНО!" ); >if( i==1 ) < Serial.println("ВИКОНАЄТЬСЯ 1 СТАДІЯ КАЛІБРУВАННЯ. "); >if( i==2 ) < Serial.println("ВИКОНАЄТЬСЯ 2 СТАДІЯ КАЛІБРУВАННЯ. "); >if( i==3 ) < Serial.println("ПОМИЛКА КАЛІБРОВКИ!"); >if( j==0 ) < Serial.println("- Немає дій. " ); >if( j==1 ) < Serial.println("- Пошук частоти. " ); >if( j==2 ) < Serial.println("- Накопичення даних. " ); >if( j==3 )Функція setKnownTDS()
- Призначення: встановлення нових еталонних значень для апаратного калібрування модуля за допомогою кнопки калібрування.
- Синтаксис: bool setKnownTDS(uint8_t num, uint16_t tds)
- Параметри:
- num: номер стадії калібрування. Допустимі значення 1 або 2 .
- tds : концентрація еталонного розчину, що використовується для калібрування. Допустимі значення від 0 до 10000 ppm.
- true : запис еталонного значення для зазначеної стадії апаратного калібрування пройшов успішно.
- false : запис еталонного значення для зазначеної стадії апаратного калібрування пройшов успішно.
- Значення за умовчанням: концентрація еталонного розчину для першої стадії – 500 ppm, для другої стадії – 1500 ppm.
- Концентрації розчинів на першій та другій стадії мають бути різними.
- Зазначена концентрація зберігається і після вимкнення живлення.
- Поточні еталонні значення концентрації калібрувальних розчинів можна запросити функцією getKnownTDS().
- Функція setKnownTDS() не виконує калібрування модуля, а лише записує концентрації розчинів для подальшого апаратного калібрування за допомогою кнопки «Калібрування». Модуль TDS/EC також підтримує програмне калібрування за допомогою функції setCalibration() без кнопки «Калібрування».
// Для першої стадії апаратного калібрування (кнопкою) // Встановлюємо концентрацію першого еталонного розчину 750 pmm tds.setKnownTDS(1, 750); // Для другої стадії апаратного калібрування (кнопкою) // Встановлюємо концентрацію другого еталонного розчину 3000 pmm tds.setKnownTDS(2, 3000);
Функція getKnownTDS()
- Призначення: запит концентрації розчину для апаратного калібрування модуля за допомогою кнопки калібрування.
- Синтаксис: uint16_t getKnownTDS(uint8_t num)
- Параметри: ні.
- num: стадія калібрування. Допустиме значення 1 або 2 .
Serial.print("Для калібрування модуля кнопкою потрібні розчини з концентрацією"); Serial.print(tds.getKnownTDS(1)); Serial.print(" і "); Serial.print(tds.getKnownTDS(2)); Serial.print("ppm.");Функція getRo()
- Призначення: запит загального виміру опору Ro.
- Синтаксис: uint32_t getRo()
- Параметри: ні.
- Значення, що повертається: загальний виміряний опір Ro від 0 до 1000000 Ом.
- Приклад:
Serial.print("Загальний виміряний опір:"); Serial.print(tds.getRo()); Serial.print("Ом.");Функція getVout()
- Призначення: запит напруги на виході першого підсилювача.
- Синтаксис: float getVout()
- Параметри: ні.
- Значення, що повертається: напруга на виході першого ОУ від 0.0 до 6.5535 В.
- Приклад:
Serial.print("Напруга на виході ОУ:"); Serial.print(tds.getVout());Функція get_S()
- Призначення: запит питомої електропровідності рідини.
- Синтаксис: uint16_t get_S()
- Параметри: ні.
- Значення, що повертається: питома електропровідність рідини від 0.0 до 65.535 мСм/см.
- Примітки:
- Функція має синтаксис get_S , а чи не get_σ для сумісності з таблицею ASCII.
- Бібліотеки версії нижче 1.3.0 виводили електропровідність у мкСм/див.
Serial.print("Виміряна питома електропровідність рідини:"); Serial.print(tds.get_S()); Serial.print("мСм/див.");Функція getEC()
- Призначення: запит питомої електропровідності рідини, приведеної до опорної температури T.
- Синтаксис: uint16_t getEC()
- Параметри: ні.
- Значення, що повертається: питома електропровідність рідини приведена до опорної температури. Доступний діапазон від 0.0 до 65.535 мСм/див.
- Примітки:
- Наведена питома електропровідність EC це значення електропровідності S, якби воно було виміряне при опорній температурі T °С, а не поточній температурі t °С.
- Бібліотеки версії нижче 1.3.0 виводили електропровідність в мкСм/см.
Serial.print("Наведена питома електропровідність рідини:"); Serial.print(tds.getEC()); Serial.print("мСм/див.");Функція getTDS()
- Призначення: запит кількості розчинених твердих речовин рідини.
- Синтаксис: uint16_t getTDS()
- Параметри: ні.
- Значення, що повертається: кількість розчинених твердих речовин у рідині від 0 до 65535 ppm (мг/л води).
- Приклад:
Serial.print("Концентрація розчину:"); Serial.print(tds.getTDS()); Serial.print("ppm");Функція set_t()
- Призначення: встановлення температури рідини.
- Синтаксис: bool set_t(float val_t)
- Параметри:
- val_t: поточна температура рідини від 0 до 63.75 °С.
- true : поточна температура модуля успішно відправлена.
- false : поточна температура модуля не успішно відправлена.
// Встановлюємо модулю поточну температуру рідини 23.5 С tds.set_t (23.5f);
функція set_T();
- Призначення: встановлення опорної температури.
- Синтаксис: bool set_T (float val_T);
- Параметри:
- val_T: опорна температура від 0 до 63.75 °С.
- true: застосування нової опорної температури пройшло успішно.
- false : застосування нової опорної температури пройшло успішно.
- Значення за умовчанням 25 °С.
- Зазвичай використовують значення 20 чи 25 °С.
- Поточну опорну температуру можна запросити функцією get_T().
// Встановлюємо модулю нову температуру опору 25.0 °С. tds.set_T(25.0f);
функція get_T();
- Призначення: запит на опорну температуру.
- Синтаксис: float get_T()
- Параметри: ні.
- Значення, що повертається: опорна температура від 0 до 63.75 °С.
- Примітки: нову опорну температуру можна встановити функцією set_T().
- Приклад:
Serial.print("Модуль використовує опорну температуру:"); Serial.print(tds.get_T()); Serial.print("С");Функція setKt()
- Призначення: встановлення температурного коефіцієнта рідини Kt.
- Синтаксис: bool setKt(float val_Kt)
- Параметри:
- val_Kt: значення температурного коефіцієнта рідини від 0 до 6.5535.
- true: застосування нового температурного коефіцієнта пройшло успішно.
- false: застосування нового температурного коефіцієнта пройшло не успішно.
- Значення за промовчанням 0.02.
- Поточний коефіцієнт температури рідини можна запросити функцією getKt() .
// Вказуємо модулю новий температурний коефіцієнт рідини 0.1 tds.setKt(0.1f);
Функція getKt()
- Призначення: запит коефіцієнта температурного рідини Kt.
- Синтаксис: float getKt()
- Параметри: ні.
- Значення, що повертається: температурний коефіцієнт від 0 до 6.5535 .
- Примітки: новий температурний коефіцієнт рідини можна встановити функцією setKt().
- Приклад:
Serial.print("Модуль використовує Kt:"); Serial.print(tds.getKt());Функція setKp()
- Призначення: встановлення коефіцієнта перерахунку Kp.
- Синтаксис: bool setKp(float val_Kp)
- Параметри:
- val_Kp: значення коефіцієнта перерахунку від 0.01 до 2.55.
- true: застосування нового коефіцієнта перерахунку пройшло успішно.
- false : застосування нового коефіцієнта перерахунку пройшло успішно.
- Значення за замовчуванням 0.5.
- Зазвичай використовують коефіцієнти 0.5, 0.64 чи 0.7.
- Поточний коефіцієнт перерахунку можна запросити функцією getKp().
// Вказуємо модулю новий коефіцієнт перерахунку 0.7 tds.setKp(0.7f);
Функція getKp()
- Призначення: запит поточного коефіцієнта перерахунку Kp.
- Синтаксис: float getKp().
- Параметри: ні.
- Значення, що повертається: коефіцієнт перерахунку від 0.01 до 2.55 .
- Примітки: новий коефіцієнт перерахунку можна встановити функцією setKp().
- Приклад:
Serial.print("Модуль використовує Kp:"); Serial.print(tds.getKp());Функція setKa()
- Призначення: встановлення множника статечної функції Ka.
- Синтаксис: bool setKa(float val_Ka)
- Параметри:
- val_Ka: множник статечної функції від 0.1 до 1677721.5.
- true : встановлення статечного множника пройшло успішно.
- false : установка статечного множника пройшла успішно.
- Стандартне значення 1000.0 .
- Зазначене значення зберігається після вимкнення живлення.
- Множник статечної функції можна запросити функцією getKa().
- Бібліотеки версії нижче 1.3.0 набували значення від 0 до 167'772,15.
// Вказуємо модулю новий множник статечної функції 2100 tds.setKa (2100.0f);
Функція getKa()
- Призначення: запит множника статечної функції Ka.
- Синтаксис: float getKa()
- Параметри: ні.
- Значення, що повертається: множник статечної функції від 0.1 до 1677721.5.
- Примітки:
- Новий множник статечної функції можна встановити функцією setKa().
- Бібліотеки версії нижче 1.3.0 повертали значення від 0 до 167'772,15.
Serial.print("Модуль використовує Ka:"); Serial.print(tds.getKa());Функція setKb()
- Призначення: встановлення ступеня статечної функції Kb.
- Синтаксис: bool setKb(float val_Kb)
- Параметри:
- val_Kb: ступінь статечної функції від -0.01 до -65.535.
- true : встановлення нового ступеня пройшло успішно.
- false : встановлення нового ступеня пройшло не успішно.
- Значення за промовчанням -5.0.
- Зазначене значення зберігається після вимкнення живлення.
- Ступінь статечної функції можна запросити функцією getKb().
// Вказуємо модулю новий ступінь статечної функції -7.5 tds.setKb(-7.5f);
функція getKb();
- Призначення: запит ступеня статечної функції.
- Синтаксис: float getKb()
- Параметри: ні.
- Значення, що повертається: ступінь статечної функції -0.01 до -65.535.
- Примітки: новий рівень статечної функції можна встановити функцією setKb() .
- Приклад:
Serial.print("Модуль використовує Kb:"); Serial.print(tds.getKb());Габаритний креслення
Характеристики
- Модель: TDS/EC-метр для води з щупом (Trema-модуль Flash-I²C)
- Напруга живлення Vcc: 3,3-5 В
- Споживаний струм Icc: до 10 мА
- Діапазон вимірювань TDS: 0-10'000 ppm
- Діапазон вимірювань ЄС: 0-20,000 мСм/см
- Точність свідчень: ±5%
- Калібрування: апаратне (з кнопкою) та програмне (без кнопки)
- Аналоговий інтерфейс:
- Підключення: контакти S-V-G
- Вихідна напруга: 0-Vcc В
- Підключення: контакти I²C
- I²C-адреса: 0x09 (за замовчуванням)
- Чіп Flash-I²C: мікроконтролер STM32F030F4
Посилання
- TDS/EC-метр у магазині.
- Посібник з використання для Raspberry Pi.
- Технічний Datasheet для розробників.
- Бібліотека для Arduino.
- Бібліотека для Raspberry Pi.
- Бібліотека iarduino_I2C_Software.
- Як встановити бібліотеки для Arduino
- Як встановити бібліотеки для Raspberry Pi
- Wiki - Розширені можливості бібліотек Arduino на шині I²C.
- Загальні особливості модулів лінійки Flash-I²C.
- Wiki - Програмне встановлення адрес модулів FLASH-I2C.
Важливість правильної підготовки калібрувального розчину TDS-метра
Вимірники загальної кількості твердих речовин (TDS) є важливими інструментами для вимірювання концентрації розчинених твердих речовин у воді. Вони широко використовуються в різних галузях промисловості, включаючи сільське господарство, аквакультуру та очищення води. Однак, щоб вимірювачі TDS забезпечували точні та надійні показання, дуже важливо регулярно калібрувати їх з використанням калібрувального розчину.
Калібрувальні розчини є стандартизованими розчинами з відомою концентрацією розчинених твердих речовин. Занурюючи датчик TDS-метра в розчин калібрування, прилад можна відрегулювати для забезпечення точних показань. Правильне калібрування вимірювачів TDS є важливим, оскільки воно гарантує, що лічильник працює правильно і забезпечує точні вимірювання.
Одним з ключових етапів калібрування вимірювача TDS є підготовка калібрувального розчину.Калібрувальний розчин повинен мати відому та стабільну концентрацію розчинених твердих речовин, щоб забезпечити точне калібрування TDS-метра. Щоб приготувати калібрувальний розчин, вам знадобиться дистильована вода та стандартний розчин TDS із відомою концентрацією розчинених твердих речовин.
Щоб приготувати калібрувальний розчин, почніть із заповнення чистого контейнера відомим обсягом дистильованої води. Важливо використовувати дистильовану воду, оскільки водопровідна вода може містити домішки, які можуть вплинути на точність калібрувального розчину. Потім додайте стандартний розчин TDS у дистильовану воду відповідно до інструкцій виробника. Кількість стандартного доданого розчину TDS буде залежати від бажаної концентрації розчинених твердих речовин у калібрувальному розчині.
Покроковий посібник зі створення рішення для калібрування вимірювача TDS
Вимірники загальної кількості твердих речовин (TDS) є важливими інструментами для вимірювання концентрації розчинених твердих речовин у воді. Для забезпечення точних показань важливо регулярно калібрувати TDS-метр. Один із способів зробити це - підготувати калібрувальний розчин, що імітує певне значення TDS. У цій статті ми надамо покрокове посібник зі створення розчину для калібрування вимірювача TDS.
Для початку вам знадобиться кілька ключових інгредієнтів: дистильована вода, вимірювач TDS та пакет калібрувального розчину TDS. Ці пакети можна придбати через Інтернет чи місцевий господарський магазин. Важливо використовувати дистильовану воду, щоб уникнути впливу домішок, які можуть бути присутніми у водопровідній воді.
Почніть із заповнення чистої ємності дистильованою водою. Переконайтеся, що контейнер досить великий, щоб вмістити необхідну кількість розчину калібру. Далі зверніться до інструкцій на упаковці калібрувального розчину TDS, щоб визначити правильне співвідношення розчину та води. Це співвідношення буде змінюватись в залежності від значення TDS, якого ви намагаєтеся досягти.
Модель Вимірювач pH/ОВП pH/ORP-810 Діапазон 0-14 рН; -2000 - +2000мВ Точність 10,1 рН; 12мВ Темп. Комп. Автоматична температурна компенсація Опер. Темп. Нормальний 0-50℃; Висока температура 0~100℃ Датчик Подвійний/потрійний датчик pH; Датчик ОВП Дисплей РК-екран Зв'язок Вихід 4-20 мА/RS485 Висновок Управління подвійним реле верхньої/нижньої межі Сила 220 В змінного струму 110 відсотків 50/60 Гц або 110 В змінного струму 110 відсотків 50/60 Гц або 24 В постійного струму/0,5 А Робоче середовище Температура довкілля: 0~50℃ Відносна вологість≤85 відсотків Розміри 96 = 796 = 7100мм (В = 7Ш = 7Д) Розмір отвору 92 = 792мм (В = 7Ш) Режим встановлення Вбудований Як тільки ви визначите правильне співвідношення, обережно вилийте калібрувальний розчин у ємність із дистильованою водою. Використовуйте паличку для перемішування або ложку, щоб ретельно перемішати розчин. Для отримання точних показань важливо забезпечити рівномірний розподіл калібрувального розчину по воді.
Після змішування розчину використовуйте вимірювач TDS для вимірювання значення TDS калібрувального розчину. Прилад повинен відображати показання, що відповідають значенню TDS, вказаному в пакеті калібрувального розчину.Якщо показання не співпадають, можливо, вам доведеться відрегулювати співвідношення розчину та води та повторювати процес, доки не буде досягнуто бажаного значення TDS.
Після успішного калібрування вимірювача TDS важливо правильно зберігати калібрувальний розчин, щоб зберегти його точність. Зберігайте розчин у чистому, герметично закритому контейнері, далеко від прямих сонячних променів та екстремальних температур. Також рекомендується позначити контейнер значенням TDS калібрувального розчину для зручності використання.
Насамкінець, підготовка розчину для калібрування вимірювача TDS – це простий, але важливий крок у підтримці точності вашого вимірювача TDS. Наслідуючи кроки, описані в цьому посібнику, ви можете бути впевнені, що ваш лічильник даватиме надійні свідчення на довгі роки. Не забувайте регулярно калібрувати свій TDS-метр, щоб забезпечити точні виміри розчинених твердих речовин у воді.
- f: прапор стану внутрішньосхемної підтяжки. Допустимі значення:
- &ШИНА - Посилання на об'єкт для роботи з шиною I2C, на якій знаходиться модуль.
Подібні статті
- Що використовувати для калібрування рефрактометра
- Як приготувати розчин із білизни для дезінфекції
- Як правильно приготувати розчин для дезінфекції
- Як приготувати розчин глюкози для аналізу
- Який розчин використовувати для зберігання pH-метра
- Як зберігати калібрувальний розчин для pH-метра
- Як приготувати власний розчин для зберігання pH-зонду
- Як приготувати глиняний розчин для ремонту старої хати