зачем там столько скобок 
а можно без скобок? я просто думал что это || только попарно работает

вот текущая программа, все работает вроде

#include <Servo.h> // библиотека управления сервоприводами
// имена для сервоприводов
Servo servoX;
Servo servoY;
Servo servoZ;
// булевые триггеры пинов
boolean pin7 = false;
boolean pin4 = false;
boolean pin8 = false;
boolean pin9 = false;
boolean pin10 = false;
boolean pin11 = false;
// засечки времени
unsigned long time_s = millis();
unsigned long time_z = millis();
unsigned long time_f = millis();
// триггер активности запальных пинов
boolean fire_on = false;
int zapal = 0; // счетчик запальных пинов
// отслеживают положения сервоприводов
int x = servoX.read();
int y = servoY.read();
int z = servoZ.read();
// кучка пустых переменных - пришлось добавить из-за бага с компиляцией на винХП - помогло
int aa;
int ab;
int ac;
int ad;
int ae;
int af;
int ag;
int ah;
void setup() {
//назначения пинов
pinMode(7, OUTPUT);
pinMode(4, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
// назначение сервоприводов и исходных положений
servoX.attach(5);
servoX.write(75);
servoY.attach(6);
servoY.write(75);
servoZ.attach(3);
servoZ.write(5);
// запуск блютуса
Serial1.begin(9600);
while (!Serial1) {;}
}
void loop() {
// засекают текущие положения приводов
x = servoX.read();
y = servoY.read();
z = servoZ.read();
// засекают текущие состояния пинов
pin7 = digitalRead(7);
pin4 = digitalRead(4);
pin8 = digitalRead(

;
pin9 = digitalRead(9);
pin10 = digitalRead(10);
pin11 = digitalRead(11);
// 1 если хоть один из запальных пинов активен
fire_on = ((pin8 || pin9) || (pin10 || pin11));
// таймер автоотключения пина готовности пуска
if (millis() - time_s > 3000 && pin4) {
digitalWrite (4, LOW); }
// таймер автовозвращения привода Z
if (millis() - time_z > 1000 && z > 45) {
servoZ.write(5); }
// таймер автоотключения всех запальных пинов
if (millis() - time_f > 1000 && fire_on) {
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW); }
// пока поступают сигналы через блютус
while (Serial1.available() > 0) {
char cmd = Serial1.read(); // считывает команду
// циклически вкл-выкл лазерный пин
if (cmd == 'A') {
digitalWrite (7, !pin7);}
// вкл. пин готовности пуска и засечка времени
else if (cmd == 'S') {
digitalWrite (4, HIGH);
time_s = millis(); }
// кручение сервопривода Х
else if (cmd == 'L') {
if (x < 160) { servoX.write(x + 1); }
else { servoY.write(y - 1); } }
else if (cmd == 'R') {
if (x > 0) { servoX.write(x - 1); }
else { servoY.write(y + 1); } }
// кручение сервопривода Y
else if (cmd == 'U') {
if (y < 150) { servoY.write(y + 1); }
else { servoY.write(y - 1); } }
else if (cmd == 'D') {
if (y > 20) { servoY.write(y - 1); }
else { servoY.write(y + 1); } }
// запуск сервопривода Z
else if (cmd == 'Z') {
servoZ.write(90);
time_z = millis(); }
// запускает текущтй запальный пин, переводит счетчик на следующий и засекает время
else if (cmd == 'F' && !fire_on && pin4) {
digitalWrite((8 + zapal), HIGH);
zapal = ((zapal + 1) % 4);
time_f = millis(); }
}
delay(10);
}
... и добавил:хочу еще сделать регулировку скорости приводов, чтобы можно было менять режим между +-1 градус и +-5 например типа точный/резкий
... и добавил:и после этого еще останется одна свободная кнопка
