اذهب إلى المحتوى

Yousef Hagag

الأعضاء
  • المساهمات

    1
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو Yousef Hagag

  1. #include <EEPROM.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); int ledPin = 9; char c; long duration, inches; int set_val, percentage; bool state, pump; void setup() { lcd.begin(); lcd.backlight(); lcd.print("WATER LEVEL:"); lcd.setCursor(0, 1); lcd.print("PUMP: OFF MANUAL"); pinMode(2, OUTPUT); pinMode(3, INPUT); pinMode(10, INPUT_PULLUP); pinMode(11, INPUT_PULLUP); pinMode(13, OUTPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); set_val = EEPROM.read(0); if (set_val > 20) { set_val = 20; } } void loop() { digitalWrite(2, HIGH); delayMicroseconds(10); digitalWrite(2, LOW); duration = pulseIn(3, HIGH); inches = microsecondsToInches(duration); percentage = (set_val - inches) * 110 / set_val; lcd.setCursor(12, 0); if (percentage < 0) { percentage = 0; } lcd.print(percentage); lcd.print("% "); if (percentage < 30 && digitalRead(11)) { pump = true; } if (percentage > 85) { pump = false; } digitalWrite(13, !pump); lcd.setCursor(5, 1); c = Serial.read(); if (c == '1') { digitalWrite(ledPin, HIGH); } else if (c == '0') { digitalWrite(ledPin, LOW); } if (pump) { lcd.print("ON "); } else if (!pump) { lcd.print("OFF"); } lcd.setCursor(9, 1); if (!digitalRead(11)) { lcd.print("MANUAL "); } lcd.print("AUTO "); if (!digitalRead(10) && !state && digitalRead(11)) { state = true; set_val = inches; EEPROM.write(0, set_val); } if (!digitalRead(10) && !state && !digitalRead(11)) { state = true; pump = !pump; } if (digitalRead(10)) { state = false; } delay(500); } long microsecondsToInches(long microseconds) { return microseconds / 29 / 2; }
×
×
  • أضف...