Friday, May 11, 2012

WE HAVE A PROJECT!!

After playing around with the code and some confusing and frustrating times, we now have everything working!

There are some timing kinks that I don't really know how to fix and I don't know if I will figure it out. The IR sensor isn't very reliable but it gets the job done.

Here is a video of the working piece:


And the code:


//array of power and ground pins for specific color LEDs
//white
int pxlArray[4] = {0,2,4,6};
int gndArray[4] = {7,9,11,13};

//red
int predArray[4] = {0,2,4,6};
int gredArray[3] = {8,10,12};

//green
int pgreenArray[3] = {1,3,5};
int ggreenArray[4] = {7,9,11,13};

//blue
int pblueArray[3] = {1,3,5};
int gblueArray[3] = {8,10,12};

//array of power and ground pins for LEDs
int pallArray[7] = {0,1,2,3,4,5,6};
int gallArray[7] = {7,8,9,10,11,12,13};


//randomizing integers
int pxlRandom;
int gndRandom;

//sensor data
int irSensor = A0;
int irSensorData = 0;
int irSensorMap = 0;

void setup () {
 

  //make array of LED pins outputs
  for(int ii = 0; ii < 4; ii++) {
    pinMode(pxlArray[ii], OUTPUT);
    pinMode(gndArray[ii], OUTPUT);
    pinMode(predArray[ii], OUTPUT);
    pinMode(gredArray[ii], OUTPUT);
    pinMode(pgreenArray[ii], OUTPUT);
    pinMode(ggreenArray[ii], OUTPUT);
    pinMode(pblueArray[ii], OUTPUT);
    pinMode(gblueArray[ii], OUTPUT);
    pinMode(pallArray[ii], OUTPUT);
    pinMode(gallArray[ii], OUTPUT);
  }

  //make A0 pin an input for IR sensor
  pinMode(irSensor, INPUT);

}

void loop () {
   //set irSensorData and irSensorMap value
  irSensorData = analogRead(irSensor);
  irSensorMap = map(irSensorData, 0, 1023, 0, 18);

  //if statements
  if(irSensorMap == 0) {
    pxlRandom = random(0,3);
    gndRandom = random(0,4);

    for (int aa = 0; aa < 750; aa++) {
    digitalWrite(pblueArray[pxlRandom], HIGH);
    digitalWrite(gblueArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(pblueArray[pxlRandom], LOW);
    digitalWrite(gblueArray[gndRandom], LOW);
    delay(0);
    digitalWrite(predArray[pxlRandom], HIGH);
    digitalWrite(gredArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(predArray[pxlRandom], LOW);
    digitalWrite(gredArray[gndRandom], LOW);
    delay(0);
    }
    analogRead(irSensor);
    delay(250);
 
  }

  if(irSensorMap == 1) {
    pxlRandom = random(0,3);
    gndRandom = random(0,4);

    for (int aa = 0; aa < 500; aa++) {
    digitalWrite(pblueArray[pxlRandom], HIGH);
    digitalWrite(gblueArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(pblueArray[pxlRandom], LOW);
    digitalWrite(gblueArray[gndRandom], LOW);
    delay(0);
    digitalWrite(pxlArray[pxlRandom], HIGH);
    digitalWrite(gndArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(pxlArray[pxlRandom], LOW);
    digitalWrite(gndArray[gndRandom], LOW);
    delay(0);
    }
    analogRead(irSensor);
 
    delay(200);
  }

  if(irSensorMap == 2) {
    pxlRandom = random(0,3);
    gndRandom = random(0,4);

    for (int aa = 0; aa < 250; aa++) {
    digitalWrite(pgreenArray[pxlRandom], HIGH);
    digitalWrite(ggreenArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(pgreenArray[pxlRandom], LOW);
    digitalWrite(ggreenArray[gndRandom], LOW);
    delay(0);
    digitalWrite(pxlArray[pxlRandom], HIGH);
    digitalWrite(gndArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(pxlArray[pxlRandom], LOW);
    digitalWrite(gndArray[gndRandom], LOW);
    delay(0);
    }
    analogRead(irSensor);
    delay(100);
  }

  if(irSensorMap == 3) {
    pxlRandom = random(0,4);
    gndRandom = random(0,4);

    for (int aa = 0; aa < 50; aa++) {
    digitalWrite(pgreenArray[pxlRandom], HIGH);
    digitalWrite(ggreenArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(pgreenArray[pxlRandom], LOW);
    digitalWrite(ggreenArray[gndRandom], LOW);
    delay(0);
    digitalWrite(predArray[pxlRandom], HIGH);
    digitalWrite(gredArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(predArray[pxlRandom], LOW);
    digitalWrite(gredArray[gndRandom], LOW);
    delay(0);
    }
    analogRead(irSensor);
 
    delay(50);
  }

  if(irSensorMap == 4) {
    pxlRandom = random(0,4);
    gndRandom = random(0,4);

    for (int aa = 0; aa < 10; aa++) {
    digitalWrite(predArray[pxlRandom], HIGH);
    digitalWrite(gredArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(predArray[pxlRandom], LOW);
    digitalWrite(gredArray[gndRandom], LOW);
    delay(0);
    digitalWrite(pxlArray[pxlRandom], HIGH);
    digitalWrite(gndArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(pxlArray[pxlRandom], LOW);
    digitalWrite(gndArray[gndRandom], LOW);
    delay(0);
    }
    analogRead(irSensor);
 
    delay(10);
  }

  if(irSensorMap == 5) {
    pxlRandom = random(0,4);
    gndRandom = random(0,4);

    for (int aa = 0; aa < 10; aa++) {
    digitalWrite(predArray[pxlRandom], HIGH);
    digitalWrite(gredArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(predArray[pxlRandom], LOW);
    digitalWrite(gredArray[gndRandom], LOW);
    delay(0);
    digitalWrite(pxlArray[pxlRandom], HIGH);
    digitalWrite(gndArray[gndRandom], HIGH);
    delay(1);
    digitalWrite(pxlArray[pxlRandom], LOW);
    digitalWrite(gndArray[gndRandom], LOW);
    delay(0);
    }
    analogRead(irSensor);
 
    delay(10);
  }

  if(irSensorMap >= 6) {
    //PARTY!
       for(int cc = 0; cc < 10; cc++) {
        for (int aa = 6; aa > -1; aa--) {
          for(int bb = 0; bb < 7; bb++) {
            digitalWrite(pallArray[aa], HIGH);
            digitalWrite(gallArray[bb], HIGH);
            delay(2);
            digitalWrite(pallArray[aa], LOW);
            digitalWrite(gallArray[bb], LOW);
            delay(0);
            digitalWrite(pallArray[bb], HIGH);
            digitalWrite(gallArray[aa], HIGH);
            delay(2);
            digitalWrite(pallArray[bb], LOW);
            digitalWrite(gallArray[aa], LOW);
            delay(0);
          }
        }
      }
    for(int cc = 0; cc < 10; cc++) {
       for (int aa = 0; aa < 7; aa++) {
         for(int bb = 0; bb < 7; bb++) {
            digitalWrite(pallArray[aa], HIGH);
            digitalWrite(gallArray[bb], HIGH);
            delay(2);
            digitalWrite(pallArray[aa], LOW);
            digitalWrite(gallArray[bb], LOW);
            delay(0);
            digitalWrite(pallArray[bb], HIGH);
            digitalWrite(gallArray[aa], HIGH);
            delay(2);
            digitalWrite(pallArray[bb], LOW);
            digitalWrite(gallArray[aa], LOW);
            delay(0);
          }
        }
      }
    analogRead(irSensor);
  }

}

No comments:

Post a Comment