/******************************************************************************* LED POV (Persistance Of Vision) clock/display software v0.00 By: David DiPaola and Erik Nystrom Hardware: -Arduino Duemilanove -3v LEDs on digital I/O ports 2-6 with 100k resistors *******************************************************************************/ //Constants int WIDTH = 500; //Number of us for each "column" of virtual display int DELAY = 2*WIDTH; //Number of us for spacing between columns int BUTTON = 0; //Digital I/O port for the pushbutton //NOTE: This LED setup is for watches worn on the LEFT //wrist, if you wear your watch on the right, reverse //the order of the numbers below. int LED_A = 6; //Digital I/O port for LED A int LED_B = 5; //Digital I/O port for LED B int LED_C = 4; //Digital I/O port for LED C int LED_D = 3; //Digital I/O port for LED D int LED_E = 2; //Digital I/O port for LED E void setup(){ pinMode(0, INPUT); pinMode(LED_A, OUTPUT); pinMode(LED_B, OUTPUT); pinMode(LED_C, OUTPUT); pinMode(LED_D, OUTPUT); pinMode(LED_E, OUTPUT); } void loop(){ drawOne(); drawTwo(); drawColon(); drawFive(); drawNine(); drawP(); drawSpace(); drawSpace(); drawSpace(); drawSpace(); drawSpace(); drawSpace(); } void setLEDs(boolean A, boolean B, boolean C, boolean D, boolean E){ digitalWrite(LED_A, !A); digitalWrite(LED_B, !B); digitalWrite(LED_C, !C); digitalWrite(LED_D, !D); digitalWrite(LED_E, !E); } void drawZero(){ setLEDs(0, 1, 1, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 0, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 0, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 1, 1, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawOne(){ setLEDs(1, 0, 0, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 0, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 1, 1, 1, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 0, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawTwo(){ setLEDs(1, 0, 0, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 1, 0, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 0, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawThree(){ setLEDs(0, 1, 0, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 1, 0, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawFour(){ setLEDs(0, 0, 1, 1, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 1, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 1, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 1, 1, 1, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawFive(){ setLEDs(1, 0, 1, 1, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 1, 0, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawSix(){ setLEDs(0, 1, 1, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 1, 0, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawSeven(){ setLEDs(0, 0, 0, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 1, 0, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 0, 1, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawEight(){ setLEDs(0, 1, 0, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 1, 0, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawNine(){ setLEDs(1, 0, 0, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 1, 1, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawColon(){ setLEDs(0, 0, 0, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 1, 0, 1, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 1, 0, 1, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawA(){ setLEDs(1, 1, 1, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(1, 1, 1, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawP(){ setLEDs(1, 1, 1, 1, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 1, 0, 1); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 0, 1, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); } void drawSpace(){ setLEDs(0, 0, 0, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(WIDTH); setLEDs(0, 0, 0, 0, 0); delayMicroseconds(DELAY); }