Прочитал статьи из рубрики "Умный дом" и решил сделать контроллер по защите от протечек воды, но немного упрощенный, без использования EEPROM и ModBus. И у меня вместо одного датчика протечки шесть. И я решил сделать индикацию сработки датчиков протечки одним светодиодом по количеству вспышек, соответствующее порядковому номеру датчика протечки, через паузу. Если сработали несколько датчиков, то количество вспышек соответствует наибольшему номеру датчика.
Но что-то я никак не могу сообразить как воплотить эту идею. Создал переменную (номер датчика), которая меняется в зависимости от сработавшего датчика. Так же создал регистр, в котором хранятся данные по сработке каждого датчика (протечка и обрыв). Но как это использовать для мигания светодиодом никак не пойму.
Как то писал код для индикации количества человек в комнате, но в программе из главы 6 он не работает.
Код: Выделить всё
void ledCount(byte count) { //функция светодиодной индикации кол-ва человек
if (count > 0 && i <= count + 1 && !flag4) {
if (millis() - previousMillis >= interval) {
previousMillis = millis();
if (ledCountState == LOW) {
ledCountState = HIGH;
i++;
} else {
ledCountState = LOW;
}
}
}
if (count > 0 && i == count + 1 && !flag4) {
ledCountState = LOW;
flag4 = 1;
i = 0;
}
if (millis() - ledDelay >= 1000 && flag4) {
ledDelay = millis();
flag4 = 0;
}
if(count <= 0){
ledCountState = LOW;
}
digitalWrite(ledCountPin, ledCountState);
}
Помогите пожалуйста разобраться.