I'm trying to use a Mux Shield in a way that it would have M0 and M1 sending analog in data over serial, and having M2 print digital data received via serial.
I'm trying to get both to work simultaneously in MaxMSP, and am wondering if it is even possible to both send and received different streams of serial data at the same time; although I had figured that if should be doing that as long as I'm not using a write function in the Arduino code. Here's my sketch so far as I've written it. Sorry if its a tad messy.
Thanks in advance!
//Attempting mux0 and mux1 analog in, and mux2 digital out
#define CONTROL0 5
#define CONTROL1 4
#define CONTROL2 3
#define CONTROL3 2
int maxData;
int mux0array[16];
int mux1array[16];
int A;
int B;
int C;
int D;
void setup()
{
Serial.begin(28800);
pinMode(CONTROL0, OUTPUT);
pinMode(CONTROL1, OUTPUT);
pinMode(CONTROL2, OUTPUT);
pinMode(CONTROL3, OUTPUT);
}
void loop() {
for (int i=0; i<16; i++)
{
digitalWrite(CONTROL0, (i&15)>>3);
digitalWrite(CONTROL1, (i&7)>>2);
digitalWrite(CONTROL2, (i&3)>>1);
digitalWrite(CONTROL3, (i&1));
mux0array[i] = analogRead(0);
Serial.print("mux0array: ");
for (int i=0; i<16; i++)
{
Serial.print(mux0array[i]);
Serial.print("-");
}
Serial.println();
}
for (int i=0; i<16; i++)
{
digitalWrite(CONTROL0, (i&15)>>3);
digitalWrite(CONTROL1, (i&7)>>2);
digitalWrite(CONTROL2, (i&3)>>1);
digitalWrite(CONTROL3, (i&1));
mux1array[i] = analogRead(1);
Serial.print("mux1array: ");
for (int i=0; i<16; i++)
{
Serial.print(mux1array[i]);
Serial.print("-");
}
Serial.println();
}
{
pinMode(16, OUTPUT);
}
while(Serial.available() > 0) {
maxData = Serial.read();
}
if (maxData == 0)
{
A = 2;
B = 2;
C = 2;
D = 2;
}
if (maxData == 1)
{
A = 0;
B = 0;
C = 0;
D = 0;
}
if (maxData == 3)
{
A = 1;
B = 0;
C = 0;
D = 0;
}
if (maxData == 5)
{
A = 0;
B = 1;
C = 0;
D = 0;
}
if (maxData == 7)
{
A = 1;
B = 1;
C = 0;
D = 0;
}
{
digitalWrite(16, HIGH);
}
for (int i=0; i<16; i++)
digitalWrite(CONTROL0, (D)); //S3
digitalWrite(CONTROL1, (C)); //S2
digitalWrite(CONTROL2, (B)); //S1
digitalWrite(CONTROL3, (A)); //S0
}