/////////// 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///////////////
// PL pin 1
int load = 6;
// CE pin 15
int clockEnablePin = 7;
// Q7 pin 7
int dataIn = 9;
// CP pin 2
int clockIn = 5;
///////////////////////// End ////////////////////////////
//////////// File header pin power/////////////////////////
const int Tombol_Power = 8;
const int Relay_Power = 12;
//////////////////////// End /////////////////////////////
/////////// Count Tombol seting //////////////////////////
int countSpin=0;
int countKecepatan=0;
int countLevelAir=0;
int countSuhu=0;
int countWaktu=0;
int countManualMatic=0;
int countSetrikaCuci=0;
int countBerhentiMulai=0;
///////////// End ///////////////////////////////////////
///////////// Sensor ///////////////////////////////////
const int sensorMinLevelAir = 0;
const int sensorMaxLevelAir = 1000;
const int sensorMinKecepatan = 0;
const int sensorMaxKecepatan = 1000;
const int sensorMinSuhu = 0;
const int sensorMaxSuhu = 1000;
///////////// End //////////////////////////////////////
void setup(){
Serial.begin(115200);
pinMode(load, OUTPUT);
pinMode(clockEnablePin, OUTPUT);
pinMode(clockIn, OUTPUT);
pinMode(dataIn, INPUT);
pinMode(Tombol_Power, INPUT);
pinMode(Relay_Power, OUTPUT);
}
void loop(){
int inputPowerState = digitalRead(Tombol_Power);
if (inputPowerState == HIGH){
Serial.print("Status:");
Serial.print(" Off");
Serial.println();
delay(50);
}
else {
Serial.print("Status:");
Serial.print(" On");
Serial.println();
delay(50);
}
int input = inputPowerState ;
switch (input) {
case 0:
sr.setAllHigh();
delay(100);
disp.scrollMsg(buf, sdir, 200);
unsigned long tms = millis();
sr.setAllLow();
delay(100);
sr.setNoUpdate(3, HIGH);
sr.setNoUpdate(19, HIGH);
sr.setNoUpdate(23, HIGH);
sr.setNoUpdate(11, HIGH);
sr.setNoUpdate(15, HIGH);
sr.setNoUpdate(68, HIGH);
sr.setNoUpdate(69, HIGH);
sr.setNoUpdate(70, HIGH);
sr.setNoUpdate(71, HIGH);
sr.updateRegisters();
for (int i = 0; i < 1000; i++) {
//disp.scrollMsg(buf1, sdir, 200);
//unsigned long tms = millis();
digitalWrite(load,LOW);
delayMicroseconds(5);
digitalWrite(load,HIGH);
delayMicroseconds(5);
digitalWrite(clockIn,HIGH);
digitalWrite(clockEnablePin,LOW);
byte incoming = shiftIn(dataIn, clockIn, LSBFIRST);
digitalWrite(clockEnablePin,HIGH);
Serial.print("Pin States:\r\n");
Serial.println(incoming, BIN);
delay(300);
int Baca = incoming;
int TombolSpin = B11111110; //tombol spin
int TombolManualMatic = B11111101; //tombol Manual/ Matic
int TombolSetrikaCuci = B11111011; //tombol setrika/ mencuci
int TombolBerhentiMulai = B11110111; //tombol mulai/ berhenti
int TombolWaktu = B11101111; //tombol Waktu
int TombolSuhu = B11011111; //tombol Suhu
int TombolLevelAir = B10111111; //tombol level air
int TombolKecepatan = B01111111; //tombol kecepatan
switch (incoming) {
case B11110111:
if (Baca==TombolBerhentiMulai){
countBerhentiMulai++;
if (countBerhentiMulai > 2) { // Batas atas
countBerhentiMulai = 0;
}
switch (countBerhentiMulai) {
case 1:
sr.setNoUpdate(70, LOW);
sr.setNoUpdate(6, HIGH);
digitalWrite(Relay_Power, HIGH);
sr.updateRegisters();
delay(100);
break;
case 2:
sr.setNoUpdate(70, HIGH);
sr.setNoUpdate(6, LOW);
digitalWrite(Relay_Power, LOW);
sr.updateRegisters();
delay(100);
break;
}
}
case B11111011:
if (Baca==TombolSetrikaCuci){
countSetrikaCuci++;
if (countSetrikaCuci > 2) { // Batas atas
countSetrikaCuci = 0;
}
switch (countSetrikaCuci) {
case 1:
sr.setNoUpdate(69, LOW);
sr.setNoUpdate(5, HIGH);
sr.updateRegisters();
delay(100);
break;
case 2:
sr.setNoUpdate(69, HIGH);
sr.setNoUpdate(5, LOW);
sr.updateRegisters();
delay(100);
break;
}
}
case B11111101:
if (Baca==TombolManualMatic){
countManualMatic++;
if (countManualMatic > 2) { // Batas atas
countManualMatic = 0;
}
switch (countManualMatic) {
case 1:
sr.setNoUpdate(68, LOW);
sr.setNoUpdate(4, HIGH);
sr.updateRegisters();
delay(100);
break;
case 2:
sr.setNoUpdate(68, HIGH);
sr.setNoUpdate(4, LOW);
sr.updateRegisters();
delay(100);
break;
}
}
case B11111110:
if (Baca==TombolSpin){
countSpin++;
if (countSpin > 4) { // Batas atas
countSpin = 0;
}
switch (countSpin) {
case 1:
sr.setNoUpdate(3, LOW);
sr.setNoUpdate(2, HIGH);
sr.updateRegisters();
delay(100);
break;
case 2:
sr.setNoUpdate(3, LOW);
sr.setNoUpdate(2, LOW);
sr.setNoUpdate(1, HIGH);
sr.updateRegisters();
delay(100);
break;
case 3:
sr.setNoUpdate(3, LOW);
sr.setNoUpdate(2, LOW);
sr.setNoUpdate(1, LOW);
sr.setNoUpdate(0, HIGH);
sr.updateRegisters();
delay(100);
break;
case 4:
sr.setNoUpdate(3, HIGH);
sr.setNoUpdate(2, LOW);
sr.setNoUpdate(1, LOW);
sr.setNoUpdate(0, LOW);
sr.updateRegisters();
delay(100);
break;
}
}
break;
case B01111111:
if (Baca==TombolKecepatan){
countKecepatan++;
if (countKecepatan > 4) {
countKecepatan= 0;
}
switch (countKecepatan) {
case 1:
sr.setNoUpdate(15, LOW);
sr.setNoUpdate(14, HIGH);
sr.updateRegisters();
delay(100);
break;
case 2:
sr.setNoUpdate(15, LOW);
sr.setNoUpdate(14, LOW);
sr.setNoUpdate(13, HIGH);
sr.updateRegisters();
delay(100);
break;
case 3:
sr.setNoUpdate(15, LOW);
sr.setNoUpdate(14, LOW);
sr.setNoUpdate(13, LOW);
sr.setNoUpdate(12, HIGH);
sr.updateRegisters();
delay(100);
break;
case 4:
sr.setNoUpdate(15, HIGH);
sr.setNoUpdate(14, LOW);
sr.setNoUpdate(13, LOW);
sr.setNoUpdate(12, LOW);
sr.updateRegisters();
delay(100);
break;
}
}
break;
case B10111111:
if (Baca==TombolLevelAir){
countLevelAir++;
if (countLevelAir > 4) {
countLevelAir= 0;
}
switch (countLevelAir) {
case 1:
sr.setNoUpdate(11, LOW);
sr.setNoUpdate(10, HIGH);
sr.updateRegisters();
delay(100);
break;
case 2:
sr.setNoUpdate(11, LOW);
sr.setNoUpdate(10, LOW);
sr.setNoUpdate(9, HIGH);
sr.updateRegisters();
delay(100);
break;
case 3:
sr.setNoUpdate(11, LOW);
sr.setNoUpdate(10, LOW);
sr.setNoUpdate(9, LOW);
sr.setNoUpdate(8, HIGH);
sr.updateRegisters();
delay(100);
break;
case 4:
sr.setNoUpdate(11, HIGH);
sr.setNoUpdate(10, LOW);
sr.setNoUpdate(9, LOW);
sr.setNoUpdate(8, LOW);
sr.updateRegisters();
delay(100);
break;
}
}
case B11011111:
if (Baca==TombolSuhu){
countSuhu++;
if (countSuhu > 4) {
countSuhu= 0;
}
switch (countSuhu) {
case 1:
sr.setNoUpdate(23, LOW);
sr.setNoUpdate(22, HIGH);
sr.updateRegisters();
delay(100);
break;
case 2:
sr.setNoUpdate(23, LOW);
sr.setNoUpdate(22, LOW);
sr.setNoUpdate(21, HIGH);
sr.updateRegisters();
delay(100);
break;
case 3:
sr.setNoUpdate(23, LOW);
sr.setNoUpdate(22, LOW);
sr.setNoUpdate(21, LOW);
sr.setNoUpdate(20, HIGH);
sr.updateRegisters();
delay(100);
break;
case 4:
sr.setNoUpdate(23, HIGH);
sr.setNoUpdate(22, LOW);
sr.setNoUpdate(21, LOW);
sr.setNoUpdate(20, LOW);
sr.updateRegisters();
delay(100);
break;
}
}
case B11101111:
if (Baca==TombolWaktu){
countWaktu++;
if (countWaktu > 4) {
countWaktu= 0;
}
switch (countWaktu) {
case 1:
sr.setNoUpdate(19, LOW);
sr.setNoUpdate(18, HIGH);
sr.updateRegisters();
delay(100);
break;
case 2:
sr.setNoUpdate(19, LOW);
sr.setNoUpdate(18, LOW);
sr.setNoUpdate(17, HIGH);
sr.updateRegisters();
delay(100);
break;
case 3:
sr.setNoUpdate(19, LOW);
sr.setNoUpdate(18, LOW);
sr.setNoUpdate(17, LOW);
sr.setNoUpdate(16, HIGH);
sr.updateRegisters();
delay(100);
break;
case 4:
sr.setNoUpdate(19, HIGH);
sr.setNoUpdate(18, LOW);
sr.setNoUpdate(17, LOW);
sr.setNoUpdate(16, LOW);
sr.updateRegisters();
delay(100);
break;
}
}
break;
}
int sensorLevelAir = analogRead(A0);
//map the sensor range to a range of four options:
int rangeSensorLevelAir = map(sensorLevelAir, sensorMinLevelAir, sensorMaxLevelAir, 0, 8);
Serial.println(sensorLevelAir);
switch (rangeSensorLevelAir){
case 0:
sr.set(31,LOW);
sr.set(30,LOW);
sr.set(29,LOW);
sr.set(28,LOW);
sr.set(27,LOW);
sr.set(26,LOW);
sr.set(25,LOW);
sr.set(24,LOW);
if (uint64_t LED_LevelAir0=sr.get(11)){
sr.set(59,LOW);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir30=sr.get(10)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir40=sr.get(9)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir60=sr.get(8)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
break;
case 1:
sr.set(31,HIGH);
sr.set(30,LOW);
sr.set(29,LOW);
sr.set(28,LOW);
sr.set(27,LOW);
sr.set(26,LOW);
sr.set(25,LOW);
sr.set(24,LOW);
if (uint64_t LED_LevelAir0=sr.get(11)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir30=sr.get(10)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir40=sr.get(9)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir60=sr.get(8)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
break;
case 2:
sr.set(31,HIGH);
sr.set(30,HIGH);
sr.set(29,LOW);
sr.set(28,LOW);
sr.set(27,LOW);
sr.set(26,LOW);
sr.set(25,LOW);
sr.set(24,LOW);
if (uint64_t LED_LevelAir0=sr.get(11)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir30=sr.get(10)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir40=sr.get(9)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir60=sr.get(8)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
break;
case 3:
sr.set(31,HIGH);
sr.set(30,HIGH);
sr.set(29,HIGH);
sr.set(28,LOW);
sr.set(27,LOW);
sr.set(26,LOW);
sr.set(25,LOW);
sr.set(24,LOW);
if (uint64_t LED_LevelAir0=sr.get(11)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir30=sr.get(10)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir40=sr.get(9)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir60=sr.get(8)){
sr.set(59,HIGH);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
break;
case 4:
sr.set(31,HIGH);
sr.set(30,HIGH);
sr.set(29,HIGH);
sr.set(28,HIGH);
sr.set(27,LOW);
sr.set(26,LOW);
sr.set(25,LOW);
sr.set(24,LOW);
if (uint64_t LED_LevelAir0=sr.get(11)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir30=sr.get(10)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir40=sr.get(9)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir60=sr.get(8)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
break;
case 5:
sr.set(31,HIGH);
sr.set(30,HIGH);
sr.set(29,HIGH);
sr.set(28,HIGH);
sr.set(27,LOW);
sr.set(26,LOW);
sr.set(25,LOW);
sr.set(24,LOW);
if (uint64_t LED_LevelAir0=sr.get(11)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir30=sr.get(10)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir40=sr.get(9)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir60=sr.get(8)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
break;
case 6:
sr.set(31,HIGH);
sr.set(30,HIGH);
sr.set(29,HIGH);
sr.set(28,HIGH);
sr.set(27,HIGH);
sr.set(26,LOW);
sr.set(25,LOW);
sr.set(24,LOW);
if (uint64_t LED_LevelAir0=sr.get(11)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir30=sr.get(10)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir40=sr.get(9)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir60=sr.get(8)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
break;
case 7:
sr.set(31,HIGH);
sr.set(30,HIGH);
sr.set(29,HIGH);
sr.set(28,HIGH);
sr.set(27,HIGH);
sr.set(26,HIGH);
sr.set(25,HIGH);
sr.set(24,LOW);
if (uint64_t LED_LevelAir0=sr.get(11)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir30=sr.get(10)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir40=sr.get(9)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir60=sr.get(8)){
sr.set(59,LOW);
sr.set(60,HIGH);
sr.updateRegisters();
break;
}
break;
case 8:
sr.set(31,HIGH);
sr.set(30,HIGH);
sr.set(29,HIGH);
sr.set(28,HIGH);
sr.set(27,HIGH);
sr.set(26,HIGH);
sr.set(25,HIGH);
sr.set(24,HIGH);
if (uint64_t LED_LevelAir0=sr.get(11)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir30=sr.get(10)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir40=sr.get(9)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_LevelAir60=sr.get(8)){
sr.set(59,HIGH);
sr.set(60,LOW);
sr.updateRegisters();
break;
}
break;
}
int sensorKecepatan = analogRead(A1);
//map the sensor range to a range of four options:
int rangeKecepatan = map(sensorKecepatan, sensorMinKecepatan, sensorMaxKecepatan, 0, 8);
Serial.println(sensorKecepatan);
switch (rangeKecepatan){
case 0:
sr.set(39,LOW);
sr.set(38,LOW);
sr.set(37,LOW);
sr.set(36,LOW);
sr.set(35,LOW);
sr.set(34,LOW);
sr.set(33,LOW);
sr.set(32,LOW);
if (uint64_t LED_Kecepatan0=sr.get(15)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan30=sr.get(14)){
sr.set(56,HIGH);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan40=sr.get(13)){
sr.set(56,HIGH);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan60=sr.get(12)){
sr.set(56,HIGH);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
break;
case 1:
sr.set(39,HIGH);
sr.set(38,LOW);
sr.set(37,LOW);
sr.set(36,LOW);
sr.set(35,LOW);
sr.set(34,LOW);
sr.set(33,LOW);
sr.set(32,LOW);
if (uint64_t LED_Kecepatan0=sr.get(15)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan30=sr.get(14)){
sr.set(56,LOW);
sr.set(57,HIGH);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan40=sr.get(13)){
sr.set(56,HIGH);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan60=sr.get(12)){
sr.set(56,HIGH);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
break;
case 2:
sr.set(39,HIGH);
sr.set(38,HIGH);
sr.set(37,LOW);
sr.set(36,LOW);
sr.set(35,LOW);
sr.set(34,LOW);
sr.set(33,LOW);
sr.set(32,LOW);
if (uint64_t LED_Kecepatan0=sr.get(15)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan30=sr.get(14)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan40=sr.get(13)){
sr.set(56,LOW);
sr.set(57,HIGH);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan60=sr.get(12)){
sr.set(56,HIGH);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
break;
case 3:
sr.set(39,HIGH);
sr.set(38,HIGH);
sr.set(37,HIGH);
sr.set(36,LOW);
sr.set(35,LOW);
sr.set(34,LOW);
sr.set(33,LOW);
sr.set(32,LOW);
if (uint64_t LED_Kecepatan0=sr.get(15)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan30=sr.get(14)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan40=sr.get(13)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan60=sr.get(12)){
sr.set(56,LOW);
sr.set(57,HIGH);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
break;
case 4:
sr.set(39,HIGH);
sr.set(38,HIGH);
sr.set(37,HIGH);
sr.set(36,HIGH);
sr.set(35,LOW);
sr.set(34,LOW);
sr.set(33,LOW);
sr.set(32,LOW);
if (uint64_t LED_Kecepatan0=sr.get(15)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan30=sr.get(14)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan40=sr.get(13)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(HIGH,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan60=sr.get(12)){
sr.set(56,LOW);
sr.set(57,HIGH);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
break;
case 5:
sr.set(39,HIGH);
sr.set(38,HIGH);
sr.set(37,HIGH);
sr.set(36,HIGH);
sr.set(35,LOW);
sr.set(34,LOW);
sr.set(33,LOW);
sr.set(32,LOW);
if (uint64_t LED_Kecepatan0=sr.get(15)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan30=sr.get(14)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan40=sr.get(13)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan60=sr.get(12)){
sr.set(56,LOW);
sr.set(57,HIGH);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
break;
case 6:
sr.set(39,HIGH);
sr.set(38,HIGH);
sr.set(37,HIGH);
sr.set(36,HIGH);
sr.set(35,HIGH);
sr.set(34,LOW);
sr.set(33,LOW);
sr.set(32,LOW);
if (uint64_t LED_Kecepatan0=sr.get(15)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan30=sr.get(14)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan40=sr.get(13)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan60=sr.get(12)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,HIGH);
sr.updateRegisters();
break;
}
break;
case 7:
sr.set(39,HIGH);
sr.set(38,HIGH);
sr.set(37,HIGH);
sr.set(36,HIGH);
sr.set(35,HIGH);
sr.set(34,HIGH);
sr.set(33,HIGH);
sr.set(32,LOW);
if (uint64_t LED_Kecepatan0=sr.get(15)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan30=sr.get(14)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan40=sr.get(13)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan60=sr.get(12)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,HIGH);
sr.updateRegisters();
break;
}
break;
case 8:
sr.set(39,HIGH);
sr.set(38,HIGH);
sr.set(37,HIGH);
sr.set(36,HIGH);
sr.set(35,HIGH);
sr.set(34,HIGH);
sr.set(33,HIGH);
sr.set(32,HIGH);
if (uint64_t LED_Kecepatan0=sr.get(15)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan30=sr.get(14)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan40=sr.get(13)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Kecepatan60=sr.get(12)){
sr.set(56,LOW);
sr.set(57,LOW);
sr.set(58,HIGH);
sr.updateRegisters();
break;
}
break;
}
int sensorSuhu = analogRead(A2);
//map the sensor range to a range of four options:
int rangeSuhu = map(sensorSuhu, sensorMinSuhu, sensorMaxSuhu, 0, 8);
Serial.println(sensorSuhu);
switch (rangeSuhu){
case 0:
sr.set(47,LOW);
sr.set(46,LOW);
sr.set(45,LOW);
sr.set(44,LOW);
sr.set(43,LOW);
sr.set(42,LOW);
sr.set(41,LOW);
sr.set(40,LOW);
if (uint64_t LED_Pemanas0=sr.get(23)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas30=sr.get(22)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas40=sr.get(21)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas60=sr.get(20)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
break;
case 1:
sr.set(47,HIGH);
sr.set(46,LOW);
sr.set(45,LOW);
sr.set(44,LOW);
sr.set(43,LOW);
sr.set(42,LOW);
sr.set(41,LOW);
sr.set(40,LOW);
if (uint64_t LED_Pemanas0=sr.get(23)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas30=sr.get(22)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas40=sr.get(21)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas60=sr.get(20)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
break;
case 2:
sr.set(47,HIGH);
sr.set(46,HIGH);
sr.set(45,LOW);
sr.set(44,LOW);
sr.set(43,LOW);
sr.set(42,LOW);
sr.set(41,LOW);
sr.set(40,LOW);
if (uint64_t LED_Pemanas0=sr.get(23)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas30=sr.get(22)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas40=sr.get(21)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas60=sr.get(20)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
break;
case 3:
sr.set(47,HIGH);
sr.set(46,HIGH);
sr.set(45,HIGH);
sr.set(44,LOW);
sr.set(43,LOW);
sr.set(42,LOW);
sr.set(41,LOW);
sr.set(40,LOW);
if (uint64_t LED_Pemanas0=sr.get(23)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas30=sr.get(22)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas40=sr.get(21)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas60=sr.get(20)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
break;
case 4:
sr.set(47,HIGH);
sr.set(46,HIGH);
sr.set(45,HIGH);
sr.set(44,HIGH);
sr.set(43,LOW);
sr.set(42,LOW);
sr.set(41,LOW);
sr.set(40,LOW);
break;
if (uint64_t LED_Pemanas0=sr.get(23)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas30=sr.get(22)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas40=sr.get(21)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas60=sr.get(20)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
case 5:
sr.set(47,HIGH);
sr.set(46,HIGH);
sr.set(45,HIGH);
sr.set(44,HIGH);
sr.set(43,LOW);
sr.set(42,LOW);
sr.set(41,LOW);
sr.set(40,LOW);
if (uint64_t LED_Pemanas0=sr.get(23)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas30=sr.get(22)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas40=sr.get(21)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas60=sr.get(20)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
break;
case 6:
sr.set(47,HIGH);
sr.set(46,HIGH);
sr.set(45,HIGH);
sr.set(44,HIGH);
sr.set(43,HIGH);
sr.set(42,LOW);
sr.set(41,LOW);
sr.set(40,LOW);
if (uint64_t LED_Pemanas0=sr.get(23)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas30=sr.get(22)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas40=sr.get(21)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas60=sr.get(20)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
break;
case 7:
sr.set(47,HIGH);
sr.set(46,HIGH);
sr.set(45,HIGH);
sr.set(44,HIGH);
sr.set(43,HIGH);
sr.set(42,HIGH);
sr.set(41,HIGH);
sr.set(40,LOW);
if (uint64_t LED_Pemanas0=sr.get(23)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas30=sr.get(22)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas40=sr.get(21)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas60=sr.get(20)){
sr.set(61,HIGH);
sr.updateRegisters();
break;
}
break;
case 8:
sr.set(47,HIGH);
sr.set(46,HIGH);
sr.set(45,HIGH);
sr.set(44,HIGH);
sr.set(43,HIGH);
sr.set(42,HIGH);
sr.set(41,HIGH);
sr.set(40,HIGH);
if (uint64_t LED_Pemanas0=sr.get(23)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas30=sr.get(22)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas40=sr.get(21)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
if (uint64_t LED_Pemanas60=sr.get(20)){
sr.set(61,LOW);
sr.updateRegisters();
break;
}
break;
}
int inputPowerState = digitalRead(Tombol_Power);
if (inputPowerState == HIGH){
Serial.print("Status:");
Serial.print(" Off");
Serial.println();
sr.setAllHigh();
delay(100);
disp.scrollMsg(buf2, sdir, 200);
sr.setAllLow();
delay(100);
disp.scrollMsg(buf3, sdir, 200);
break;
}
}
break;
case 1:
sr.setAllHigh();
delay(100);
disp.scrollMsg(buf2, sdir, 200);
sr.setAllLow();
delay(100);
disp.scrollMsg(buf3, sdir, 200);
break;
}
}
Suhu 0°
Suhu 30°
Suhu 40°
Suhu 60°
Waktu 0mnt
Waktu 30mnt
Waktu 40mnt
Waktu 60mnt
Level air 0 %
Level air 30%
Level air 40 %
Level air 60 %
Kecepatan 0%
Kecepatan 30%
Kecepatan 40 %
Kecepatan 60 %
Mode Spin 1
Mode Spin 2
Mode Spin 3
Mode Spin 4
indikator sensor suhu
indikator sensor kecepatan
indikator sensor level air
indikator mode matic
indikator waktu Start dan Finis
mulai/
berhenti
Spin
waktu
suhu
level air
keceptan
automatic/
manual
setrika/
Mencuci
Encoder otomatis 16
MODULE MESIN CUCI
| Berhenti
| Manual
| Cuci
OFF / ON
Suhu
Kecepatan
Level Air
| Setrika
| Matic
| Mulai
Motor spd 1
Motor spd 2
Motor spd 3
Motor kuras
selenoid
Pemanas
Run Motor
revers motor
Lock dorr
| proses
| stand by
Indikator R
SENSOR
buzzer