Ganti Kontroller Mesin Cuci dengan Arduino Nano


Ganti Kontroller Mesin Cuci dengan Arduino Nano.

Kontroller mesin cuci bermasalah gara2 berhemat relay harga 8rb, jadinya bongkar ulang. Permasalahannya untuk arus besar, rellay nya sering lengket. Setelah diganti dengan yg harga 20rb, aman dan tidak brisik. Efek WFH, iseng bongkar2 lagi. Harga memang nggak bohong





const int KANAN = 2; // Naming switch button pin
const int KIRI = 3; // Naming switch button pin
const int DRAIN = 4; // Naming switch button pin
const int SELENOID = 5; // Naming switch button pin
const int WATER_LEVEL = 6; // Naming switch button pin
const int PINTU = 7; // Naming switch button pin

const int LED1 = A1;   // Namin LED pin

int S_WATER_LEVEL = LOW;
int S_PINTU = LOW;
// ==============================


void setup() {
  Serial.begin(9600);
  Serial.println("SETUP SYSTEM");

  pinMode (KANAN, OUTPUT);
  pinMode (KIRI, OUTPUT);
  pinMode (DRAIN, OUTPUT);
  pinMode (SELENOID, OUTPUT);
  pinMode (WATER_LEVEL, INPUT);
  pinMode (PINTU, INPUT);
  pinMode(LED1, OUTPUT);
  delay(200);

  digitalWrite(KANAN, HIGH);
  digitalWrite(KIRI, HIGH);
  digitalWrite(DRAIN, HIGH);
  digitalWrite(SELENOID, HIGH);
  LED1 == LOW;

  digitalWrite(LED1, HIGH);
  delay(500);
  digitalWrite(LED1, LOW);
}
// ==============================



void loop() {
  int n = 0;
  // ============================== ISI AIR =================================================
  Serial.println("ISI AIR");

  S_WATER_LEVEL = LOW;
  do {
    if (S_WATER_LEVEL == LOW)
    {
      digitalWrite(SELENOID, LOW); // buka kran air
    }

    S_WATER_LEVEL = digitalRead(WATER_LEVEL);
    //Serial.println(S_WATER_LEVEL);
    delay(100);

  } while (S_WATER_LEVEL == HIGH);

  digitalWrite(SELENOID, HIGH); // tutup kran air
  Serial.println("AIR PENUH");
  // ============================== KUCEK KANAN KIRI ==============================
  n = 0;
  do {
    n = n + 1;


    Serial.println(n);
    Serial.println("KUCEK KANAN");
    digitalWrite(KANAN, LOW);
    delay(2000);
    Serial.println("KANAN BERHENTI");
    digitalWrite(KANAN, HIGH);
    delay(2000);

    Serial.println("KUCEK KIRI");
    digitalWrite(KIRI, LOW);
    delay(2000);
    Serial.println("KIRI BERHENTI");
    digitalWrite(KIRI, HIGH);
    delay(2000);

  } while (n < 50); //50

  digitalWrite(KANAN, HIGH);
  digitalWrite(KIRI, HIGH);
  delay(5000);
  // ============================== BUANG AIR =================================================
  Serial.println("BUANG AIR");
  digitalWrite(DRAIN, LOW);
  Serial.println("BUKA PEMBUANGAN");
  delay(15000);

  // ============================== SPIN =================================================
  n = 0;
  do {
    n = n + 1;
    Serial.println(n);
    Serial.println("SPIN DRY");

    do {
      S_PINTU = digitalRead(PINTU); // sensor pintu terbuka, mesin mati
      if (S_PINTU = LOW) digitalWrite(KANAN, HIGH);
      if (S_PINTU = LOW) Serial.println("PINTU TERBUKA");
      delay(200);
    } while (S_PINTU == HIGH);

    digitalWrite(KANAN, LOW);
    delay(1000);
  } while (n < 50);//50

  Serial.println("SPIN SELESAI");
  digitalWrite(KANAN, HIGH);
  delay(15000);
  digitalWrite(DRAIN, HIGH);
  delay(5000);
  Serial.println("TUTUP PEMBUANGAN");
  // ============================== BILAS ISI AIR =================================================
  Serial.println("BILAS ISI AIR");


  digitalWrite(LED1, HIGH);
  delay(500);
  digitalWrite(LED1, LOW);
  
  S_WATER_LEVEL = LOW;
  do {
    if (S_WATER_LEVEL == LOW)
    {
      digitalWrite(SELENOID, LOW); // buka kran air
    }

    S_WATER_LEVEL = digitalRead(WATER_LEVEL);
    //Serial.println(S_WATER_LEVEL);
    delay(100);

  } while (S_WATER_LEVEL == HIGH);

  digitalWrite(SELENOID, HIGH); // tutup kran air
  Serial.println("BILAS AIR PENUH");

  // ============================== BILAS KUCEK ==============================
  n = 0;
  do {
    n = n + 1;

    do {
      S_PINTU = digitalRead(PINTU); // sensor pintu terbuka, mesin mati
      delay(100);
    } while (S_PINTU = LOW);

    Serial.println(n);
    Serial.println("BILAS KUCEK KANAN");
    digitalWrite(KANAN, LOW);
    delay(2000);
    Serial.println("BERHENTI");
    digitalWrite(KANAN, HIGH);
    delay(2000);

    Serial.println("BILAS KUCEK KIRI");
    digitalWrite(KIRI, LOW);
    delay(2000);
    Serial.println("BERHENTI");
    digitalWrite(KIRI, HIGH);
    delay(2000);

  } while (n < 50);//50

  digitalWrite(KANAN, HIGH);
  digitalWrite(KIRI, HIGH);
  delay(5000);
  // ============================== BUANG AIR =================================================
  Serial.println("BILAS BUANG AIR");
  digitalWrite(DRAIN, LOW);
  delay(15000);

  // ============================== SPIN =================================================
  n = 0;
  do {
    n = n + 1;
    Serial.println(n);
    Serial.println("SPIN BILAS");

    do {
      S_PINTU = digitalRead(PINTU); // sensor pintu terbuka, mesin mati
      if (S_PINTU = LOW) digitalWrite(KANAN, HIGH);
      if (S_PINTU = LOW) Serial.println("PINTU TERBUKA");
      delay(200);
    } while (S_PINTU == HIGH);




    digitalWrite(KANAN, LOW);
    delay(1000);
  } while (n < 50);//50
  Serial.println("SPIN BILAS SELESAI");

  digitalWrite(KANAN, HIGH);
  delay(15000);
  digitalWrite(DRAIN, HIGH);
  delay(1000);
  Serial.println("SELESAI");
  digitalWrite(LED1, HIGH);
  delay(1000);
  digitalWrite(LED1, LOW);
  delay(500);
  digitalWrite(LED1, HIGH);
  delay(1000);
  digitalWrite(LED1, LOW);
  delay(500);
  digitalWrite(LED1, HIGH);
  delay(1000);
  digitalWrite(LED1, LOW);


  delay(1000);
  exit(0);
}










Komentar

Postingan populer dari blog ini

Tempat Evakuasi Sementara (TES) Potensi Tsunami Pangandaran dan Cilacap

Basis Data Pariwisata Provinsi Bali