int led = 13; // назначаем ножки и переменные int pin1 = 1; int pin2 = 2; int pin3 = 3; int pin4 = 4; int val1 = 0; int val2 = 0; int val3 = 0; int val4 = 0; #include OneWire ds(10); // Создаем объект OneWire для шины 1-Wire #include #define ONE_WIRE_BUS 10 // номер пина к которому подключены DS18B20 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors1(&oneWire); #include OLED myOLED(4, 5, 4); // 4pin - SDA , 5pin - SCL extern uint8_t RusFont[]; // Русский шрифт extern uint8_t MegaNumbers[]; // Подключение больших шрифтов extern uint8_t MediumNumbers[]; extern uint8_t SmallFont[]; // Базовый шрифт без поддержки русскийх символов. void setup() { sensors1.begin(); myOLED.begin(); Serial.begin(9600); pinMode(led, OUTPUT); // назначаем ножки и переменные на вход и выход pinMode(pin1, INPUT); pinMode(pin2, INPUT); pinMode(pin3, INPUT); pinMode(pin4, INPUT); } void loop() { sensors1.requestTemperatures(); val4 = analogRead(pin4); // считываем уровень с пина 4. if (val4>0){goto label2;} // если уровень высокий, то нагрузка отключена и улетаем в конец скетча на метку 2 val1 = analogRead(pin1); // считываем уровень с пина 1. if (val1>0) { myOLED.setFont(RusFont); // Устанавливаем русский шрифт myOLED.print("HT:BV YFUHTDF", CENTER, 57); myOLED.setFont(SmallFont); myOLED.setFont(MediumNumbers); myOLED.update(); } val2 = analogRead(pin2); // считываем уровень с пина 2. if (val2>0) { myOLED.setFont(RusFont); // Устанавливаем русский шрифт myOLED.print("HT:BV J{KF:LTYBZ", CENTER, 57); myOLED.setFont(SmallFont); myOLED.setFont(MediumNumbers); myOLED.update(); } if (sensors1.getTempCByIndex(0)> sensors1.getTempCByIndex(1)) {digitalWrite(led, val1); goto label1; } // для режима нагрева, когда снаружи теплее, включается вентилятор if (sensors1.getTempCByIndex(0)< sensors1.getTempCByIndex(1)) {digitalWrite(led, val2); goto label3; } // для режима охлаждения, когда снаружи теплее, включается вентилятор delay(1000); // ждем. goto label; // перелетаем весь массив с гоуту в конец. label1: myOLED.clrScr(); // очищаем экран myOLED.setFont(RusFont); // Устанавливаем русский шрифт myOLED.print("FDNJVFNBXTCRBQ", CENTER, 0); // Выводим надпись "Автоматический" myOLED.print("Ntvgthfnehf", CENTER, 7); // Выводим надпись "Температура" myOLED.print("Cyfhe;b Dyenhb", CENTER, 39); myOLED.print("YF EKBWT NTGKTT", CENTER, 47); myOLED.setFont(SmallFont); myOLED.setFont(MediumNumbers); myOLED.print(String(sensors1.getTempCByIndex(0) , 1), LEFT, 20); // Отображение температуры myOLED.print(String(sensors1.getTempCByIndex(1) , 1), RIGHT, 20); // Отображение температуры myOLED.update(); delay(100); goto label; // перелетаем весь массив с гоуту в конец. label2: myOLED.clrScr(); // очищаем экран myOLED.setFont(RusFont); // Устанавливаем русский шрифт myOLED.print("RKBVFN 20-22", CENTER, 0); // Выводим надпись "20-22" myOLED.print("Ntvgthfnehf", CENTER, 7); // Выводим надпись "Температура" myOLED.print("Cyfhe;b Dyenhb", CENTER, 39); myOLED.setFont(SmallFont); myOLED.setFont(MediumNumbers); myOLED.print(String(sensors1.getTempCByIndex(0) , 1), LEFT, 20); // Отображение температуры myOLED.print(String(sensors1.getTempCByIndex(1) , 1), RIGHT, 20); // Отображение температуры myOLED.update(); delay(100); if (20>(sensors1.getTempCByIndex(1)) & (sensors1.getTempCByIndex(0)<= sensors1.getTempCByIndex(1))) {digitalWrite(led, LOW); } // когда (датчик 0 улица) if (20>(sensors1.getTempCByIndex(1)) & (sensors1.getTempCByIndex(0)> sensors1.getTempCByIndex(1))) {digitalWrite(led, HIGH); } // когда (датчик 0 улица) if ((sensors1.getTempCByIndex(1)>22) & (sensors1.getTempCByIndex(0)<= sensors1.getTempCByIndex(1))) {digitalWrite(led, HIGH); } // когда (датчик 0 улица) if ((sensors1.getTempCByIndex(1)>22) & (sensors1.getTempCByIndex(0)> sensors1.getTempCByIndex(1))) {digitalWrite(led, LOW); } // когда (датчик 0 улица) goto label; // перелетаем весь массив с гоуту в конец. label3: myOLED.clrScr(); // очищаем экран myOLED.setFont(RusFont); // Устанавливаем русский шрифт myOLED.print("FDNJVFNBXTCRBQ", CENTER, 0); // Выводим надпись "Автоматический" myOLED.print("Ntvgthfnehf", CENTER, 7); // Выводим надпись "Температура" myOLED.print("Cyfhe;b Dyenhb", CENTER, 39); myOLED.print("YF EKBWT {JKJLYTT", CENTER, 47); myOLED.setFont(SmallFont); myOLED.setFont(MediumNumbers); myOLED.print(String(sensors1.getTempCByIndex(0) , 1), LEFT, 20); // Отображение температуры myOLED.print(String(sensors1.getTempCByIndex(1) , 1), RIGHT, 20); // Отображение температуры myOLED.update(); delay(100); label: ; val3 = 0; val4 = 0; }