Доброго времени суток! Есть такая задача: 3 емкости с поплавковыми выключателями, 3 соленоидных клапана и насос. При отправке команды на пополнение: 1. Открыть клапан на одну или несколько емкостей где поплавок разомкнут; 2. Включить насос; 3. Если емкость наполнилась до истечении времени - закрыть клапан и остановить насос. Сообразил вот такой код:
Работает, но не совсем. Получилось, что открывает только один клапан даже если разомкнуты два или все три поплавка. Подскажите как сделать что бы правильно работало?
C++:
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
int Pump = 19;
int SV[] = {16, 17,18};
int Sw[] = {34, 35, 36};
int state = 0;
void setup() {
Serial.begin(115200);
SerialBT.begin("Water_Fill");
Serial.println("The device started, now you can pair it with bluetooth!");
pinMode(Pump, OUTPUT);
for (byte i = 0; i < 3; i++) {
pinMode(SV[i], OUTPUT);
digitalWrite(SV[i], LOW);
pinMode(Sw[i], INPUT);
}
digitalWrite(Pump,LOW);
}
void loop() {
if(SerialBT.available() > 0){
state = SerialBT.read();
Serial.println(state);
for (byte i = 0; i < 3; i++){
if (digitalRead(Sw[i]) == HIGH){
if (state == 'a') {
digitalWrite(SV[i], HIGH);
digitalWrite(Pump,HIGH);
delay(10000);
digitalWrite(Pump, LOW);
digitalWrite(SV[i], LOW);
}
}
}
}
else {
state = 0;
}
}