LOL Shield. Liquid Box
I wanted to use the lol shield to create an illusion of liquid that obey the law of gravity. For each side of the box, I created three functions: sideA, Transition animation A->B, sideB and so on. For that I used 4 photoresistors, one for each side and played with the sensor’s ranges. Whenever one photoresistor is at the bottom, its value is low and the liquid shifts.
code >>
/// #include <Charliplexing.h> //Imports the library, which needs to be byte line = 0; //Row counter char buffer[10]; int value; int threshold1 = 300; int threshold2 = 250; int threshold3 = 350; int threshold4 = 250; int lightPin1 = 1; // A1 = H1 int lightPin2 = 2; // A2 = V1 int lightPin3 = 5; // A3 = H2 int lightPin4 = 4; // A4 = V2 void setup() { LedSign::Init(); //Initializes the screen Serial.begin(9600); } void loop(){ Serial.print("lightPin1 = "); Serial.print(analogRead(lightPin1)); Serial.print(" lightPin2 = "); Serial.print(analogRead(lightPin2)); Serial.print(" lightPin3 = "); Serial.print(analogRead(lightPin3)); Serial.print(" lightPin4 = "); Serial.println(analogRead(lightPin4)); if((analogRead(lightPin1) < threshold1) && (analogRead(lightPin2) > threshold2) && (analogRead(lightPin3) > threshold3) && (analogRead(lightPin4) > threshold4)){ h1(); } if((analogRead(lightPin1) < 750) && (analogRead(lightPin1) > threshold1+10) && (analogRead(lightPin3) > threshold3) && (analogRead(lightPin4) > threshold4)){ h1tov1(); } if((analogRead(lightPin1) > threshold1) && (analogRead(lightPin2) < threshold2) && (analogRead(lightPin3) > threshold3) && (analogRead(lightPin4) > threshold4)){ v1(); } if((analogRead(lightPin1) > threshold1) && (analogRead(lightPin2) < 750) && (analogRead(lightPin2) > threshold2+50) && (analogRead(lightPin3) > threshold3) && (analogRead(lightPin4) > threshold4)){ v1toh2(); } if ((analogRead(lightPin2) > threshold2) && (analogRead(lightPin3) < threshold3) && (analogRead(lightPin4) > threshold4) && (analogRead(lightPin1) > threshold1)){ h2(); } if((analogRead(lightPin1) > threshold1) && (analogRead(lightPin3) < 750) && (analogRead(lightPin3) > threshold3+30) && (analogRead(lightPin4) > threshold4)){ h2tov2(); } if((analogRead(lightPin1) > threshold1) && (analogRead(lightPin2) > threshold2) && (analogRead(lightPin3) > threshold3) && (analogRead(lightPin4) < threshold4)){ v2(); } if((analogRead(lightPin4) < 600) && (analogRead(lightPin4) > threshold4+100) && (analogRead(lightPin3) > threshold3-100) && (analogRead(lightPin1) > threshold1) && (analogRead(lightPin2) > threshold2)){ v2toh1(); } delay(100); } void DisplayBitMap(int lineint) { //int data[9] = {95, 247, 123, 511, 255, 1, 5, 31, 15}; //for(line = 0; line < 9; line++) { for (byte led=0; led<14; ++led) { if (lineint & (1<<led)) { LedSign::Set(led, line, 1); } else { LedSign::Set(led, line, 0); } } line++; if(line >= 9) line = 0; } //Functions:// void h1(){ DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); } void h1tov1 (){ // delay(50); // DisplayBitMap(0); // DisplayBitMap(0); // DisplayBitMap(0); // DisplayBitMap(0); // DisplayBitMap(0); // DisplayBitMap(16383); // DisplayBitMap(16383); // DisplayBitMap(16383); // DisplayBitMap(16383); // delay(50); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(1); DisplayBitMap(8191); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); delay(100); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(1); DisplayBitMap(3); DisplayBitMap(4095); DisplayBitMap(8191); DisplayBitMap(16383); DisplayBitMap(16383); delay(100); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(1); DisplayBitMap(3); DisplayBitMap(31); DisplayBitMap(511); DisplayBitMap(4095); DisplayBitMap(8191); DisplayBitMap(16383); delay(100); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(3); DisplayBitMap(15); DisplayBitMap(63); DisplayBitMap(255); DisplayBitMap(2047); DisplayBitMap(4095); DisplayBitMap(8191); delay(100); DisplayBitMap(0); DisplayBitMap(1); DisplayBitMap(3); DisplayBitMap(15); DisplayBitMap(127); DisplayBitMap(255); DisplayBitMap(1023); DisplayBitMap(4095); DisplayBitMap(4095); delay(50); DisplayBitMap(1); DisplayBitMap(3); DisplayBitMap(15); DisplayBitMap(31); DisplayBitMap(63); DisplayBitMap(255); DisplayBitMap(511); DisplayBitMap(1023); DisplayBitMap(2047); delay(50); DisplayBitMap(3); DisplayBitMap(7); DisplayBitMap(31); DisplayBitMap(31); DisplayBitMap(63); DisplayBitMap(127); DisplayBitMap(511); DisplayBitMap(511); DisplayBitMap(1023); delay(50); DisplayBitMap(15); DisplayBitMap(15); DisplayBitMap(31); DisplayBitMap(31); DisplayBitMap(63); DisplayBitMap(127); DisplayBitMap(255); DisplayBitMap(255); DisplayBitMap(511); delay(50); DisplayBitMap(31); DisplayBitMap(31); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(127); DisplayBitMap(127); DisplayBitMap(255); delay(100); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); } void v1() { DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); } void v1toh2() { DisplayBitMap(127); DisplayBitMap(127); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(31); DisplayBitMap(31); delay(100); DisplayBitMap(255); DisplayBitMap(127); DisplayBitMap(127); DisplayBitMap(127); DisplayBitMap(63); DisplayBitMap(63); DisplayBitMap(31); DisplayBitMap(15); DisplayBitMap(15); delay(100); DisplayBitMap(511); DisplayBitMap(255); DisplayBitMap(255); DisplayBitMap(127); DisplayBitMap(127); DisplayBitMap(63); DisplayBitMap(15); DisplayBitMap(7); DisplayBitMap(3); delay(100); DisplayBitMap(2047); DisplayBitMap(511); DisplayBitMap(255); DisplayBitMap(127); DisplayBitMap(63); DisplayBitMap(31); DisplayBitMap(15); DisplayBitMap(7); DisplayBitMap(1); delay(100); DisplayBitMap(4095); DisplayBitMap(1023); DisplayBitMap(511); DisplayBitMap(255); DisplayBitMap(63); DisplayBitMap(31); DisplayBitMap(7); DisplayBitMap(1); DisplayBitMap(0); delay(100); DisplayBitMap(8191); DisplayBitMap(2047); DisplayBitMap(1023); DisplayBitMap(127); DisplayBitMap(127); DisplayBitMap(31); DisplayBitMap(1); DisplayBitMap(0); DisplayBitMap(0); delay(100); DisplayBitMap(16383); DisplayBitMap(8191); DisplayBitMap(2047); DisplayBitMap(511); DisplayBitMap(127); DisplayBitMap(44); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); delay(100); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(8191); DisplayBitMap(2047); DisplayBitMap(1012); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); delay(100); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(4095); DisplayBitMap(1472); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); delay(100); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(8191); DisplayBitMap(2560); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); delay(100); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); } void h2() { DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); } void h2tov2() { DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); delay(100); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16382); DisplayBitMap(8192); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); delay(100); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16382); DisplayBitMap(16368); DisplayBitMap(15360); DisplayBitMap(8192); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); delay(100); DisplayBitMap(16383); DisplayBitMap(16382); DisplayBitMap(16380); DisplayBitMap(16352); DisplayBitMap(16128); DisplayBitMap(12288); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); delay(100); DisplayBitMap(16382); DisplayBitMap(16380); DisplayBitMap(16376); DisplayBitMap(16352); DisplayBitMap(16256); DisplayBitMap(14336); DisplayBitMap(8192); DisplayBitMap(0); DisplayBitMap(0); delay(100); DisplayBitMap(16380); DisplayBitMap(16376); DisplayBitMap(16368); DisplayBitMap(16320); DisplayBitMap(16256); DisplayBitMap(15360); DisplayBitMap(14336); DisplayBitMap(8192); DisplayBitMap(0); delay(100); DisplayBitMap(16368); DisplayBitMap(16368); DisplayBitMap(16352); DisplayBitMap(16320); DisplayBitMap(16320); DisplayBitMap(15872); DisplayBitMap(14336); DisplayBitMap(12288); DisplayBitMap(8192); delay(100); DisplayBitMap(16352); DisplayBitMap(16352); DisplayBitMap(16320); DisplayBitMap(16320); DisplayBitMap(16256); DisplayBitMap(15872); DisplayBitMap(15872); DisplayBitMap(14336); DisplayBitMap(12288); delay(100); DisplayBitMap(16320); DisplayBitMap(16352); DisplayBitMap(16320); DisplayBitMap(16256); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(15872); DisplayBitMap(15360); DisplayBitMap(14336); delay(100); DisplayBitMap(16128); DisplayBitMap(16256); DisplayBitMap(16256); DisplayBitMap(16256); DisplayBitMap(16256); DisplayBitMap(16256); DisplayBitMap(16128); DisplayBitMap(15872); DisplayBitMap(15360); delay(100); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16256); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(15872); delay(100); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); } void v2() { DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); } void v2toh1() { DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); delay(100); DisplayBitMap(15872); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16256); delay(100); DisplayBitMap(15360); DisplayBitMap(15872); DisplayBitMap(15872); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16128); DisplayBitMap(16256); DisplayBitMap(16256); DisplayBitMap(16320); delay(100); DisplayBitMap(14336); DisplayBitMap(15360); DisplayBitMap(15872); DisplayBitMap(15872); DisplayBitMap(16128); DisplayBitMap(16256); DisplayBitMap(16256); DisplayBitMap(16320); DisplayBitMap(16352); delay(100); DisplayBitMap(8192); DisplayBitMap(13312); DisplayBitMap(15360); DisplayBitMap(16128); DisplayBitMap(16256); DisplayBitMap(16256); DisplayBitMap(16320); DisplayBitMap(16320); DisplayBitMap(16368); delay(100); DisplayBitMap(0); DisplayBitMap(12288); DisplayBitMap(14336); DisplayBitMap(15872); DisplayBitMap(16256); DisplayBitMap(16256); DisplayBitMap(16352); DisplayBitMap(16368); DisplayBitMap(16376); delay(100); DisplayBitMap(0); DisplayBitMap(8192); DisplayBitMap(12288); DisplayBitMap(15360); DisplayBitMap(16128); DisplayBitMap(16320); DisplayBitMap(16368); DisplayBitMap(16376); DisplayBitMap(16380); delay(100); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(8192); DisplayBitMap(12288); DisplayBitMap(16000); DisplayBitMap(16352); DisplayBitMap(16376); DisplayBitMap(16380); DisplayBitMap(16382); delay(100); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(4096); DisplayBitMap(15040); DisplayBitMap(16352); DisplayBitMap(16376); DisplayBitMap(16382); DisplayBitMap(16383); delay(100); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(3712); DisplayBitMap(16368); DisplayBitMap(16380); DisplayBitMap(16383); DisplayBitMap(16383); delay(100); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(80); DisplayBitMap(16376); DisplayBitMap(16382); DisplayBitMap(16383); DisplayBitMap(16383); delay(100); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(4); DisplayBitMap(16382); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); delay(100); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(0); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); DisplayBitMap(16383); delay(100); }
Reply