// объявил аналоговые пины для потенциометров
const int pot_Pins[6] = {A0, A1, A2, A3, A4, A5};
// обозначил треьуемые значения для аутентификации
const int need_values[6] = {512, 768, 256, 1023, 384, 640};
// обозначил допустимый интервал значений - погрешность ползунка
const int range = 150; // 150 - выбрал для удобства
// Ф-ция, которая проверяет находится ли значения потенциометров в пределах погрешности
// вслучае вычесленных значений <0 - берет модуль значения
bool authentication() {
for (int i = 0; i < 6; i++) { // цикл для перебора всех 6-ти потенциометров
int pot_value = analogRead(pot_Pins[i]); //считывание значения сигнала i-го эл-та
if (abs(pot_value - need_values[i]) > range){ //проверка условия для погрешности i-го эл-та
return false;
}
}
return true;
}
void setup() {
Serial.begin(9600); //запуск диалоговой консоли
// назначил режим работы аналоговых пинов с помощью цикла
// в процессе тестирования убедился, что это - не обязательно
for (int i = 0; i < 6; i++) {
pinMode(pot_Pins[i], INPUT);
}
}
void loop() {
// выполнение самой ф-ции на аутентификацию с выводом результата
if (authentication()) {
Serial.println("Значения совпали! - Замок ОТКРЫТ!");
} else {
Serial.println("Значения неверные! - Замок ЗАКРЫТ!");
}
delay(1500); // задержка для удобства проверки выполнения ф-ции аутентификации
}