///////////File hedHeader pin Shift register 74HC595///////////////
#include <ShiftRegister74HC595.h>
ShiftRegister74HC595<10> sr(3, 2, 4);
////////////////////////end////////////////////////////////////

///////////File hedHeader pin Shift SevenSeg4D ///////////////
#include <SevenSeg4D.h>
const int latchPin = 10;
const char buf[18] = "   HALLO PEOPLE";
const char buf1[18] = "   READY";
const char buf2[18] = "   OFF";
const char buf3[18] = "   GOOD BY";


unsigned long last_out = 0;
ScrollDirection sdir = Right2Left ;
SevenSeg4D disp(latchPin, Anode);
////////////////////////end////////////////////////////////////

///////////File Header pin Shift register 74HC165///////////////
const int dataPin65 = 7;   /* Q7 */
const int clockPin65 = 5;  /* CP */
const int latchPin65 = 6;  /* PL */
const int numBits = 8;   /* Set to 8 * number of shift registers */
///////////////////////// End ////////////////////////////

////////////File header pin power/////////////////////////
const int Tombol_Power = 8;
const int reset = 12;
//////////////////////// End /////////////////////////////

void setup()
{    
  Serial.begin(115200);
  pinMode(dataPin65, INPUT);
  pinMode(clockPin65, OUTPUT);
  pinMode(latchPin65, OUTPUT);
  pinMode(Tombol_Power, INPUT);
  pinMode(reset, OUTPUT);
}

void loop()
{
  int inputPowerState = digitalRead(Tombol_Power);
  if (inputPowerState == HIGH) {
    Serial.print("Status:");
    Serial.print(" Off");
  } else { 
    Serial.print("Status:");
    Serial.print(" On");
  }
  Serial.println();
  delay(500);

  int input = inputPowerState ; // Contoh input (misalnya, dari tombol atau sensor)

  switch (input) {
  
  case 0:

    sr.setAllHigh();
    delay(100);

    disp.scrollMsg(buf, sdir, 200);
    unsigned long tms = millis();

    sr.setAllLow();
    delay(100);

    for (int i = 0; i < 100; i++) {
    
    uint8_t pinValues[] = {B10000000}; 
    sr.setAll(pinValues); 
    delay(500);

    disp.scrollMsg(buf1, sdir, 200);
    unsigned long tms = millis();

    // Step 1: Sample
    digitalWrite(latchPin65, LOW);
    digitalWrite(latchPin65, HIGH);

    // Step 2: Shift
    Serial.println("Bits: ");
    for (int i = 0; i < numBits; i++) {
    int bit = digitalRead(dataPin65);
    if (bit == HIGH) {
      Serial.print("1");
    } else {
      Serial.print("0");
    }
    digitalWrite(clockPin65, HIGH); // Shift out the next bit
    digitalWrite(clockPin65, LOW);
    }
    Serial.println();
    delay(100);

    int inputPowerState = digitalRead(Tombol_Power);
    if (inputPowerState == HIGH) {
    Serial.print("Status:");
    Serial.print(" Off");

    break;

    } else { 
    Serial.print("Status:");
    Serial.print(" On");
    }
    Serial.println();
    delay(100);
    
    }
    
  case 1:
    {

    sr.setAllHigh();
    delay(100);

    disp.scrollMsg(buf2, sdir, 200);

    sr.setAllLow();
    delay(100);

    disp.scrollMsg(buf3, sdir, 200);

    }
   break;  // Berhenti di sini setelah LED 1 menyala

  }
}
74HC595
74HC595
74HC595
74HC595
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module
Suhu 0°
Suhu 30°
Suhu 40°
Suhu 60°
Waktu 15mnt
Waktu 30mnt
Waktu 40mnt
Waktu 60mnt
Level air 15 %
Level air 30%
Level air 40 %
Level air 60 %
Kecepatan 15 %
Kecepatan 30%
Kecepatan 40 %
Kecepatan 60 %
Mode Spin 1
Mode Spin 2
Mode Spin 3
Mode Spin 4
74HC595
74HC595
indikator sensor suhu
indikator sensor kecepatan
indikator sensor level air
74HC595
74HC595
74HC595
indikator mode spin
indikator waktu Start dan Finis
74HC165
mulai/ berhenti
Spin
waktu
suhu
level air
keceptan
automatic/ manual
setrika/ Mencuci
Encoder otomatis 16
MODULE MESIN CUCI
Bersiap proses
Berhenti / mulai
Otomatis/manual
Setrika/ mencuci
74HC595
OFF / ON
Suhu
Kecepatan
Level Air