Code:
//Mux control pinsint s0 = 8;
int s0 = 8;
int s1 = 9;
int s2 = 10;
int s3 = 11;
//Mux in "SIG" pin
int SIG_pin_0 = 0;
int SIG_pin_1 = 1;
void setup(){
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
digitalWrite(s0, LOW);
digitalWrite(s1, LOW);
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
Serial.begin(9600);
}
void loop(){
//Loop through and read all 16 values
//Reports back Value at channel 6 is: 346
for(int i = 0; i < 16; i ++){
Serial.print("Valuehannel ");
Serial.print(i);
Serial.print("is;
Serial.println(readMux(i)); <---------------mao ni ang call sa first mux, iya gibasa ang value sa mux at channel i
Serial.println(readMux2(i));<--------------mao ni call sa second mux,
delay(1000);
}
}
int readMux(int channel){ < --------------------- mao ni ang readMux function na gi call sa taas
int controlPin[] = {s0, s1, s2, s3};
int muxChannel[16][4]={
{0,0,0,0}, //channel 0
{1,0,0,0}, //channel 1
{0,1,0,0}, //channel 2
{1,1,0,0}, //channel 3
{0,0,1,0}, //channel 4
{1,0,1,0}, //channel 5
{0,1,1,0}, //channel 6
{1,1,1,0}, //channel 7
{0,0,0,1}, //channel 8
{1,0,0,1}, //channel 9
{0,1,0,1}, //channel 10
{1,1,0,1}, //channel 11
{0,0,1,1}, //channel 12
{1,0,1,1}, //channel 13
{0,1,1,1}, //channel 14
{1,1,1,1} //channel 15
};
int readMux2(int channel){ < --------------------- kung duha na ka mux, buhat ug laing name sa second mux, dre is readMux2
int controlPin[] = {s0, s1, s2, s3};
int muxChannel2[16][4]={ <--------------------laing name sad sa channel, muxChannel2
{0,0,0,0}, //channel 0
{1,0,0,0}, //channel 1
{0,1,0,0}, //channel 2
{1,1,0,0}, //channel 3
{0,0,1,0}, //channel 4
{1,0,1,0}, //channel 5
{0,1,1,0}, //channel 6
{1,1,1,0}, //channel 7
{0,0,0,1}, //channel 8
{1,0,0,1}, //channel 9
{0,1,0,1}, //channel 10
{1,1,0,1}, //channel 11
{0,0,1,1}, //channel 12
{1,0,1,1}, //channel 13
{0,1,1,1}, //channel 14
{1,1,1,1} //channel 15
};
//loop through the 4 sig <-------------ignore sa ni na block for now. mao na ni nagsend ug data through midi
for(int i = 0; i < 4; i ++){
MIDImessage(176, controlPin[i], muxChannel[channel][i]);
}
//read the value at the SIG pin
int val = analogRead(SIG_pin_0);
int val2 = analogRead(SIG_pin_1);<-----------------e add ni na analog read. mao ni output sa second mux anolog pin 1 sa arduino
//return the value
return val;
}
void MIDImessage(byte command, byte data1, byte data2) //pass values out through standard Midi Command
{
Serial.write(command);
Serial.write(data1);
Serial.write(data2); }
tan awa ang bisaya na comment sa code boss. di nako ma assure na dagan ni until mag set up jud ug hardware. I suggest buy sa ug mux then wire them up . test sa dayon sa channel 0.
1. channel 0 in mux #1
2. channel 0 in mux #2
3. channel 1 in mux #1
4 channel 1 in mux # 2...
and so on....
in ana na sya kay common man iyang "binary" pins s0,s1,s2 ug s3 sa duha ka mux. basically, ig trigger nimo anang upat ka pins like 1011, ma send na simultaenously sa duha ka mux. imo nalang basahan kada mux tagsa tagsa one at a time