Помогите с кодом
- Войдите на сайт для отправки комментариев
Пнд, 30/10/2017 - 16:03
Помогите с решением данной проблемы

Суть такая есть два проигрывателя
пока первый проигрыватель работает его анализирует плата что все в порядке вск ок,
но когда первый проигрыватель вдруг сломался или еще что то с ним случилось, срабатывает резервный проигрыватель через релюху
вот часть кода
long vl,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10;
long hz=0;
long hzprev=0;
long tout=0;
void setup() {
pinMode(2, OUTPUT);//Светодиод
pinMode(3, INPUT);//Если есть напряжение или светодиод горит
pinMode(A0, INPUT);//Аудиовход
зшт
}
void loop() {
tout=millis()+600;
while (tout>millis() && digitalRead(A0) > 10 );
v1 = micros();
while (tout>millis() && analogRead(A0) < 1);
v2 = micros();
while (tout>millis() && analogRead(A0) > 0 );
v3 = micros();
while (tout>millis() && analogRead(A0) < 1 );
v4 = micros();
while (tout>millis() && analogRead(A0) > 0 );
v5 = micros();
while (tout>millis() && analogRead(A0) < 1 );
v6 = micros();
while (tout>millis() && analogRead(A0) > 0 );
v7 = micros();
while (tout>millis() && analogRead(A0) < 1 );
v8 = micros();
while (tout>millis() && analogRead(A0) > 0 );
v9 = micros();
while (tout>millis() && analogRead(A0) < 1 );
v10 = micros();
hzprev=1000000/(((v2-v1)+(v3-v2)+(v4-v3)+(v5-v4)+(v6-v5)+(v7-v6)+(v8-v7)+(v9-v8)+(v10-v9))/9);
if (tout>millis()&&sq((hz+hzprev)/2-hzprev)>1000){
hz=(hz+hzprev)/2;
}
hz=0;
}
//Перед тем, как зажечь нужный светодиод - тушим все
digitalWrite(2, LOW);
if (hz>20 && hz<100){
digitalWrite(2, HIGH);// если укладываемся в частоту hz>20 && hz<100, то светодиод начинает моргать
digitalWrite(3, HIGH);//если есть напряжение на светодиоде то включить реле
}
}
а проблема где?
не работает релюха, вернее работает но постоянно включается выключается, а должна быть задержка, если вдруг пропало питание только тогда включаться должна
У вас 3й пин задан как инпут а в коде ему диджиталврайт делаете и более того если верить вашей же схеме у вас на 3м пине ничего нет, реле на 4м.
Еще вы там в 36 строке что-то считаете а потом в 38 просто присваиваете 0 и это после условия уже. И вообще если смотреть по {} то ерунда получается либо "код" кусками скопипастен
давайте вы мне его поправите, естественно договоримся
У вас 3й пин задан как инпут а в коде ему диджиталврайт делаете и более того если верить вашей же схеме у вас на 3м пине ничего нет, реле на 4м.
схема это схема в коде беспорядок