Можно ли в функции if использовать данные с двух датчиков. К примеру if ( val == HIGH, val1 >100 ) { digitalWrite(ledPin, HIGH); }
1) достаточно, чтобы выполнялось условие val!=0, не обязательно использовать полное выражение. 2) даже если приоритет операторов позволяет опустить скобки, лучше ставить их для визуальной группировки условий.
А мой вариант не рабочий? И если не правельный то как написать if ( val == LOW, val1 >100 ) { digitalWrite(ledPin, HIGH); }
Это забавно, но данный вариант абсолютно корректен с точки зрения синтаксиса языка C++, но работать будет несколько иначе, чем правильно написанное логическое выражение. Значение, возвращаемое конструкцией выражение1, выражение2 равно значению последнего выражения из перечисленных через символ ','. В результате поведение оператора if в данном конкретном случае будет определяться только вторым условием т.е. val1 >100. Скорее всего при оптимизации первое из условий (val == LOW) будет вообще убрано компилятором как ничего не изменяющая конструкция, результат которой нигде не используется.