Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*DISCLAIMER
- Code by Wachid Susilo
- WA 085640020041
- Butuh bantuan project berkaitan dengan Arduino IDE atau Android Studio? Hubungi saya :)
- Mendistribusikan code ini harus mencantumkan tulisan ini.
- */
- #define RELAY 2
- #define a 3 //sensor air tinggi
- #define b 4 //sensor air rendah
- #define c 5 //sensor flow
- #define DELAY_POMPA_HIDUP 10 //10 detik
- #define DELAY_POMPA_MATI 1800 //30 menit
- static int timer1 = 0;
- static unsigned long lastmillis = 0;
- unsigned long i;
- boolean flagA = false, flagB = true, flagC = true, flagD = false;
- void setup() {
- Serial.begin(9600);
- pinMode(RELAY, OUTPUT);
- digitalWrite(RELAY, LOW);
- pinMode(a, INPUT);
- pinMode(b, INPUT);
- pinMode(c, INPUT);
- }
- void loop() {
- unsigned long deltamillis = 0;
- unsigned long thismillis = millis();
- if (thismillis != lastmillis) {
- deltamillis = thismillis - lastmillis;
- lastmillis = thismillis;
- }
- timer1 -= deltamillis;
- if (timer1 <= 0) {
- timer1 += 1000;
- if (flagA || !flagB) {
- i++;
- if (flagD) {
- Serial.println(i);
- }
- }
- }
- //jika sensor air tinggi terdeteksi, maka pompa dimatikan
- if (!flagB && !flagA && digitalRead(a) && !digitalRead(b)) {
- digitalWrite(RELAY, LOW);
- if (flagC) {
- flagC = false;
- Serial.println("pompa dimatikan");
- }
- }
- //jika pompa telah dihidupkan namun air tidak mengalir, maka pompa dimatikan selama 30 menit
- if (!flagB && !digitalRead(c)) {
- if (i <= DELAY_POMPA_MATI) {
- flagD = true;
- digitalWrite(RELAY, LOW);
- if (flagC) {
- flagC = false;
- Serial.println("air tidak mengalir, mencoba lagi dalam 10 detik");
- }
- } else {
- i = 0;
- flagB = true;
- flagC = true;
- flagD = false;
- Serial.println("mencoba menghidupkan pompa");
- }
- }
- //jika sensor air rendah terdeteksi, maka pompa dihidupkan
- if (digitalRead(b) && !digitalRead(a)) {
- if (flagB) {
- if (i <= DELAY_POMPA_HIDUP) {
- flagA = true;
- flagD = true;
- digitalWrite(RELAY, HIGH);
- if (flagC) {
- flagC = false;
- Serial.println("pompa dihidupkan");
- }
- } else {
- i = 0;
- flagA = false;
- flagB = false;
- flagC = true;
- flagD = false;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement