/////////// File hedHeader pin Shift register 74HC595///////////////
#include <ShiftRegister74HC595.h>
ShiftRegister74HC595<9> sr(3, 2, 4);
////////////////////////end////////////////////////////////////
///////////File hedHeader pin Shift SevenSeg4D ///////////////
#include <SevenSeg4D.h>
const int latchPin = 10;
const char buf4[18] = " HALLO PEOPLE";
const char buf1[18] = " READY";
const char buf2[18] = " OFF";
const char buf3[18] = " GOOD BY";
const char buf5[18] = " PAUSE";
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 //////////////////////////////////////
///////////// Counter Waktu ///////////////////////////
const int latchPinWaktu = 10;
int counter10mnt = 1000;
int counter20mnt = 2000;
int counter40mnt = 4000;
int counter60mnt = 6000;
unsigned long last_out = 1000;
// Output buffer for 4 digits plus the dot (.) character and the NULL terminated character
char buf[2];
///////////// 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);
disp.setAllowFloat(true);
}
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(1000);
sr.setAllLow();
disp.scrollMsg(buf4, sdir, 200);
unsigned long tms = millis();
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 < 9999; 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);
//Seven Segmen 10mnt//
if (sr.get(19)){
disp.shiftOutMsg(buf);
unsigned long tms = millis();
if ((tms - last_out) > 500){
last_out = tms;
counter10mnt--;
if (counter10mnt == 999){
counter10mnt = 959;
}
if (counter10mnt ==900){
counter10mnt = 859;
}
if (counter10mnt == 800){
counter10mnt = 759;
}
if (counter10mnt == 700){
counter10mnt = 659;
}
if (counter10mnt == 600){
counter10mnt = 559;
}
if (counter10mnt == 500){
counter10mnt = 459;
}
if (counter10mnt == 400){
counter10mnt = 359;
}
if (counter10mnt == 300){
counter10mnt = 259;
}
if (counter10mnt == 200){
counter10mnt = 159;
}
if (counter10mnt == 100){
counter10mnt = 59;
}
if (counter10mnt == 0){
counter10mnt = 0;
}
sr.set(64,HIGH);
sprintf(buf, "%04d", counter10mnt);
}
}
//end///
//Seven Segmen 20mnt//
if (sr.get(18)){
disp.shiftOutMsg(buf);
unsigned long tms = millis();
if ((tms - last_out) > 1000){
last_out = tms;
counter20mnt--;
if (counter20mnt == 1999){
counter20mnt = 1959;
}
if (counter20mnt == 1800){
counter20mnt = 1759;
}
if (counter20mnt == 1700){
counter20mnt = 1659;
}
if (counter20mnt == 1600){
counter20mnt = 1559;
}
if (counter20mnt == 1500){
counter20mnt = 1459;
}
if (counter20mnt == 1400){
counter20mnt = 1359;
}
if (counter20mnt == 1300){
counter20mnt = 1259;
}
if (counter20mnt == 1200){
counter20mnt = 1159;
}
if (counter20mnt == 1100){
counter20mnt = 1059;
}
if (counter20mnt == 1000){
counter20mnt = 959;
}
if (counter20mnt == 900){
counter20mnt = 859;
}
if (counter20mnt == 800){
counter20mnt = 759;
}
if (counter20mnt == 700){
counter20mnt = 659;
}
if (counter20mnt == 600){
counter20mnt = 559;
}
if (counter20mnt == 500){
counter20mnt = 459;
}
if (counter20mnt == 400){
counter20mnt = 359;
}
if (counter20mnt == 300){
counter20mnt = 259;
}
if (counter20mnt == 200){
counter20mnt = 159;
}
if (counter20mnt == 100){
counter20mnt = 59;
}
if (counter20mnt == 0){
counter20mnt = 0;
}
sr.set(64,HIGH);
sprintf(buf, "%04d", counter20mnt);
}
}
//end///
//Seven Segmen 30mnt//
if (sr.get(17)){
disp.shiftOutMsg(buf);
unsigned long tms = millis();
if ((tms - last_out) > 1000){
last_out = tms;
counter40mnt--;
if (counter40mnt == 3999){
counter40mnt = 3959;
}
if (counter40mnt == 3900){
counter40mnt = 3859;
}
if (counter40mnt == 3800){
counter40mnt = 3759;
}
if (counter40mnt == 3700){
counter40mnt = 3659;
}
if (counter40mnt == 3600){
counter40mnt = 3559;
}
if (counter40mnt == 3500){
counter40mnt = 3459;
}
if (counter40mnt == 3400){
counter40mnt = 3359;
}
if (counter40mnt == 3300){
counter40mnt = 3259;
}
if (counter40mnt == 3200){
counter40mnt = 3159;
}
if (counter40mnt == 3100){
counter40mnt = 3059;
}
if (counter40mnt == 3000){
counter40mnt = 2959;
}
if (counter40mnt == 2900){
counter40mnt = 2859;
}
if (counter40mnt == 2800){
counter40mnt = 2759;
}
if (counter40mnt == 2700){
counter40mnt = 2659;
}
if (counter40mnt == 2600){
counter40mnt = 2559;
}
if (counter40mnt == 2500){
counter40mnt = 2459;
}
if (counter40mnt == 2400){
counter40mnt = 2359;
}
if (counter40mnt == 2300){
counter40mnt = 2259;
}
if (counter40mnt == 2200){
counter40mnt = 2159;
}
if (counter40mnt == 2100){
counter40mnt = 2059;
}
if (counter40mnt == 2000){
counter40mnt = 1959;
}
if (counter40mnt == 1900){
counter40mnt = 2859;
}
if (counter40mnt == 1800){
counter40mnt = 1759;
}
if (counter40mnt == 1700){
counter40mnt = 1659;
}
if (counter40mnt == 1600){
counter40mnt = 1559;
}
if (counter40mnt == 1500){
counter40mnt = 1459;
}
if (counter40mnt == 1400){
counter40mnt = 1359;
}
if (counter40mnt == 1300){
counter40mnt = 1259;
}
if (counter40mnt == 1200){
counter40mnt = 1159;
}
if (counter40mnt == 1100){
counter40mnt = 1059;
}
if (counter40mnt == 1000){
counter40mnt = 959;
}
if (counter40mnt == 900){
counter40mnt = 859;
}
if (counter40mnt == 800){
counter40mnt = 759;
}
if (counter40mnt == 700){
counter40mnt = 659;
}
if (counter40mnt == 600){
counter40mnt = 559;
}
if (counter40mnt == 500){
counter40mnt = 459;
}
if (counter40mnt == 400){
counter40mnt = 359;
}
if (counter40mnt == 300){
counter40mnt = 259;
}
if (counter40mnt == 200){
counter40mnt = 159;
}
if (counter40mnt == 100){
counter40mnt = 59;
}
if (counter40mnt == 0){
counter40mnt = 0;
}
sr.set(64,HIGH);
sprintf(buf, "%0.4d", counter40mnt);
}
}
//end///
//Seven Segmen 60mnt//
if (sr.get(16)){
disp.shiftOutMsg(buf);
unsigned long tms = millis();
if ((tms - last_out) > 1000){
last_out = tms;
counter60mnt--;
if (counter60mnt == 5999){
counter60mnt = 5959;
}
if (counter60mnt == 5900){
counter60mnt = 5859;
}
if (counter60mnt == 5800){
counter60mnt = 5759;
}
if (counter60mnt == 5700){
counter60mnt = 5659;
}
if (counter60mnt == 5600){
counter60mnt = 5559;
}
if (counter60mnt == 5500){
counter60mnt = 5459;
}
if (counter60mnt == 5400){
counter60mnt = 5359;
}
if (counter60mnt == 5300){
counter60mnt = 5359;
}
if (counter60mnt == 5200){
counter60mnt = 5159;
}
if (counter60mnt == 5100){
counter60mnt = 5059;
}
if (counter60mnt == 5000){
counter60mnt = 4959;
}
if (counter60mnt == 4900){
counter60mnt = 4859;
}
if (counter60mnt == 4800){
counter60mnt = 4759;
}
if (counter60mnt == 4700){
counter60mnt = 4659;
}
if (counter60mnt == 4600){
counter60mnt = 4559;
}
if (counter60mnt == 4700){
counter60mnt = 4459;
}
if (counter60mnt == 4600){
counter60mnt = 4359;
}
if (counter60mnt == 4500){
counter60mnt = 4259;
}
if (counter60mnt == 4400){
counter60mnt = 4159;
}
if (counter60mnt == 4100){
counter60mnt = 4059;
}
if (counter60mnt == 4000){
counter60mnt = 3959;
}
if (counter60mnt == 3900){
counter60mnt = 3859;
}
if (counter60mnt == 3800){
counter60mnt = 3759;
}
if (counter60mnt == 3700){
counter60mnt = 3659;
}
if (counter60mnt == 3600){
counter60mnt = 3559;
}
if (counter60mnt == 3500){
counter60mnt = 3459;
}
if (counter60mnt == 3400){
counter60mnt = 3359;
}
if (counter60mnt == 3300){
counter60mnt = 3259;
}
if (counter60mnt == 3100){
counter60mnt = 3059;
}
if (counter60mnt == 3000){
counter60mnt = 2959;
}
if (counter60mnt == 2900){
counter60mnt = 2859;
}
if (counter60mnt == 2800){
counter60mnt = 2759;
}
if (counter60mnt == 2700){
counter60mnt = 2659;
}
if (counter60mnt == 2600){
counter60mnt = 2559;
}
if (counter60mnt == 2500){
counter60mnt = 2459;
}
if (counter60mnt == 2400){
counter60mnt = 2359;
}
if (counter60mnt == 2300){
counter60mnt = 2259;
}
if (counter60mnt == 2200){
counter60mnt = 2159;
}
if (counter60mnt == 2100){
counter60mnt = 2059;
}
if (counter60mnt == 2000){
counter60mnt = 1959;
}
if (counter60mnt == 1900){
counter60mnt = 2859;
}
if (counter60mnt == 1800){
counter60mnt = 1759;
}
if (counter60mnt == 1700){
counter60mnt = 1659;
}
if (counter60mnt == 1600){
counter60mnt = 1559;
}
if (counter60mnt == 1500){
counter60mnt = 1459;
}
if (counter60mnt == 1400){
counter60mnt = 1359;
}
if (counter60mnt == 1300){
counter60mnt = 1259;
}
if (counter60mnt == 1200){
counter60mnt = 1159;
}
if (counter60mnt == 1100){
counter60mnt = 1059;
}
if (counter60mnt == 1000){
counter60mnt = 959;
}
if (counter60mnt == 900){
counter60mnt = 859;
}
if (counter60mnt == 800){
counter60mnt = 759;
}
if (counter60mnt == 700){
counter60mnt = 659;
}
if (counter60mnt == 600){
counter60mnt = 559;
}
if (counter60mnt == 500){
counter60mnt = 459;
}
if (counter60mnt == 500){
counter60mnt = 459;
}
if (counter60mnt == 400){
counter60mnt = 359;
}
if (counter60mnt == 300){
counter60mnt = 259;
}
if (counter60mnt == 200){
counter60mnt = 159;
}
if (counter60mnt == 100){
counter60mnt = 59;
}
if (counter60mnt == 0){
counter60mnt = 0;
}
sr.set(64,HIGH);
sprintf(buf, "%04d", counter60mnt);
}
}
//end///
digitalWrite(Relay_Power, HIGH);
sr.updateRegisters();
delay(300);
break;
case 2:
sr.setNoUpdate(70, HIGH);
sr.setNoUpdate(6, LOW);
digitalWrite(Relay_Power, LOW);
disp.shiftOutMsg("----");
sr.set(64,LOW);
counter10mnt=1000;
counter20mnt=2000;
counter40mnt=4000;
counter60mnt=6000;
sr.updateRegisters();
delay(300);
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.set(19, LOW);
sr.set(18, HIGH);
sr.set(17, LOW);
sr.set(16, LOW);
sr.updateRegisters();
delay(100);
break;
case 2:
sr.set(19, LOW);
sr.set(18, LOW);
sr.set(17, HIGH);
sr.set(16, LOW);
sr.updateRegisters();
delay(100);
break;
case 3:
sr.set(19, LOW);
sr.set(18, LOW);
sr.set(17, LOW);
sr.set(16, HIGH);
sr.updateRegisters();
delay(100);
break;
case 4:
sr.set(19, HIGH);
sr.set(18, LOW);
sr.set(17, LOW);
sr.set(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();
uint8_t pinValues3[] = {
B11111111,//shift1
B11111111,//shift2
B11111111,//shift3
B11111111,//shift4
B11111111,//shift5
B11111111,//shift6
B11111111,//shift7
B11111111,//shift8
B00000000,//shift9
};
sr.setAll(pinValues3);
delay(1000);
disp.scrollMsg(buf2, sdir, 200);
uint8_t pinValues4[] = {
B00000000,//shift1
B00000000,//shift2
B00000000,//shift3
B00000000,//shift4
B00000000,//shift5
B00000000,//sihft6
B00000000,//shift7
B00000000,//shift8
B00000000,//shift9
};
sr.setAll(pinValues4);
delay(1000);
disp.scrollMsg(buf3, sdir, 200);
break;
}
}
break;
case 1:
uint8_t pinValues1[] = {
B11111111,//shift1
B11111111,//shift2
B11111111,//shift3
B11111111,//shift4
B11111111,//shift5
B11111111,//shift6
B11111111,//shift7
B11111111,//shift8
B00000000,//shift9
};
sr.setAll(pinValues1);
delay(100);
disp.scrollMsg(buf3, sdir, 200);
delay(100);
uint8_t pinValues2[] = {
B00000000,//shift1
B00000000,//shift2
B00000000,//shift3
B00000000,//shift4
B00000000,//shift5
B00000000,//sihft6
B00000000,//shift7
B00000000,//shift8
B00000000,//shift9
};
sr.setAll(pinValues2);
delay(100);
disp.scrollMsg(buf2, sdir, 200);
delay(100);
break;
}
}
Suhu 0°
Suhu 30°
Suhu 40°
Suhu 60°
Waktu 0mnt
Waktu 15mnt
Waktu 30mnt
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