Как правильно записать в скетче такую ситуацию допустим у нас есть переменная которой мы регулируем порог срабатывания чего либо Код (Text): long DISTsetup =0; // переменая для уровня порога distVal = analogRead(DIST_PIN); // читаем аналоговый вход и записываем в переменную distVal if ((mode == ACTIVEdist) && (distVal > DISTsetup)) { // Здесь условие если режим ACTIVEdist и переменная больше порога, // то выполняем действие //Мне нужно чтоб у пременой DISTsetup был заданный разброс порога +- 15 //И условие выполнялось так: // если режим ACTIVEdist и переменная больше или меньше порога, // то выполняем действие // Если установил переменную DISTsetup равную 250 то порог срабатывания станет от 235 до 265
Код (Text): if ((mode == ACTIVEdist) && (distVal < (DISTsetup -15) || distVal > (DISTsetup +15))){} т.е. переменная не в диапазоне, я так понял из вашего условия. Если нужна переменная в диапазоне, тогда Код (Text): if ((mode == ACTIVEdist) && (distVal > (DISTsetup -15)) && (distVal < (DISTsetup +15))){}
В сущности ответ уже дан. Только чтобы сделать читаемость кода лучше и потом самому не сломать себе голову пытаясь понять длинный набор логических операций, лучше сделать что-то в таком духе. При большом наборе булевых операций подобный подход часто рекомендуется в литературе для улучшения читаемости кода и исправления ошибок. Код (Text): // Если должно сработать за пределами некоего диапазона: меньше 10 или больше 20 isOutOfRange = (value < MIN_VALUE) || (MAX_VALUE < value); isInMode = (mode == ACTIVEdist); if(isInMode && isOutOfRange){} // Если дожно сработать в пределах некоего диапазона: от 10 до 20 isInRange = (MIN_VALUE < value) && (value < MAX_VALUE); isInMode = (mode == ACTIVEdist); if(isInMode && isInRange){}