После отключения считает слева направо

Все мы являемся профессионалами в своих сферах деятельности и этому спора нет. Но и понимание должно быть правильным, меня спросили где код: я отправил, далее если есть вопросы какие, так их нужно задавать, чтоб я мог пояснить, а не оправдываться. Ведь я сюда обратился за помощью, а не бред про то чем мне заниматься, как жить, и кем быть.

Да согласен. Но мог же человек просто спросить в конце скобка или есть ещё дополнение.

Люди!!! А-У!!! Ткните пальцем в место где переменная а используется. Не инкрементится декрементится а используется?

В void (click1) и в последующих ещё трех

там же где инкрементится декрементится

Такой себе подход… Каждый раз, когда человек хочет изменить niz - у него меняется и verh.
Непонятное решение… Переменную что-ли, пожалел, чтобы на каждое значение свой итератор назначить.

Я знаю про это. Так и задумано. Так как тыкать кнопкой по 150 раз нет особого желания и поэтому и верх и низ одинаково показывает: так проще отсчитать 10-15 градусов в верх или вниз. У меня диапазон по верху от 145 до 190, а по низу от 120 до 140 градусов

Как причём? Это же классика! Забыли что ли знатока двадцати языков “на уровне выше университетского” в число которых Си не входит?

А Вы, сударь, однако хамло. Не пойти ли Вам на хутор бабочек ловить? Как думаете? Дело приятное и не особо трудное. Подумайте!

2 лайка

Я человек простой (может быть) - если задачка мне интересна , без ТС или с ТС , пробую её решить.

Нет . Я про дисплей.
С библиотекой ни разу дел не имел, но думаю так.
Если что - прошу поправить, кто знает

Спойлер
 if(temperatura >= verh) digitalWrite(NASOS,HIGH);
  if(temperatura <= niz) digitalWrite(NASOS,LOW);
    lcd.setCursor(0,0);
    lcd.print("T:");
	 lcd.print("    ");
	 lcd.setCursor(3,0);
    lcd.print(temperatura);
    
    lcd.setCursor(0,1);
    lcd.print("Tv:");
    lcd.print("   ");
    lcd.setCursor(3, 1);
    lcd.print(verh);

    lcd.setCursor(9,1);
    lcd.print("Tn:");
	 lcd.print("   ");
	 lcd.setCursor(12, 1);
    lcd.print(niz);

Возможно, это не единственный косяк в коде

lcd.setCursor (сюда вписывается позиционирование) то есть номер строки и номер символа.

Да. Я так и написал, только номер символа, и номер строки

lcd.print("Tn:");
 lcd.print("   ");

Можно упростить

lcd.print("Tn:   ");
1 лайк

Чуть позже отпишусь, ещё не дома чтоб переписать код, возможно это и есть 1-я причина. Далее буду смотреть и капать. Спасиб тебе ещё один адекватный человек.

Э…нет уж. Я неадекватный))

Вот тебя еп переклинило на знании мною 20+ языков аж кушать не можешь болезный теперь:grin::smiley_cat::smiley_cat::smiley_cat:

Главное не поленился огласил весь список с краткой историей :grin:по хорошему не скандалу ради промолчал в ответ потом раз опять из подворотни тяффкает и всуе Волшебника упоминает в левой теме и чего ради интересно? Мне до тебя дела нет меня только раздел Ищу исполнителя интересен остальное фоном идет по большей мере читать интересного особо нечего тута полезного Успокойся С тоже есть в арсенале

Тс сочувствую за помощью вы не то, что бы не в ту дверь, а вообще не на ту улицу зашли

Короч исправил позиционирование и не то. Так что друг мой (не) адекватный надо ковырять дальше.

Уважаемый это вообще кому?

«Эй, уважаемый. Ты сюда не ходи, ты туда ходи. А то 18650 башка попадёт, совсем электронным станешь…» ))

1 лайк

#include <EEPROM.h>
#include <OneButton.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);

#define B 3950 // B-коэффициент термистора
#define SERIAL_R 102000 // сопротивление последовательного резистора, 102 кОм
#define THERMISTOR_R 100000 // номинальное сопротивления термистора, 100 кОм
#define NOMINAL_T 25 // номинальная температура (при которой TR = 100 кОм)

const byte tempPin = A0;
int NASOS = 2;
int relem = 12;

uint8_t addr = 0;
uint8_t addr1 = 1;

#if defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_NANO_EVERY)
#define PIN_INPUT1 3
#define PIN_INPUT2 4
#define PIN_INPUT3 5
#define PIN_INPUT4 6
#define PIN_INPUT5 7
#endif

int8_t verh = 0;
int8_t niz = 0;
int8_t a=1;

OneButton button1(PIN_INPUT1, OUTPUT);
OneButton button2(PIN_INPUT2, OUTPUT);
OneButton button3(PIN_INPUT3, OUTPUT);
OneButton button4(PIN_INPUT4, OUTPUT);
OneButton button5(PIN_INPUT5, OUTPUT);

void setup() {
Serial.begin( 9600 );
pinMode( tempPin, INPUT );
pinMode(NASOS, OUTPUT);
pinMode(relem, OUTPUT);

lcd.init();  
lcd.backlight();
lcd.clear();

button1.attachClick(click1);
button2.attachClick(click2);
button3.attachClick(click3);
button4.attachClick(click4);
button5.attachClick(click5);

}
void loop() {
int t = analogRead( tempPin );
float tr = 1023.0 / t;
tr = SERIAL_R /tr;
float temperatura;
temperatura = tr / THERMISTOR_R; // (R/Ro)
temperatura = log(temperatura); // ln(R/Ro)
temperatura /= B; // 1/B * ln(R/Ro)
temperatura += 1.0 / (NOMINAL_T + 273.15); // + (1/To)
temperatura = 1.0 / temperatura; // Invert
temperatura -= 273.15;

if(temperatura >= verh) digitalWrite(NASOS,HIGH);
if(temperatura <= niz) digitalWrite(NASOS,LOW);

lcd.setCursor(0,0);
lcd.print("T:");
lcd.setCursor(3,0);
lcd.print(temperatura);

lcd.setCursor(0,1);
lcd.print("Tv:");
lcd.setCursor(3,1);
lcd.print(verh);

lcd.setCursor(9,1);
lcd.print("Tn:");
lcd.setCursor(12,1);
lcd.print(niz);

// if (niz >= 1)EEPROM.write(addr1, niz);
// niz = EEPROM.read(addr1);
// if (verh >= 1)EEPROM.write(addr, verh);
// verh = EEPROM.read(addr);

int st = 85;

if(temperatura >= st) digitalWrite(relem,HIGH);
else digitalWrite(relem,LOW);

button1.tick();
button2.tick();
button3.tick();
button4.tick();
button5.tick();

delay(10);

}
void click1() {
niz = ++a;
}
void click2() {
niz = --a;
}
void click3() {
verh = ++a;
}
void click4() {
verh = --a;

}
void click5() {
}

Для тех кто не видит и без скобок не может.