FallShield

Hello all,

This is my Fall inspired Lol Shield dynamic animation!

As demonstrated in class, it operates with a tilt sensor that causes a looped animation to occur when disturbed.


/*
 This file was dynamically created by the Lol Shield Theatre: http://falldeaf.com/lolshield/
 Feel free to drop by and create your own cinema masterpiece 🙂

-falldeaf
 Animation information -
 /////////////////////////
 //title: tree
 //author: Freddie
 //description: pcomp
 /////////////////////////
 //current score: 0 (as of Thursday 17th of November 2011 08:00:57 PM )
 //animation page at: http://falldeaf.com/lolshield/show.php?anim=675
 /////////////////////////

This program is a modification of the Basic LoL Shield Test

Modified by falldeaf on 2/27/2011.

Writen for the LoL Shield, designed by Jimmie Rodgers:
 http://jimmieprodgers.com/kits/lolshield/

This needs the Charliplexing library, which you can get at the
 LoL Shield project page: http://code.google.com/p/lolshield/

Created by Jimmie Rodgers on 12/30/2009.
 Adapted from: http://www.arduino.cc/playground/Code/BitMath

History:
 December 30, 2009 - V1.0 first version written at 26C3/Berlin

This is free software; you can redistribute it and/or
 modify it under the terms of the GNU Version 3 General Public
 License as published by the Free Software Foundation;
 or (at your option) any later version.

This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

*/

#include <Charliplexing.h> //Imports the library, which needs to be
 const int buttonPin = A5; // the number of the pushbutton pin
 //const int ledPin = 13; // the number of the LED pin
 byte line = 0; //Row counter
 char buffer[10];
 int value;
 int buttonState = 0;

void setup()
 {
 LedSign::Init(); //Initializes the screen
 // initialize the LED pin as an output:
 //pinMode(ledPin, OUTPUT);
 // initialize the pushbutton pin as an input:
 pinMode(buttonPin, INPUT);
 }

void loop()
 {
 // read the state of the pushbutton value:
 buttonState = analogRead(buttonPin);

// check if the pushbutton is pressed.
 // if it is, the buttonState is HIGH:
 if (buttonState == LOW) {
 DisplayBitMap(2040);
 DisplayBitMap(4092);
 DisplayBitMap(4094);
 DisplayBitMap(2044);
 DisplayBitMap(2044);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(500);
 }

else {
 // turn LED off:
 // delay(100);
 // DisplayBitMap(2040);
 // DisplayBitMap(4092);
 // DisplayBitMap(4094);
 // DisplayBitMap(2044);
 // DisplayBitMap(2044);
 // DisplayBitMap(1008);
 // DisplayBitMap(192);
 // DisplayBitMap(192);
 // DisplayBitMap(480);
 // delay(3000);
 DisplayBitMap(2040);
 DisplayBitMap(4060);
 DisplayBitMap(4094);
 DisplayBitMap(4092);
 DisplayBitMap(2044);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(100);
 DisplayBitMap(2040);
 DisplayBitMap(4060);
 DisplayBitMap(3838);
 DisplayBitMap(2044);
 DisplayBitMap(4092);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(100);
 DisplayBitMap(2040);
 DisplayBitMap(4060);
 DisplayBitMap(3838);
 DisplayBitMap(2014);
 DisplayBitMap(2044);
 DisplayBitMap(3060);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(100);
 DisplayBitMap(2040);
 DisplayBitMap(4060);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1918);
 DisplayBitMap(1008);
 DisplayBitMap(2244);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(100);
 DisplayBitMap(1976);
 DisplayBitMap(4060);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(2034);
 DisplayBitMap(480);
 DisplayBitMap(2244);
 DisplayBitMap(480);
 delay(100);
 DisplayBitMap(1976);
 DisplayBitMap(3036);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(1016);
 DisplayBitMap(1250);
 DisplayBitMap(480);
 DisplayBitMap(2532);
 delay(100);
 DisplayBitMap(1976);
 DisplayBitMap(3036);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(1016);
 DisplayBitMap(192);
 DisplayBitMap(1250);
 DisplayBitMap(480);
 delay(100);
 DisplayBitMap(1976);
 DisplayBitMap(3036);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(200);
 DisplayBitMap(224);
 DisplayBitMap(1506);
 delay(100);
 DisplayBitMap(1976);
 DisplayBitMap(3036);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(200);
 DisplayBitMap(480);
 delay(100);
 DisplayBitMap(1976);
 DisplayBitMap(3036);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(2032);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(488);
 delay(100);
 DisplayBitMap(1976);
 DisplayBitMap(3036);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(1216);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(100);
 DisplayBitMap(1976);
 DisplayBitMap(3036);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(1216);
 DisplayBitMap(480);
 delay(100);
 DisplayBitMap(1976);
 DisplayBitMap(3036);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(1504);
 delay(100);
 DisplayBitMap(1976);
 DisplayBitMap(3036);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(2000);
 DisplayBitMap(1976);
 DisplayBitMap(3036);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(1000);
 DisplayBitMap(1976);
 DisplayBitMap(3068);
 DisplayBitMap(3830);
 DisplayBitMap(2012);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(1000);
 DisplayBitMap(1976);
 DisplayBitMap(3068);
 DisplayBitMap(3830);
 DisplayBitMap(2044);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(1000);
 DisplayBitMap(1976);
 DisplayBitMap(3068);
 DisplayBitMap(4086);
 DisplayBitMap(2044);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(1000);
 DisplayBitMap(2040);
 DisplayBitMap(3068);
 DisplayBitMap(4086);
 DisplayBitMap(2044);
 DisplayBitMap(1916);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(1000);
 DisplayBitMap(2040);
 DisplayBitMap(3068);
 DisplayBitMap(4086);
 DisplayBitMap(2044);
 DisplayBitMap(2044);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(1000);
 DisplayBitMap(2040);
 DisplayBitMap(4092);
 DisplayBitMap(4086);
 DisplayBitMap(2044);
 DisplayBitMap(2044);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);
 delay(1000);
 DisplayBitMap(2040);
 DisplayBitMap(4092);
 DisplayBitMap(4094);
 DisplayBitMap(2044);
 DisplayBitMap(2044);
 DisplayBitMap(1008);
 DisplayBitMap(192);
 DisplayBitMap(192);
 DisplayBitMap(480);

}
 }

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;
 }