const int SIG = 5;// SIG pin
const int EN = 10;// Enable pin
const int controlPin[4] = {9, 8, 7, 6}; // 4 pins used for binary output
int loopDelay = 100;// delay in loop
const int muxTable[16][4] = {
// s0, s1, s2, s3 channel
{0, 0, 0, 0}, // 0
{1, 0, 0, 0}, // 1
{0, 1, 0, 0}, // 2
{1, 1, 0, 0}, // 3
{0, 0, 1, 0}, // 4
{1, 0, 1, 0}, // 5
{0, 1, 1, 0}, // 6
{1, 1, 1, 0}, // 7
{0, 0, 0, 1}, // 8
{1, 0, 0, 1}, // 9
{0, 1, 0, 1}, // 10
{1, 1, 0, 1}, // 11
{0, 0, 1, 1}, // 12
{1, 0, 1, 1}, // 13
{0, 1, 1, 1}, // 14
{1, 1, 1, 1} // 15
};
void setup() {
for(int i=0; i<4; i++)
{
pinMode(controlPin[i], OUTPUT);// set pin as output
digitalWrite(controlPin[i], HIGH); // set initial state as HIGH
}
pinMode(SIG, OUTPUT);// set SIG pin as output
digitalWrite(SIG, HIGH); // set SIG sends what should be the output
// for low trigger relay it should be LOW
// for HIGH trigger high it should be HIGH
pinMode(EN, OUTPUT);// set EN pin as output
digitalWrite(EN, LOW); // set EN in (enable pin) Low to activate the chip
}
void loop() {
// for(int i=0; i<16; i++)
// {
channelControl(1);
channelControl(5);
// delay(loopDelay);// wait for loopDelay ms
// }
// ledChaserFastWave();
}
void channelControl(int relayChannel)
{
digitalWrite(controlPin[0], muxTable[relayChannel][0]);
digitalWrite(controlPin[1], muxTable[relayChannel][1]);
digitalWrite(controlPin[2], muxTable[relayChannel][2]);
digitalWrite(controlPin[3], muxTable[relayChannel][3]);
}//channelControl end
void ledChaserFastWave() {
// Maju cepat
for (int i = 0; i < 16; i++) {
channelControl(i);
delay(50); // Delay pendek untuk efek chaser cepat
}
// Mundur cepat
for (int i = 14; i >= 0; i--) {
channelControl(i);
delay(50); // Delay pendek untuk efek chaser cepat
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
relay1:VCC
relay1:GND
relay1:IN
relay1:NC
relay1:COM
relay1:NO
relay2:VCC
relay2:GND
relay2:IN
relay2:NC
relay2:COM
relay2:NO
relay3:VCC
relay3:GND
relay3:IN
relay3:NC
relay3:COM
relay3:NO
relay4:VCC
relay4:GND
relay4:IN
relay4:NC
relay4:COM
relay4:NO
relay5:VCC
relay5:GND
relay5:IN
relay5:NC
relay5:COM
relay5:NO
relay6:VCC
relay6:GND
relay6:IN
relay6:NC
relay6:COM
relay6:NO
relay7:VCC
relay7:GND
relay7:IN
relay7:NC
relay7:COM
relay7:NO
relay8:VCC
relay8:GND
relay8:IN
relay8:NC
relay8:COM
relay8:NO
relay9:VCC
relay9:GND
relay9:IN
relay9:NC
relay9:COM
relay9:NO
relay10:VCC
relay10:GND
relay10:IN
relay10:NC
relay10:COM
relay10:NO
relay11:VCC
relay11:GND
relay11:IN
relay11:NC
relay11:COM
relay11:NO
relay12:VCC
relay12:GND
relay12:IN
relay12:NC
relay12:COM
relay12:NO
relay13:VCC
relay13:GND
relay13:IN
relay13:NC
relay13:COM
relay13:NO
relay14:VCC
relay14:GND
relay14:IN
relay14:NC
relay14:COM
relay14:NO
relay15:VCC
relay15:GND
relay15:IN
relay15:NC
relay15:COM
relay15:NO
relay16:VCC
relay16:GND
relay16:IN
relay16:NC
relay16:COM
relay16:NO
mux1:I15
mux1:I14
mux1:I13
mux1:I12
mux1:I11
mux1:I10
mux1:I9
mux1:I8
mux1:I7
mux1:I6
mux1:I5
mux1:I4
mux1:I3
mux1:I2
mux1:I1
mux1:I0
mux1:COM
mux1:S3
mux1:S2
mux1:S1
mux1:S0
mux1:EN
mux1:VCC
mux1:GND
relay17:VCC
relay17:GND
relay17:IN
relay17:NC
relay17:COM
relay17:NO
relay18:VCC
relay18:GND
relay18:IN
relay18:NC
relay18:COM
relay18:NO
relay19:VCC
relay19:GND
relay19:IN
relay19:NC
relay19:COM
relay19:NO
sw1:1
sw1:2
sw1:3
sw2:1
sw2:2
sw2:3
sw3:1
sw3:2
sw3:3