// #include <Wire.h> // Подключаем библиотеку для работы с аппаратной шиной I2C, до подключения библиотеки iarduino_OLED.
// #include <iarduino_OLED.h> // Подключаем библиотеку iarduino_OLED.
// iarduino_OLED myOLED(0x3C); // Создаём объект myOLED, указывая адрес дисплея на шине I2C: 0x3C или 0x3D.
// extern const uint8_t SmallFontRus[]; // Подключаем шрифт SmallFontRus.
#define PIN_LED1 26 //реле открытия клапанов цифровой пин
#define PIN_LED2 27 //реле открытия клапанов цифровой пин
#define PIN_LED3 14 //реле открытия клапанов цифровой пин
#define PIN_LED4 12 //реле открытия клапанов цифровой пин
#define PIN_LED5 13 //реле открытия клапанов цифровой пин
#define PIN_LED6 23 //реле открытия клапанов цифровой пин
#define PIN_LED7 19 //реле открытия клапанов цифровой пин
#define PIN_LED8 18 // реле аварии цифровой пин
#define PIN_PHOTO_SENSOR1 A0 //фоторезистор аналоговый пин в диапазоне от 0 до 4095
#define PIN_PHOTO_SENSOR2 A3 //фоторезистор аналоговый пин в диапазоне от 0 до 4095
#define PIN_PHOTO_SENSOR3 A6 //фоторезистор аналоговый пин в диапазоне от 0 до 4095
#define PIN_PHOTO_SENSOR4 A7 //фоторезистор аналоговый пин в диапазоне от 0 до 4095
#define PIN_PHOTO_SENSOR5 32 //фоторезистор аналоговый пин в диапазоне от 0 до 4095
#define PIN_PHOTO_SENSOR6 A5 //фоторезистор аналоговый пин в диапазоне от 0 до 4095
#define PIN_PHOTO_SENSOR7 25 //фоторезистор аналоговый пин в диапазоне от 0 до 4095
//#define digitalWrite(PIN_LED8, LOW);
int sec1=0;
int sec2=0;
int sec3=0;
int sec4=0;
int sec5=0;
int sec6=0;
int sec7=0;
void setup(){
// // int value = 0;
// //
// myOLED.begin(&Wire); // Инициируем работу с дисплеем, указав ссылку на объект для работы с шиной I2C на которой находится дисплей (по умолчанию &Wire).
// myOLED.setFont(SmallFontRus); // Указываем шрифт который требуется использовать для вывода цифр и текста.
// Serial.begin(9600);
pinMode(PIN_LED1, OUTPUT); // пин работает на включение или выключение
pinMode(PIN_LED2, OUTPUT); // пин работает на включение или выключение
pinMode(PIN_LED3, OUTPUT); // пин работает на включение или выключение
pinMode(PIN_LED4, OUTPUT); // пин работает на включение или выключение
pinMode(PIN_LED5, OUTPUT); // пин работает на включение или выключение
pinMode(PIN_LED6, OUTPUT); // пин работает на включение или выключение
pinMode(PIN_LED7, OUTPUT); // пин работает на включение или выключение
pinMode(PIN_LED8, OUTPUT); // пин работает на включение или выключение аварии
// // digitalWrite(PIN_LED8, LOW);
}
// uint32_t btnTimer = 0; //
void loop(){
uint32_t sec = millis() / 1000ul;
int val1 = analogRead(PIN_PHOTO_SENSOR1);
int val2 = analogRead(PIN_PHOTO_SENSOR2);
int val3 = analogRead(PIN_PHOTO_SENSOR3);
int val4 = analogRead(PIN_PHOTO_SENSOR4);
int val5 = analogRead(PIN_PHOTO_SENSOR5);
int val6 = analogRead(PIN_PHOTO_SENSOR6);
int val7 = analogRead(PIN_PHOTO_SENSOR7);
// Вывод текста в кодировке UTF-8: //
// myOLED.clrScr(); // Чистим экран.
// //myOLED.print("UTF8", 0, 7); // Выводим текст начиная с координаты 0x7 (нижняя левая точка текста).
// //myOLED.setCoding(TXT_UTF8); // Меняем кодировку на UTF-8 (по умолчанию).
// myOLED.setFont(MediumFont);
// //int value = analogRead(A0) ;
// //myOLED.print("Алексей", 7, 39); // Выводим текст по центру экрана, координата нижней части текста по оси Y равна 39.
// myOLED.print(analogRead(A0),20,16);//в диапазоне от 0 до 4095
// myOLED.print(analogRead(A3),20,32);//в диапазоне от 0 до 4095
// myOLED.print(analogRead(A6),20,48);//в диапазоне от 0 до 4095
// myOLED.print(analogRead(A7),20,64);//в диапазоне от 0 до 4095
// myOLED.print(analogRead(32),80,16);//в диапазоне от 0 до 4095
// myOLED.print(analogRead(A5),80,32);//в диапазоне от 0 до 4095
// myOLED.print(analogRead(25),80,48);//в диапазоне от 0 до 4095
// myOLED.print(sec,80,64);//в диапазоне от 0 до 4095
// delay (50); // Ждём 5 секунд.
//////
if (val1 < 1000 && (sec - sec1) < 5) {
digitalWrite(PIN_LED8, LOW);
digitalWrite(PIN_LED1, HIGH);///////////// клапан в работе
} else {
digitalWrite(PIN_LED1, LOW);
}
if (val1 > 1000) {
sec1 = sec;
}
if (val1 < 1000 && (sec - sec1) > 5) {
digitalWrite(PIN_LED8, HIGH); ////авария
}
////
if (val2 < 1000 && (sec - sec2) < 5) {
digitalWrite(PIN_LED8, LOW);
digitalWrite(PIN_LED2, HIGH);///////////// клапан в работе
} else {
digitalWrite(PIN_LED2, LOW);
}
if (val2 > 1000) {
sec2 = sec;
}
if (val2 < 1000 && (sec - sec2) > 5) {
digitalWrite(PIN_LED8, HIGH); ////авария
}
///
if (val3 < 1000 && (sec - sec3) < 5) {
digitalWrite(PIN_LED8, LOW);
digitalWrite(PIN_LED3, HIGH);///////////// клапан в работе
} else {
digitalWrite(PIN_LED3, LOW);
}
if (val3 > 1000) {
sec3 = sec;
}
if (val3 < 1000 && (sec - sec3) > 5) {
digitalWrite(PIN_LED8, HIGH); ////авария
}
/////
if (val4 < 1000 && (sec - sec4) < 5) {
digitalWrite(PIN_LED8, LOW);
digitalWrite(PIN_LED4, HIGH);///////////// клапан в работе
} else {
digitalWrite(PIN_LED4, LOW);
}
if (val4 > 1000) {
sec4 = sec;
}
if (val4 < 1000 && (sec - sec4) > 5) {
digitalWrite(PIN_LED8, HIGH); ////авария
}
/////
if (val5 < 1000 && (sec - sec5) < 5) {
digitalWrite(PIN_LED8, LOW);
digitalWrite(PIN_LED5, HIGH);///////////// клапан в работе
} else {
digitalWrite(PIN_LED5, LOW);
}
if (val5 > 1000) {
sec5 = sec;
}
if (val5 < 1000 && (sec - sec5) > 5) {
digitalWrite(PIN_LED8, HIGH); ////авария
}
/////
if (val6 < 1000 && (sec - sec6) < 5) {
digitalWrite(PIN_LED8, LOW);
digitalWrite(PIN_LED6, HIGH);///////////// клапан в работе
} else {
digitalWrite(PIN_LED6, LOW);
}
if (val6 > 1000) {
sec6 = sec;
}
if (val6 < 1000 && (sec - sec6) > 6) {
digitalWrite(PIN_LED8, HIGH); ////авария
}
/////
if (val7 < 1000 && (sec - sec7) < 5) {
digitalWrite(PIN_LED8, LOW);
digitalWrite(PIN_LED7, HIGH);///////////// клапан в работе
} else {
digitalWrite(PIN_LED7, LOW);
}
if (val7 > 1000) {
sec7 = sec;
}
if (val7 < 1000 && (sec - sec7) > 5) {
digitalWrite(PIN_LED8, HIGH); ////авария
}
/////
}