Подскажите с логикой

Ramzay
Offline
Зарегистрирован: 16.05.2013

Существует барабан разбитый на сектора(типо поля чудес). В центре вращается стрелка вокруг своей оси.

При прохождении каждого сектора срабатывает датчик.

Нужно после полного оборота стрелки отправлять команду на сервер.

Как это сделать?

Возьмем пример на 3х секторах.

int A1 = 3;
int A2 = 4;
int A3 = 5;     // датчики

void setup {
 pinMode(A1, INPUT);
 pinMode(A2, INPUT);
 pinMode(A3, INPUT);
}
void loop {
SA1 = digitalRead(A1); // подем питание если датчик замкнут
SA2 = digitalRead(A2);
SA3 = digitalRead(A3);

if (SA1,SA2,SA3 == HIGH && delay(500) && SA1,SA2,SA3 == LOW) {     
//считываем и выполняем условие если состояние датчиков изменилось за пол секундыclient.println("")  и далее отправляем команду

}

Подскажите чтобы была логика считывания всех секторов или просто чтобы был статус "вращения" барабана/стрелки только правильным образом.

Araris
Онлайн
Зарегистрирован: 09.11.2012

Ramzay пишет:

Нужно после полного оборота стрелки отправлять команду на сервер.

Имеется в виду после окончания вращения стрелки ?

Строка if (SA1,SA2,SA3 == HIGH && delay(500) && SA1,SA2,SA3 == LOW) - это нечто, точнее - НЕЧТО.