/*pini LED: * RS : 12 * E : 11 * D4 -> D1 : 5 -> 2 *pin senzor umiditate in sol: A0 *pin potentiometru pentru citire prag : A1 *pin activate pompa apa : 7 */ #include #define RS_LED 12 #define E_LED 11 #define D4_LED 5 #define D3_LED 4 #define D2_LED 3 #define D1_LED 2 #define DIRT_SENZ A0 #define POTENT_SENZ A1 #define WATER_PUMP 7 int waterThr = -1; int waterThrMapped = -1; int waterLvl = -1; int waterLvlMapped = -1; LiquidCrystal lcd(RS_LED, E_LED, D4_LED, D3_LED, D2_LED, D1_LED); void setup() { Serial.begin(9600); lcd.begin(16, 2); pinMode(DIRT_SENZ, INPUT); pinMode(POTENT_SENZ, INPUT); pinMode(WATER_PUMP, OUTPUT); digitalWrite(WATER_PUMP, LOW); } void loop() { waterThr = analogRead(POTENT_SENZ); waterThrMapped = map(waterThr, 0, 1023, 0, 100); lcd.setCursor(0,0); lcd.print("Water thr:"); lcd.print(waterThrMapped);lcd.print("%"); checkIfWater(); lcd.clear(); } void checkIfWater(){ waterLvl = analogRead(DIRT_SENZ); waterLvlMapped = map(waterLvl, 0, 1023, 0, 100); lcd.setCursor(0,1); lcd.print("Dry level:"); lcd.print(waterLvlMapped);lcd.print("%"); if( waterLvlMapped >= waterThrMapped){ digitalWrite(WATER_PUMP, HIGH); } else { digitalWrite(WATER_PUMP, LOW); } delay(50); }