Помогите с кодом

evgencom
Offline
Зарегистрирован: 30.10.2017

Помогите с решением данной проблемы 

Ардуино uno

Суть такая есть два проигрывателя

пока первый проигрыватель работает его анализирует плата что все в порядке вск ок,

но когда первый проигрыватель вдруг сломался или еще что то с ним случилось, срабатывает резервный проигрыватель через релюху

вот часть кода

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);//если есть напряжение на светодиоде то включить реле
 }
}

 

b707
Offline
Зарегистрирован: 26.05.2017

а проблема где?

evgencom
Offline
Зарегистрирован: 30.10.2017

не  работает релюха, вернее работает но постоянно включается выключается, а должна быть задержка, если вдруг пропало питание только тогда включаться должна

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

У вас 3й пин задан как инпут а в коде ему диджиталврайт делаете и более того если верить вашей же схеме у вас на 3м пине ничего нет, реле на 4м.

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Еще вы там в 36 строке что-то считаете а потом в 38 просто присваиваете 0 и это после условия уже. И вообще если смотреть по {} то ерунда получается либо "код" кусками скопипастен

evgencom
Offline
Зарегистрирован: 30.10.2017

давайте вы мне его поправите, естественно договоримся

evgencom
Offline
Зарегистрирован: 30.10.2017

Penni пишет:

У вас 3й пин задан как инпут а в коде ему диджиталврайт делаете и более того если верить вашей же схеме у вас на 3м пине ничего нет, реле на 4м.

схема это схема в коде беспорядок