« Problems with our Multiplexer / Wiring | Main | 16 Swtiches & 1 Multiplexer »

We Actually Have It Working......!!!!!

Well with some help from Ben Chao in our code we actually have the Multiplexer being recognized by the Arduino. We hooked up 4 switches and wrote a simple If statement to if 2 switches were pushed a LED would light up. Here is our Code for now:

//************VARIABLES****************
int input = 12; // DIGITAL INPUT TO THE MUX
int d= 5; // SELECT PIN D GOING INTO PIN 5
int c= 4; // SELECT PIN C GOING INTO PIN 4
int b= 3; // SELECT PIN B GOING INTO PIN 3
int a= 2; // SELECT PIN A GOING INTO PIN 2
int pin9 = 9; // OUTPUT FOR THE RED LED INTO PIN 9
int pin8 = 8; // OUTPUT FOR THE WHITE LED INTO PIN 8
int pin10 = 10; // OUTPUT FOR THE GREEN LED INTO PIN 10
int pin11 = 11; // OUTPUT FOR THE YELLOW LED INTO PIN 11
int time;

//***********ARRAY TO STORE THE VALUES FROM THE MUX*********************
int val[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//************DIGITAL VALUES TO CONTROL OUR 16 INPUTS*******************
int d_bin[]={LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH};
int c_bin[]={LOW,LOW,LOW,LOW,HIGH,HIGH,HIGH,HIGH,LOW,LOW,LOW,LOW,HIGH,HIGH,HIGH,HIGH};
int b_bin[]={LOW,LOW,HIGH,HIGH,LOW,LOW,HIGH,HIGH,LOW,LOW,HIGH,HIGH,LOW,LOW,HIGH,HIGH};
int a_bin[]={LOW,HIGH,LOW,HIGH,LOW,HIGH,LOW,HIGH,LOW,HIGH,LOW,HIGH,LOW,HIGH,LOW,HIGH};

//aux
int close=0;
int open=0;
int a_val=0;
int b_val=0;
int c_val=0;
int d_val=0;

//**************OPENS SERIAL***************
void setup()
{
beginSerial(9600);
pinMode(input, INPUT);
pinMode(c, OUTPUT);
pinMode(b, OUTPUT);
pinMode(a, OUTPUT);
pinMode(d, OUTPUT);
pinMode(pin11, OUTPUT);
pinMode(pin10, OUTPUT);
pinMode(pin9, OUTPUT);
pinMode(pin8, OUTPUT);
}
void loop() {
for(open=0;open<=15;open++)
{
//************SELECT MUX INPUT*************
a_val=a_bin[open];
b_val=b_bin[open];
c_val=c_bin[open];
d_val=d_bin[open];

digitalWrite(a,a_val);
digitalWrite(b,b_val);
digitalWrite(c,c_val);
digitalWrite(d,d_val);
delay(1);

//***************READ VALUE*******************
val[open] = digitalRead(input); // read input value

Serial.print("For pin ");
Serial.print(open,DEC);
Serial.print(" we are getting ");
Serial.println(val[open]);
delay(300);
}
//*******************IF STATEMENT****************
int greencount = 0;
for (int jj=0;jj<16;jj++)
greencount = greencount + val[jj];
if(greencount == 0)
{
digitalWrite(pin10,HIGH);
}
else
{
if(greencount != 0)
{
digitalWrite(pin10,LOW);
}
}

if ((val[0] == 0) && (val[1] == 0) && (val[2] == 1) && (val[3] == 0) && (val[4] == 0) &&
(val[5] == 0) && (val[6] == 1) && (val[7] == 1) && (val[8] == 0) && (val[9] == 1) &&
(val[10] == 1) && (val[11] == 0) && (val[12] == 0) && (val[13] == 1) && (val[14] == 1) &&
(val[15] == 1))
{
digitalWrite(pin8, HIGH);
digitalWrite(pin9, LOW);
digitalWrite(pin10,LOW);
Serial.println("WINNER!!!!!!!!!!!!!!!!!!!!!!!!!");
}
else
{
int ii;
int total_count = 0;
for (ii = 0; ii < 16; ii++)
{
total_count = total_count + val[ii];
}
if ( total_count == 4 )
{
digitalWrite(pin8, LOW);
digitalWrite(pin9, HIGH);
digitalWrite(pin10,LOW);
Serial.println("THERE IS FOUR ON!!!!!!!!!!!!!!!!!!!!!!!!!");
}
if (total_count == 7 )
{
digitalWrite(pin11, HIGH);
digitalWrite(pin9, LOW);
digitalWrite(pin8, LOW);
digitalWrite(pin10, LOW);
Serial.println("YOUR GETTING CLOSE!!!!!!!!!!!");
}
if ((val[0] == 0) && (val[1] == 0) && (val[2] == 1) && (val[3] == 0) && (val[4] == 0) &&
(val[5] == 0) && (val[6] == 1) && (val[7] == 1) && (val[8] == 0) && (val[9] == 1) &&
(val[10] == 1) && (val[11] == 0) && (val[12] == 0) && (val[13] == 1) && (val[14] == 1) &&
(val[15] == 1))
{
digitalWrite(pin8, HIGH);
digitalWrite(pin9, LOW);
digitalWrite(pin10,LOW);
Serial.println("WINNER!!!!!!!!!!!!!!!!!!!!!!!!!");
}

for ( ii = 0; ii < 16; ii++ )
{
serialWrite(val[ii]);
}
}
delay(10);
printNewline();
Serial.println("Time: ");
time = millis();
Serial.println(time);
}

TrackBack

TrackBack URL for this entry:
http://itp.nyu.edu/~cb1591/cgi-bin/mt/mt-tb.cgi/24

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)