Программный код замеров EC - пример функции
Перейти к навигации
Перейти к поиску
//////////////////////////////////////////////
// 2023.05.31 woronin, umkiedu@gmail.com
// Тарирование ЕС датчика. Датчик температуры аналоговый
// Robot UMKI controller K6_3
// Датчик ЕС1 и ЕС2 - в виде вилки, сравниваем два щупа
//////////////////////////////////////////////
const int analogRAW1 = A0; // Аналоговый порт измерения EC
// Измеритель ЕС
// Схема подключения
// DP1----A0-----> Инвертированные значения от 1023
// DP2-----------> Прямые значения от 0
int DP1 = 8; // Цифровой порт соединенный с аналоговым портом и электродом измерения
int DP2 = 9; // Цифровой порт соединенный с электродом противофазы
long num_measure = 50000; // Количество измерений для усреднения
//Функция замера электропроводности в RAW
float cond_sol(int d1, int d2, int a0, long measure) {
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
long var = 1;
unsigned long ap = 0;
unsigned long an = 0;
while (var < measure) {
digitalWrite(d2, HIGH);
ap = 0 + analogRead(a0) + ap;
digitalWrite(d2, LOW);
digitalWrite(d1, HIGH);
an = 1023 - analogRead(a0) + an;
digitalWrite(d1, LOW);
var++;
}
pinMode(d1, INPUT);
pinMode(d2, INPUT);
// Усреднение АЦП при положительной ap и отрицательной an фазе
return (((float)ap + (float)an) / var / 2);
}
void setup() {
// сюда надо вставить код инициализации нужных устройств
}
void loop() {
// сюда надо вставить код примерно такой
float ec_raw1 = cond_sol(DP1, DP2, analogRAW1, num_measure);
Serial.println(ec_raw1, 3);
}