/* Major Studio: Computation - First Project, THIRD iteration. Expressing time with LEDs. 2 different buttons functionality for either pressed, as well as both pressed, and none pressed. February 2009. Joe Saavedra */ int ledPinG = 9; int ledPinR = 10; int ledPinB = 11; int button1 = 0; int state1 = 0; int button2 = 1; int state2 = 0; //int button3 = 2; //int state3 = 0; int time = 250; int seconds; int minutes; int M = 1; int counter1 = 1; int counter2 = 1; int test1 = 0; int test2 = 0; int valR = 0; int valG = 0; int valB = 0; int GT = 10; int RT = 10; int BT = 10; void setup(){ pinMode(ledPinG, OUTPUT); pinMode(ledPinR, OUTPUT); pinMode(ledPinB, OUTPUT); //pinMode(button1, INPUT); //pinMode(button2, INPUT); Serial.begin(9600); } void loop(){ state1 = analogRead(button1); state2 = analogRead(button2); //state3 = analogRead(button3); test1 = counter1%2; test2 = counter2%2; Serial.print("Button1: "); Serial.println(test1); Serial.println(" "); Serial.print("Button2: "); Serial.println(test2); Serial.println(" "); /*Serial.print("Button3: "); Serial.println(state3); Serial.println(" "); */ debouncer(); if (state1 < 1020 && state2 < 1020){ digitalWrite(ledPinG, LOW); digitalWrite(ledPinR, LOW); digitalWrite(ledPinB, LOW); for (valR = 10; valR <= 255; valR+=5){ analogWrite(ledPinR, valR); delay(50); debouncer(); //checkstate(); } for (valG = 10; valG <= 255; valG+=5){ analogWrite(ledPinG, valG); delay(50); debouncer(); //checkstate(); } for (valB = 10; valB <= 255; valB+=5){ analogWrite(ledPinB, valB); delay(50); //debouncer(); //checkstate(); } redD(RT); greenD(GT); blueD(BT); delay(50); debouncer(); } if (state1 > 1020 && state2 < 1020){ for (valR = 255; valR >=1; valR-=1){ analogWrite(ledPinR, valR); delay(10); } for (valG = 255; valG >=1; valG-=1){ analogWrite(ledPinG, valG); delay(10); } for (valB = 255; valB >=1; valB-=1){ analogWrite(ledPinB, valB); delay(10); } } if (state1 < 1020 && state2 > 1020){ GT = random(5,50); RT = random(5,50); BT = random(5,50); green(GT); red(RT); blue(BT); greenD(GT); redD(RT); blueD(BT); debouncer(); } if (state1 > 1020 && state2 > 1020){ for (valR = 10; valR <= 255; valR+=5){ analogWrite(ledPinR, valR); analogWrite(ledPinG, valR); analogWrite(ledPinB, valR); delay(10); debouncer(); //checkstate(); } for (valB = 255; valB >=1; valB-=1){ analogWrite(ledPinB, valB); analogWrite(ledPinR, valB); analogWrite(ledPinG, valB); delay(10); } } } void debouncer(){ if (state1 > 1020){ delay (30); if (state1 > 1020){ state1 = state1; counter1++; } else { state1 = 0; } } if (state2 > 1020){ delay (30); if (state2 > 1020){ state2 = state2; counter2++; } else { state2 = 0; } } } void green(int GT){ for (valG = 10; valG <= 255; valG+=5){ analogWrite(ledPinG, valG); delay(GT); debouncer(); //checkstate(); } } void greenD(int GT){ for (valG = 255; valG >= 0; valG-=5){ analogWrite(ledPinG, valG); delay(GT); debouncer(); //checkstate(); } } void red(int RT){ for (valR = 10; valR <= 255; valR+=5){ analogWrite(ledPinR, valR); delay(RT); debouncer(); //checkstate(); } } void redD(int RT){ for (valR = 255; valR >= 0; valR-=5){ analogWrite(ledPinR, valR); delay(RT); debouncer(); //checkstate(); } } void blue(int BT){ for (valB = 10; valB <= 255; valB+=5){ analogWrite(ledPinB, valB); delay(BT); debouncer(); //checkstate(); } } void blueD(int BT){ for (valB = 255; valB >= 0; valB-=5){ analogWrite(ledPinB, valB); delay(BT); debouncer(); //checkstate(); } }