Выдает ошибку при проверке, не могу понять в чем дело #include "QuadDisplay.h" #define PIN_LOW_LEV 4 #define PIN_LOW_LEV 6 #define PIN_RELAY 5 const int HUMIDY_MIN = 500; void setup(void) { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(PIN_LOW_LEV, INPUT_PULLUP); pinMode(PIN_HIGH_LEV, INPUT_PULLUP); pinMode(PIN_RELAY, OUTPUT); digitalWrite(PIN_RELAY, LOW); displayInt(3, 0); } char intDigit(unsigned int val, char pos) { char buf[6]; sprintf(buf, "%04u", val); return buf[3-pos]-'0'; } unsigned int intDigitSet(unsigned int val, char pos, char d) { char buf[6]; sprintf(buf, "%04u", val); buf[3-pos] = '0'+d; return atoi(buf); } unsigned int readHumidy(void) { static unsigned int oldval = 0; static unsigned int res = 0; static unsigned int stability[4] = { 0, 0, 0, 0 }; char i; unsigned int val = analogRead(A0); if(val < 50) val = 0; for(i = 0; i < 4; i++) { if(intDigit(oldval, i) != intDigit(val, i)) { oldval = intDigitSet(oldval, i, intDigit(val, i)); stability = 0; } else { if(stability < 10) stability++; else res = intDigitSet(res, i, intDigit(val, i)); } } return res; } void loop(void) { static unsigned long wait = millis() + 60000; static unsigned int oldhumidy = 0; static unsigned long stability = 0; unsigned int humidy = readHumidy(); if(humidy != oldhumidy) { oldhumidy = humidy; displayInt(3, humidy); } if(wait != 0 && wait-millis() > 10) { return; } else wait = 0; if(humidy < HUMIDY_MIN) { digitalWrite(2, HIGH); analogWrite(5, 50); delay(90500); //время работы насоса digitalWrite(2, LOW); digitalWrite(5, LOW); wait = millis() + 3*600; //наполнение бочки if(digitalRead(PIN_LOW_LEV) && digitalRead(PIN_HIGH_LEV)){ // Воды нет ни на одном датчике, включаем насос digitalWrite(PIN_RELAY,HIGH); } else if(!digitalRead(PIN_HIGH_LEV)){ // Вода на верхнем датчике, отключаем насос digitalWrite(PIN_RELAY,HIGH); } }
@mutabor, первое, на чем споткнулся взгляд у вас не определен PIN_HIGH_LEV (зато PIN_LOW_LEV два раза) Должно быть как-то так Код (C++): #define PIN_LOW_LEV 4 #define PIN_HIGH_LEV 6 второе, у вас что-то неладное с переменными stability (в цикле она не используется, а в функции readHumidy() она или неправильно определена или неправильно используется. PS Используйте кнопку Код для выделения вашего кода