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

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

4.8 16 отзывов 40 заказов
2 532 руб.

Описание

Информация о продукте
Этот аналоговый измеритель электропроводности воды имеет характеристики простое подключение, удобно и практично. После подключения по схематической схеме, а затем через программное управление, очень удобно измерять проводимость раствора.
Самое главное заключается в том, что мы с открытым исходным кодом все дизайн и код. Пользователи могут легко собрать данные проводимости с помощью Arduino для дальнейшего контроля и исследований. Вентиляторы, добро пожаловать к исследованиям и делиться ими и ценный отзывы.
Проводимость представляет собой способность вещество для того, чтобы носить с собой в настоящее время и взаимных сопротивления. В жидкость, электрического сопротивления часто измеряется взаимного электрического сопротивления. Проводимость воды является очень важным индикатором качества воды, и она отражает степень электролитов в воде. Степень проводимость раствора варьируется в зависимости от концентрации электролита в водном растворе. В международном Системы единиц, блок проводимости называется Siemens/метр (S/m), а также другие единицы: S/m, MS/см, мкс/см.
Применение диапазон
Проверка качества воды
Водных ресурсов и почвы смешанные сельское хозяйство
Аквакультуры
Декоративных аквариумных рыб
Технический параметр
Рабочее напряжение: + 5,00 в
Размер печатной платы: 45 мм ×, маленького размера, круглой формы с диаметром 32 мм
Диапазон измерений: 1 также доступна доставка службами ems см-20 ms/cm
Применимая температура: 5-40 °c
Точность по уровню поверхности: <± 10% f.s. (внимание! при точность зависит от вашего калибровки точность)
Интерфейс XH2.54 (3 ноги патч)
Тип интерфейса BNC электрод проводимости (постоянная электрода 1)
Проводник электрод длина кабеля: около 60 см
Схема подключения
Измеритель EC ---- Ar-dui-no
В ---- 5,0 в;
G ---- GND;
В ---- аналогового ввода/вывода (в соответствии с исходным кодом)
Arduino введите sorgente:
# Включает <OneWire. h>
# Определить StartConvert 0
# Определить ReadTemperature-1 шт.
Конст numreadings = 20 байт, а/il numero del campione volte
Байт ECsensor Spille = A1;/метр CE uscita analogica, Spille su analogico 1
Байт DS18B20 _ Spille = 2/DS18B20 сигнала, Spille su цифровой 2
Unsigned int analogsampleinterval = 25, printinterval = 700, tempsampleinterval = 850/аналоговый intervallo di campionamento; di серия di с рисунком intervallo; температура intervallo di campionamento
Unsigned int letture [numreadings];/le letture da il вход analogico
Индекс байт = 0;/ла-индекс в интернет-магазине la lettura золотой мыс
Неподписанное лунго analogvaluetotal = 0;/il da corsa totale
Unsigned int analogaverage = 0, averagevoltage = 0;/la media
Unsigned lungo AnalogSampleTime, printTime, tempSampleTime;
Galleggiante di для измерения, eccurrent;
/Температура чип ввода/вывода
Onewire ds (DS18B20 _ Spille);/цифровой Spille 2
Void setup () {
/Inizializzazione di comunicazione зарежалка con il компьютера:
Серийный. Старт (115200);
/Inizializzare tutte le letture в 0:
Per (байт thisreading = 0; thisreading <numreadings; thisreading + +)
Letture [это чтение] = 0;
TempProcess (startпреобразовать);/lasciare che il DS18B20 avviare il конвертер
AnalogSampleTime = millis ();
PrintTime = millis ();
TempSampleTime = millis ();
} Долл. сша
Void loop () {
/*
Ogni танто оон по ', del campione il valore analogico e calcolare la media.
*/
Se (millis ()-analogsampletime; при заказе на сумму> = analogsampleinterval)
{
AnalogSampleTime = millis ();
/Sottrarre l'ultima lettura:
Analogvaluetoвсего = analogvaluetoвсего-letture [index];
/Legere dal sensore:
Letture [index] = аналог (ECsensorPin);
/Aggiungere la lettura per il tocale:
Analogvaluetotal = analogvaluetotal + letture [index];
/Anticipo за il prossimo posizione nella matrice:
Indice = indice + 1;
/Se siamo алла тонкой della matrice...
Se (индекс; при заказе на сумму> = numreadings)
/. .. Обёрточная бумага вокруг all'inizio:
Индекс = 0;
/Calcolare ла средств массовой информации:
AnalogAverage = аналоговые значения/цифры;
} Долл. сша
/*
Ogni танто оон по ', MCU, внимательно ла для измерения da il DS18B20 e poi lasciare che il DS18B20 avviare il преобразование.
Пожалуйста: ла intervallo di tempo тра avviare il конвертировать e внимательно ла для измерения развития essere маджоре di 750 millisecondi, o ла для измерения и что не preciso!
*/
Se (millis ()-tempsampletime; при заказе на сумму> = tempsampleinterval)
{
TempSampleTime = millis ();
Температура = tempprocess (readtemperature)/внимательно ла для измерения attuale dal DS18B20
Tempprocess (startconvert)/dopo ла lettura, avviare il конвертировать per la prossima lettura
} Долл. сша
/*
Ogni tanto un po ', stampa le informazioni su il monitor seriale.
*/
Se (millis ()-printtime; при заказе на сумму> = printinterval)
{
PrintTime = millis ();
AverageVoltage = AnalogAverage * (поплавок) 5000/1024;
Серийный. Принт ("il valore Analogico ди:»);
Серийный. Принт (analogaverage)/analogico в сми, da 0 до 1023
Серийный. Принт ("Tensione:»);
Серийный. Принт (averagevoltage)/милливольт в сми, da 0mv в 4995mV
Серийный. Принт ("мВ");
Серийный. Принт ("Температура:");
Серийный. Принт (температура)/температура attuale
Серийный. Принт ("^ C EC:");
Galleggiante температурный коэффициент = 1,0 + 0,0185 * (temperatura-25.0)/формула di compensazione della температура: ffinalresult (25 ^ C) = ffinalresult (corrente)/(1,0 + 0,0185 * (fTP-25.0);
Галлеггиантные коэффициенты = (поплавок) усредненный коэффициент/темпкоэффициент;
Se (coefficientvolatge <150) di серия. println ("nessuna soluzione! ");/25 ^ C 1413us/см <-> около 216mv се ля tensione (tensione di compensazione) <150, che è <1 MS/см, fuori della гамма
Altrimenti se (coefficientvolatge> 3300) di серия. println ("Fuori della гамма!");/> 20 MS/см, fuori della гамма
Altro
{
Se (coefficientvolatge <= 448) eccurrent = 6,84 * CoefficientVolatge-64.32;/1 MS/см <EC <= 3 MS/см
Altrimenti se (coefficientvolatge <= 1457) eccurrent = 6,98 * CoefficientVolatge-127;/3 MS/см <EC <= 10 MS/см
Altro eccurrent = 5,3 * coefficientvolatge + 2278/10 MS/см <EC <20 MS/см
Eccurrent/= 1000/конвертировать сша/см на MS/см
Серийный. Принт (eccurrent, 2)/из-за decimali
Серийный. println ("ms/cm");
} Долл. сша
} Долл. сша
} Долл. сша
/*
Ch = 0, lasciare che il DS18B20 avviare il конвертация; ch = 1, MCU, внимательно ла для измерения attuale dal DS18B20.
*/
Galleggiante tempprocess (bool ch)
{
/Я ritorni ла для измерения da un DS18B20 в градусов по цельсию
Statica di dati байт [12];
Statica byte addr [8];
Statica galleggiante temperaturesum;
Если (! Ch) {
Если (! Ds. search (addr) {
Серийный. println ("не больше sensori сулла катена, сбросить di ricerca!»);
Ds. reset_search ();
Di ritorno 0;
} Долл. сша
Se (onewire: crc8 (адрес, 7)! = адрес [7]) {
Serial. println ("CRC non we valido!");
Di ritorno 0;
} Долл. сша
Se (адрес [0]! = 0x10 & addr [0]! = 0x28) {
Серийный. Принт ("многофункциональное и что не riconosciuto!»);
Di ritorno 0;
} Долл. сша
Ds. reset ();
Ds. выберите (адрес);
Ds. Записи (0x44,1)/inizio преобразование, con potenza parassita su алла тонкой
} Долл. сша
Altro {
Regalo байт = ds. Reset ();
Ds. выберите (адрес);
Ds. Записи (0xBE)/внимательно Appunti
За (в том числе i = 0; i <9; i + +) {/abbiamo бизоньо di 9 байт
Dati [i] = ds. Прочитал ();
} Долл. сша
Ds. reset_search ();
MSB = dati байт [1];
LSB = dati байт [0];
Galleggiante tempread = (MSB <8) LSB)/с двумя delle complimentarmi con
TemperatureSum = tempRead/16;
} Долл. сша
Di ritorno temperaturesum;
} Долл. сша

# Включают в себя <onewire. h> # определить startconvert 0 # определить читать Температура 1 конст байт num Чтение = 20;/номер образца timesbyte ecsensorpin = A1;/ec-метр с аналоговым выходом, штифта аналоговые 1 байт DS18B20_Pin = 2;/DS18B20 сигнала, закрепить цифровой 2 unsigned int analogsampleinterval = 25, printinterval = 700, tempsampleinterval = 850/аналоговый образец интервал; последовательный принт интервал; температура образец intervalunsigned int Чтение [num Чтение]; /Показания аналоговые inputbyte индекс = 0;/индекс текущего readingunsigned длинные analogvaluetotal = 0;/Бег totalunsigned int analogaverage = 0, averagevoltage = 0; /averageunsigned длинные analogsampletime, printtime, tempsampletime; поплавок Температура, eccurrent;/Температура чип i/oonewire ds (DS18B20_Pin);/цифровой pin-код 2 вакуум установка () {/инициализация с последовательным с компьютером: Серийный номер. начать (115200)/инициализации все Чтение до 0: (байт thisreading = 0; thisreading <num Чтение; thisreading + +) Чтение [thisreading] = 0; tempprocess (startconvert); /пусть DS18B20 начать преобразования analogsampletime = millis (); printtime = millis (); tempsampletime = millis ();} силы петли () {/* каждый раз в то время, образец аналоговое значение и рассчитать среднее значение. */if (millis ()-AnalogSampleTime> = AnalogSampleInterval) {Analogsampletime = millis ();/вычесть последнего чтения: analogvaluetotal = analogvaluetotal-показания [index];/чтения от датчика: показания [index] = analogread (ecsensorpin); /добавляем к прочтению общая сумма: analogvaluetotal = analogvaluetotal + показания [index];/перейти к следующему позиции в массив: индекс = индекс +-1 шт.; /Если мы в конце массива... Если (индекс; при заказе на сумму> = numreadings)/. .. Обернуть вокруг до начала: индекс = 0;/рассчитать среднее значение: analogaverage = analogvaluetotal/numreadings;} долл. сша/* каждый раз в то время, MCU узнать температуру от DS18B20, а затем пусть DS18B20 начать преобразования. Внимание: интервал между начать преобразовывать и ознакомьтесь с Температура должно быть больше, чем 750 миллисекунды или Температура не является точным! * если (millis ()-tempsampletime; при заказе на сумму> = tempsampleinterval) {tempsampletime = millis (); Температура = tempprocess (прочитайте Температура); /считывать текущее значение Температура из DS18B20 tempprocess (startconvert)/после прочтения, начните преобразование для следующего чтения} долл. сша /* Каждый раз в то время, принт информацию о серийный монитор. * если (millis ()-printtime; при заказе на сумму> = printinterval) {printtime = millis (); средняя Напряжение = analogaverage * (поплавок) 5000/1024; серийный. с принтом ("аналогового значения:»); серийный. с принтом (analogaverage)/аналоговый в среднем от 0 до 1023 серийный. печать ("напряжение:"); серийный. с принтом (в среднем Напряжение)/милливольт (в среднем от 0mv до 4995mV серийный. с принтом ("мв»); серийный. с принтом ("температура:»); серийный. с принтом (температура);/текущей температуры серийный. с принтом («^ C EC:»); поплавок температурный коэффициент = 1,0 + 0,0185 * (температура-25,0); /Температурной компенсацией формула: ffinalresult (25 ^ C) = ffinalresult (ток)/(1,0 + 0,0185 * (fTP-25.0); поплавок coefficientvolatge = (поплавок) средняя Напряжение/температурный коэффициент; если (CoefficientVolatge <150) Серийный. println («Нет решения! ");/25 ^ C 1413us/см <--> о 216mv в том случае, если Напряжение (компенсации) <150, то есть <1 ms/cm, вне диапазона еще в том случае, если (coefficientvolatge> 3300) серийный. println ("вне диапазона! ");/> 20 ms/cm, вне диапазона больше {if (coefficientvolatge <= 448) eccurrent = 6,84 * CoefficientVolatge-64.32; /1 ms/cm <EC <= 3 ms/cm еще в том случае, если (coefficientvolatge <= 1457) eccurrent = 6,98 * CoefficientVolatge-127; /3 ms/cm <EC <= 10 ms/cm еще eccurrent = 5,3 * coefficientvolatge + 2278;/10 ms/cm <EC <20 ms/cm eccurrent/= 1000; /Таблица преобразования/см до MS/см серийный. печать (eccurent, 2);/два десятичных сериала. println ("также доступна доставка службами ems см»);} долл. сша/* ch = 0, пусть DS18B20 начать преобразования; ch = 1, MCU, считайте текущий Температура из DS18B20. */поплавок tempprocess (bool ch) {/возвращает Температура от одного DS18B20 в градусах цельсия статического байт данных [12]; статический байт адрес [8]; статический поплавок Температура сумму; если (! ch) {if (! Ds. поиск (адрес) {серийный. println («no more датчики на цепочке, сбросить поиск! "); ds. reset_search (); возврата 0;} долл. сша в том случае, если (onewire: crc8 (адрес, 7)! = адрес [7]) {серийный. println ("CRC не действует! "); возврата 0;} долл. сша в том случае, если (адрес [0]! = 0x10 & addr [0]! = 0x28) {серийный. с принтом ("устройство не опознано! "); возврата 0;} ds. reset (); ds. выберите (адрес); ds. запись (0x44,1)/начать преобразования, с паразитов кнопка включения в конце} больше {байт настоящее = ds. reset (); ds. выберите (адрес); ds. запись (0xBE)/чтения блокнот для (в том числе i = 0; i <9; i + +) {/Нам нужно 9 байт данных [i] = ds. прочитал ();} ds. reset_search (); байт MSB = данные [1]; байт LSB = данные [0]; поплавок tempread = (MSB <8) | LSB); /с помощью двух-комплимент temperaturesum = tempread/16;} возврата temperaturesum;} # включают в себя <onewire. h> # определить startconvert 0 # определить readtemperature 1 конст байт numreadings = 20; /Кол-во образец timesbyte ecsensorpin = A1;/ec-метр с аналоговым выходом, штифт на аналоговые 1 байт DS18B20_Pin = 2;/DS18B20 сигнала, закрепить цифровой 2 unsigned int analogsampleinterval = 25 printinterval = 700, tempsampleinterval = 850/аналоговый образец интервал; последовательный принт интервал; температуры образца intervalunsigned int Чтение [num Чтение];/Чтение из аналоговые inputbyte индекс = 0; /Индекс текущего readingunsigned длинные analogvaluetotal = 0;/Бег totalunsigned int analogaverage = 0, averagevoltage = 0;/averageunsigned длинные analogsampletime, printtime, tempsampletime; поплавок Температура, eccurrent; /Температура чип i/oonewire ds (DS18B20_Pin);/цифровой pin-код 2 вакуум установка () {/инициализация с последовательным с компьютером: серийный. начать (115200)/инициализируете все показания до 0: для (Байт thisreading = 0; thisreading <num Чтение; thisreading + +) Чтение [thisreading] = 0; tempprocess (startconvert)/пусть DS18B20 начать преобразования analogsampletime = millis (); printtime = millis (); tempsampletime = millis ();} силы петли () {/* каждый раз в то время, образец аналоговое значение и рассчитать среднее значение. * если (millis ()-analogsampletime; при заказе на сумму> = analogsampleinterval) {analogsampletime = millis ();/вычесть последнего чтения: Analogvaluetotal = analogvaluetotal-показания [index];/чтения от датчика: показания [index] = analogread (ecsensorpin);/добавляем к прочтению общая сумма: analogvaluetotal = analogvaluetotal + показания [index];/перейти к следующему позиции в массив: индекс = индекс + 1;/в том случае, если мы находимся в конце массива... Если (индекс; при заказе на сумму> = numreadings)/. .. Обернуть вокруг до начала: индекс = 0;/рассчитать среднее значение: analogaverage = analogvaluetotal/numreadings;} долл. сша/* каждый раз в то время, MCU узнать температуру от DS18B20, а затем пусть DS18B20 начать преобразования. Внимание: интервал между начать преобразовывать и ознакомьтесь с Температура должно быть больше, чем 750 миллисекунды или Температура не является точным! * если (millis ()-tempsampletime; при заказе на сумму> = tempsampleinterval) {tempsampletime = millis (); Температура = tempprocess (прочитайте Температура); /считывать текущее значение Температура из DS18B20 tempprocess (startconvert)/после прочтения, начните преобразование для следующего чтения} долл. сша /* Каждый раз в то время, принт информацию о серийный монитор. * если (millis ()-printtime; при заказе на сумму> = printinterval) {printtime = millis (); средняя Напряжение = analogaverage * (поплавок) 5000/1024; серийный. с принтом ("аналогового значения:»); серийный. с принтом (analogaverage)/аналоговый в среднем от 0 до 1023 серийный. с принтом ("Напряжение:»); серийный. с принтом (в среднем Напряжение)/милливольт (в среднем от 0mv до 4995mV серийный. с принтом ("мв»); серийный. с принтом ("температура:»); серийный. с принтом (температура);/текущей температуры серийный. с принтом («^ C EC:»); поплавок температурный коэффициент = 1,0 + 0,0185 * (температура-25,0); /Температурной компенсацией формула: ffinalresult (25 ^ C) = ffinalresult (ток)/(1,0 + 0,0185 * (fTP-25.0); поплавок coefficientvolatge = (поплавок) средняя Напряжение/температурный коэффициент; если (CoefficientVolatge <150) Серийный. println («Нет решения! ");/25 ^ C 1413us/см <--> о 216mv в том случае, если Напряжение (компенсации) <150, то есть <1 ms/cm, вне диапазона еще в том случае, если (coefficientvolatge> 3300) серийный. println ("вне диапазона! ");/> 20 ms/cm, вне диапазона больше {if (coefficientvolatge <= 448) eccurrent = 6,84 * CoefficientVolatge-64.32; /1 ms/cm <EC <= 3 ms/cm еще в том случае, если (coefficientvolatge <= 1457) eccurrent = 6,98 * CoefficientVolatge-127; /3 ms/cm <EC <= 10 ms/cm еще eccurrent = 5,3 * coefficientvolatge + 2278;/10 ms/cm <EC <20 ms/cm eccurrent/= 1000; /Таблица преобразования/см до MS/см серийный. с принтом (eccurrent, 2)/двух отверстий, десятичная система серийный. println ("также доступна доставка службами ems см»);} долл. сша/* ch = 0, пусть DS18B20 начать преобразования; ch = 1, MCU, считайте текущий Температура из DS18B20. */поплавок tempprocess (bool ch) {/возвращает Температура от одного DS18B20 в градусах цельсия статического байт данных [12]; статический байт адрес [8]; статический поплавок Температура сумму; если (! ch) {if (! Ds. поиск (адрес) {серийный. println («no more датчики на цепочке, сбросить поиск! "); ds. reset_search (); возврата 0;} долл. сша в том случае, если (onewire: crc8 (адрес, 7)! = адрес [7]) {серийный. println ("CRC не действует! "); возврата 0;} долл. сша в том случае, если (адрес [0]! = 0x10 & addr [0]! = 0x28) {серийный. с принтом ("устройство не опознано! "); возврата 0;} ds. reset (); ds. выберите (адрес); ds. запись (0x44,1)/начать преобразования, с паразитов кнопка включения в конце} больше {байт настоящее = ds. reset (); ds. выберите (адрес); ds. запись (0xBE)/чтения блокнот для (в том числе i = 0; i <9; i + +) {/Нам нужно 9 байт данных [i] = ds. прочитал ();} ds. reset_search (); байт MSB = данные [1]; байт LSB = данные [0]; поплавок tempread = (MSB <8) | LSB); /с помощью двух-комплимент temperaturesum = tempread/16;} возврата temperaturesum;} долл. сша

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

Применение
+
Индивидуальное изготовление
Да
Тип
Датчик влажности
Основы
+
Выход
+
Номер модели
+
Материал
Смесь