Аналоговый Измеритель проводимости EC

Аналоговый Измеритель проводимости EC

5.0 2 отзыва 3 заказа
2 309 руб.

Описание

Примечание: Этот продукт содержит описание продукта, схему подключения, исходный код, пожалуйста, посмотрите вниз!
Разница между продуктом и продуктом DTS: большой диапазон: 1 мс/cm-20ms/см. DTS подходит для короткого измерения качества воды в домашних условиях.
Профиль продукта
Этот аналоговый Измеритель проводимости имеет характеристики простого подключения, удобства и практичности. Очень удобно измерять проводимость раствора, соединяя линии по схематической схеме, а затем управляя ими с помощью программы.
Самое главное, что мы производим весь дизайн и код. Пользователи могут легко собрать данные проводимости с помощью Arduino для дальнейшего контроля и исследований. Энтузиасты могут обучаться и поделиться, и дать ценный совет.
Проводимость-это способность материи передавать ток и взаимное сопротивление. В жидкости для измерения проводимости часто используется взаимная проводимость сопротивления. Проводимость воды является важным индексом для измерения качества воды. Он может отражать степень электролитов в воде. В зависимости от концентрации электролита в водном растворе степень проводимости отличается. В международной системе единиц, блок проводимости называется Siemens/m (S/m), и другие блоки S/m, MS/cm и mu S/cm.
Сфера применения
Обнаружение качества воды
Смешанное земледелие почвы и воды
Аквакультуры
Декоративных аквариумных рыб
Технический параметр
Рабочее напряжение: + 5,00 в
Размер печатной платы: 45 мм * 32 мм
Диапазон измерения: 1 мс/см -- 20 мс/см
Применимая температура: 5-40 C
Точность: <+ 10% Ф. С. (Удельная точность зависит от вашей точности калибровки)
XH2.54 Интерфейс (3-пластырь для ног)
Электрод проводимости интерфейса BNC (постоянный электрод 1)
Длина проводящего электрода: около 60 см
Мощность индикаторная лампа
Схема подключения
Ec-метр -- Arduino
V---5,0 в;
G--- GND;
A-имитировать IO (соответствующий исходному коду)
Счетов-фактур
Один BNC интерфейс проводящий электрод
Ec-метр PCB-1 шт.
Передача (1 шт.)
Arduino исходный код: & nbsp;
# Включает <OneWire. h>
# Определить startconvert 0
# Определить readtemperature-1 шт.
Const byte numarthings = 20;/количество раз образца
Байт ECsensorPin = A1;/аналоговый выход метра EC, pin на аналоговом 1
Байт DS18B20_Pin = 2;/сигнал DS18B20, pin на цифровом 2
Неподписанный Инт аналоговый интервал = 25, printInterval = 700, tempSampleInterval = 850;/интервал аналогового образца; интервал последовательной печати; интервал температурного образца
Неподписанные показания int [показания num];/показания с аналогового входа
Индекс байта = 0;/Индекс тока чтения
Unsigned long analogvaluetoвсего = 0;/бегущий итог
Unsigned int AnalogAverage = 0, averagevolage = 0;/среднее
Неподписанные длинные аналоги sampletime, printTime, tempSampleTime;
Температура поплавка, ток;
/Температурный чип ввода/вывода
OneWire ds (DS18B20_Pin);/на цифровом pin 2
Void setup () {
/Инициализация последовательной связи с компьютером:
Серийный. Старт (115200);
/Инициализируйте все показания на 0:
Для (байт thisReading = 0; thisReading <numreading; thisReading + +)
Показания [эти показания] = 0;
TempProcess (startпреобразовать);/позвольте DS18B20 начать преобразование
AnalogSampleTime = millis ();
PrintTime = millis ();
TempSampleTime = millis ();
} Долл. США
Void loop () {
/*
Время от времени измеряйте аналоговое значение и вычисляйте среднее значение.
*/
If (millis ()-AnalogSampleTime> = AnalogSampleInterval)
{
AnalogSampleTime = millis ();
/Вычтите последнее чтение:
Analogvaluetoвсего = analogvaluetoвсего-показания [индекс];
/Чтение с датчика:
Показания [индекс] = аналог (эксенсорпин);
/Добавить чтение в общее:
Analogvaluetoвсего = analogvaluetoвсего + показания [индекс];
/Переход к следующей позиции в массиве:
Индекс = индекс + 1;
/Если мы в конце массива...
If (индекс> = нумерации)
/. .. Оберните в начало:
Индекс = 0;
/Рассчитать Среднее:
AnalogAverage = аналоговые значения/цифры;
} Долл. США
/*
Время от времени MCU считывает температуру от DS18B20, а затем позволяет DS18B20 начать преобразование.
Внимание: интервал между началом преобразования и считыванием температуры должен быть больше 750 миллисекунды, или температура не является точной!
*/
If (millis ()-темпсамплетайм> = темпсамплеинтервал)
{
TempSampleTime = millis ();
Температура = темппроцесс (считывание температуры);/считывание текущей температуры из DS18B20
TempProcess (startпреобразовать);/после чтения Начните Преобразование для следующего чтения
} Долл. США
/*
Время от времени Печатайте информацию на последовательном мониторе.
*/
If (millis ()-время печати> = интервал печати)
{
PrintTime = millis ();
Усреднение = аналоговый средний * (поплавок) 5000/1024;
Серийный. Принт ("аналоговое значение:");
Серийный. Принт (аналог);/аналоговый средний, от 0 до 1023
Серийный. Принт ("напряжение:");
Серийный. Принт (усреднение);/милливольт средний, от 0мв до 4995мв
Серийный. Принт ("мВ");
Серийный. Принт ("Температура:");
Серийная печать (температура);/температура тока
Серийный. Принт ("^ C EC:");
Коэффициент температуры поплавка = 1,0 + 0,0185 * (температура-25,0);/формула температурной компенсации: ffinalrescut (25 ^ C) = ffinalrescut (ток)/(1,0 + 0,0185 * (fTP-25.0);
Коэффициент поплавка = (Поплавковый) усредненный коэффициент/темпкоэффициент;
Если (коэффициент напряжения <150) Серийный. println («Нет решения! ");/25 ^ C 1413us/см <--> около 216мв, если напряжение (Компенсирует) <150, то есть <1 мс/см, вне диапазона
Иначе, если (коэффициент> 3300) Серийный. println ("вне диапазона!");/> 20 мс/см, вне диапазона
Другое
{
Если (коэффициент напряжения <= 448) ток = 6,84 * CoefficientVolatge-64.32;/1 мс/см <EC <= 3 мс/см
Остальное, если (коэффициент <= 1457) eccurent = 6,98 * CoefficientVolatge-127;/3 мс/см <EC <= 10 мс/см
Else eccurent = 5,3 * CoefficientVolatge + 2278;/10 мс/см <EC <20 мс/см
Eccurent/= 1000;/Преобразование США/см в MS/см
Serial. print (eccurent, 2);/две десятичные
Серийный. println ("ms/cm");
} Долл. США
} Долл. США
} Долл. США
/*
Ch = 0, пусть DS18B20 запустит преобразование; ch = 1, MCU считывает температуру тока от DS18B20.
*/
Float TempProcess (bool ch)
{
/Возвращается температура от одного DS18B20 в градусе Цельсия
Статические байтовые данные [12];
Статический байт addr [8];
Статический поплавок TemperatureSum;
If (! ch) {
Если (! Ds. search (addr) {
Serial. println («Нет больше датчиков на цепи, сброс поиска!»);
Ds. reset_search ();
Возврат 0;
} Долл. США
If (OneWire: crc8 (addr, 7)! = addr [7]) {
Serial. println ("CRC не действителен!");
Возврат 0;
} Долл. США
Если (addr [0]! = 0x10 & addr [0]! = 0x28) {
Серийный. Принт («устройство не распознано!»);
Возврат 0;
} Долл. США
Ds. reset ();
Ds. Выбор (addr);
Ds. write (0x44,1);/старт преобразования, с паразитом включения в конце
} Долл. США
Больше {
Настоящий байт = ds. reset ();
Ds. Выбор (addr);
Ds. write (0xBE);/чтение scrachpad
Для (int i = 0; i <9; i + +) {/нам нужно 9 байт
Данные [i] = ds. read ();
} Долл. США
Ds. reset_search ();
Байт MSB = данные [1];
Байт LSB = данные [0];
Float tempRead = (MSB <8) LSB);/использование двух комплиментов
Температура = темпрад/16;
} Долл. США
Возврат TemperatureSum;
} Долл. США

Характеристики

Материал
+