Цитата:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Пины дисплея
int analogPin1 = A1; // Пин для датчика КСВ (A1)
int analogPin2 = A2; // Пин для датчика КСВ (A2)
int val1 = 0; // Переменная для хранения значения датчика 1
int val2 = 0; // Переменная для хранения значения датчика 2
float swr = 0; // Переменная для хранения значения КСВ
void setup()
{
lcd.begin(16, 2); // Инициализация дисплея
analogReference(INTERNAL); // Внутренняя опорная напряжение (1.1V)
}
void loop()
{
val1 = analogRead(analogPin1); // Считывание значения с датчика 1
val2 = analogRead(analogPin2); // Считывание значения с датчика 2
// Вычисление значения КСВ
if (val1 > val2) {
swr = (float)val1 / val2;
} else {
swr = (float)val2 / val1;
}
// Вывод результата на дисплей
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SWR: ");
lcd.print(swr, 2);
}
Примечания:
В этом коде используется внутренняя опорная напряжение АЦП (1.1V), поэтому значением 0 на датчике будет соответствовать 1.1V.
Датчики используются симметрично, т.е. подключаются в обоих направлениях, чтобы измерения были более точными.