int level=0; // переменная для уровня сигнала первичного int level2=0; // переменная для уровня сигнала вторичного int a = 0; int sumlevels[] = {0,0,0,0,0}; int sumlevels2[] = {0,0,0,0,0}; int suml = 0; void setup() { pinMode(1, OUTPUT); // прописываем к каким выводам будет подключена нагрузка, это 6 физ ножка pinMode(3, INPUT); // вход } void loop() { delay (50); // собираем массив при первом измерении: один раз - первично if (a < 1) { for (a = 0; a < 5; a = a + 1) { sumlevels[a] = analogRead(3); delay (10); } // находим среднее для массива при первом измерении level = (sumlevels[0]+sumlevels[1]+sumlevels[2]+sumlevels[3]+sumlevels[4])/5; } // собираем массив при втором измерении: постоянно - циклично int b; for (b = 0; b < 5; b = b + 1) { sumlevels2[b] = analogRead(3); delay (10); } // находим среднее для массива при втором измерении level2 = (sumlevels2[0]+sumlevels2[1]+sumlevels2[2]+sumlevels2[3]+sumlevels2[4])/5; // работаем с ср знач уровня двух измерений suml = level2 - level; if (suml > 55) //если есть высокий сигнал, то 1023/5 = 204 - 1 вольт, берем превышение порядка 0,25 вольта для активации... {delay (5000); digitalWrite(1,HIGH); } }