/*-----( Import needed libraries )-----*/ #include #include #include #include /*-----( Declare Constants, Pin Numbers )-----*/ #define STEPS 32 //Number of steps per revolution #define STEPSSIDE 200 //number steps side motor /*-----( Declare objects )-----*/ // create an instance of the stepper class, specifying // the number of steps of the motor and the pins it's // attached to //The pin connections need to be 4 pins connected // to Motor Driver In1, In2, In3, In4 and then the pins entered // here in the sequence 1-3-2-4 for proper sequencing Stepper small_stepperV(STEPS, 4, 6, 5, 7); Stepper small_stepperH(STEPS, 2, 12, 3, 13); void setup() { Serial.begin(9600); // set the speed of the motor small_stepperH.setSpeed(700); small_stepperV.setSpeed(700); pinMode(8, OUTPUT); pinMode(9, OUTPUT); digitalWrite(8, LOW); digitalWrite(9, LOW); } void loop() { tmElements_t tm; RTC.read(tm); // MAJOR IF SECTION - check if the minute is a multiple of 5 //if ((getDigit (tm.Minute,1)) == 5 || (getDigit (tm.Minute,1)) == 0) { // RE-ENABLE FOR 5 MIN UPDATE // Clear EAS screen using an EasyDriver wired with Direction pin to Arduino pin 8, and Step pin to Aruino pin 9 digitalWrite(8, LOW); for (int microsteps = 1; microsteps < 1400; microsteps++) { digitalWrite(9, HIGH); delay(1); digitalWrite(9, LOW); delay(1); } delay(1000); digitalWrite(8, HIGH); for (int microsteps = 1; microsteps < 1400; microsteps++) { digitalWrite(9, HIGH); delay(1); digitalWrite(9, LOW); delay(1); } /* Serial.print("Ok, Hour = "); Serial.print(hourConverter(tm.Hour)); //hourConvert(tm.Hour); // Serial.print(tm.Hour); Serial.write(', '); Serial.print("Minutes = "); print2digits(tm.Minute); //Serial.print(tm.Minute); Serial.println(); */ // Main time extraction section // Extract and Draw HOUR if ((hourConverter(tm.Hour)) == 1) { sketchBlank (); sketchSpaceSml (); sketch1 (); } else if ((hourConverter(tm.Hour)) == 2) { sketchBlank (); sketchSpaceSml (); sketch2 (); } else if ((hourConverter(tm.Hour)) == 3) { sketchBlank (); sketchSpaceSml (); sketch3 (); } else if ((hourConverter(tm.Hour)) == 4) { sketchBlank (); sketchSpaceSml (); sketch4 (); } else if ((hourConverter(tm.Hour)) == 5) { sketchBlank (); sketchSpaceSml (); sketch5 (); } else if ((hourConverter(tm.Hour)) == 6) { sketchBlank (); sketchSpaceSml (); sketch6 (); } else if ((hourConverter(tm.Hour)) == 7) { sketchBlank (); sketchSpaceSml (); sketch7 (); } else if ((hourConverter(tm.Hour)) == 8) { sketchBlank (); sketchSpaceSml (); sketch8 (); } else if ((hourConverter(tm.Hour)) == 9) { sketchBlank (); sketchSpaceSml (); sketch9 (); } else if ((hourConverter(tm.Hour)) == 10) { sketch1 (); sketchSpaceSml (); sketch0 (); } else if ((hourConverter(tm.Hour)) == 11) { sketch1 (); sketchSpaceSml (); sketch1 (); } else if ((hourConverter(tm.Hour)) == 12) { sketch1 (); sketchSpaceSml (); sketch2 (); } // space before minutes sketchBlank (); // Extract and draw Minute 1st digit if ((getDigit (tm.Minute,2)) == 1) { sketch1 (); } else if ((getDigit (tm.Minute,2)) == 2) { sketch2 (); } else if ((getDigit (tm.Minute,2)) == 3) { sketch3 (); } else if ((getDigit (tm.Minute,2)) == 4) { sketch4 (); } else if ((getDigit (tm.Minute,2)) == 5) { sketch5 (); } else { sketch0 (); } // Space before 2nd minute digit sketchSpaceSml (); // Extract and draw Minute 2nd digit if ((getDigit (tm.Minute,1)) == 1) { sketch1 (); } else if ((getDigit (tm.Minute,1)) == 2) { sketch2 (); } else if ((getDigit (tm.Minute,1)) == 3) { sketch3 (); } else if ((getDigit (tm.Minute,1)) == 4) { sketch4 (); } else if ((getDigit (tm.Minute,1)) == 5) { sketch5 (); } else if ((getDigit (tm.Minute,1)) == 6) { sketch6 (); } else if ((getDigit (tm.Minute,1)) == 7) { sketch7 (); } else if ((getDigit (tm.Minute,1)) == 8) { sketch8 (); } else if ((getDigit (tm.Minute,1)) == 9) { sketch9 (); } else { sketch0 (); } // Return cursor to start small_stepperH.step(-11800); //left small_stepperH.step(1200); //right // test to extract 1st or second digit (counts from right) i.e. "12" - digit 1 = 2 /* Serial.print("Min digit 2 = "); Serial.print(getDigit (tm.Minute,2)); Serial.println(); Serial.print("Min digit 1 = "); Serial.print(getDigit (tm.Minute,1)); Serial.println(); // test extracting hour number if ((hourConverter(tm.Hour)) == 9) { Serial.print("Digit hour = Nine!! "); } else if ((hourConverter(tm.Hour)) == 10) { Serial.print("Digit hour = Ten!! "); } Serial.println(); */ delay(59500); // A decent delay between updates //} //remove the above delay and re-anable this line for 5 min updates } // END OF MAIN LOOP void print2digits(int number) { if (number >= 0 && number < 10) { Serial.write('0'); } Serial.print(number); } int getDigit(unsigned int number, int digit) { //Takes a number and returns the x'th digit) for (int i=0; i 12) { number = number - 12; } else if (number == 0) { number = number + 12; } return number; } void sketch1 () { small_stepperH.step(700); //right small_stepperV.step(3100); //up small_stepperH.step(500); //right small_stepperV.step(-3090); //down small_stepperH.step(-1000); //left small_stepperH.step(1700); //right } void sketch2 () { small_stepperV.step(2000); //up small_stepperH.step(1400); //right small_stepperV.step(600); //up small_stepperH.step(-1750); //left small_stepperV.step(500); //up small_stepperH.step(2200); //right small_stepperV.step(-1950); //down small_stepperH.step(-1600); //left small_stepperV.step(-600); //down small_stepperH.step(1600); //right small_stepperV.step(-500); //down small_stepperH.step(-2200); //left small_stepperH.step(2200); //right } void sketch3 () { small_stepperH.step(2000); //right small_stepperV.step(3100); //up small_stepperH.step(-2250); //left small_stepperV.step(-950); //down small_stepperH.step(1700); //right small_stepperV.step(-500); //down small_stepperH.step(-1650); //left small_stepperV.step(-550); //down small_stepperH.step(1650); //right small_stepperV.step(-550); //down small_stepperH.step(-1700); //left small_stepperV.step(-550); //down small_stepperH.step(2150); //right } void sketch4 () { small_stepperH.step(1800); //right small_stepperV.step(3100); //up small_stepperH.step(-950); //left small_stepperV.step(-1500); //down small_stepperH.step(-650); //left small_stepperV.step(1500); //up small_stepperH.step(-600); //left small_stepperV.step(-1950); //down small_stepperH.step(1600); //right small_stepperV.step(-1130); //down small_stepperH.step(630); //right } void sketch5 () { small_stepperV.step(1000); //up small_stepperH.step(1300); //right small_stepperV.step(600); //up small_stepperH.step(-1700); //left small_stepperV.step(1500); //up small_stepperH.step(2100); //right small_stepperV.step(-950); //down small_stepperH.step(-1700); //left small_stepperV.step(-650); //down small_stepperH.step(1700); //right small_stepperV.step(-1450); //down small_stepperH.step(-2200); //left small_stepperH.step(2200); //right } void sketch6 () { small_stepperV.step(3100); //up small_stepperH.step(1750); //right small_stepperV.step(-950); //down small_stepperH.step(-1650); //left small_stepperV.step(-700); //down small_stepperH.step(1650); //right small_stepperV.step(-1450); //down small_stepperH.step(-2200); //left small_stepperH.step(950); //right small_stepperV.step(1500); //up small_stepperH.step(800); //right small_stepperV.step(-1000); //down small_stepperH.step(-1150); //left small_stepperV.step(-480); //down small_stepperH.step(1650); //right } void sketch7 () { small_stepperH.step(1250); //right small_stepperV.step(2600); //up small_stepperH.step(-1100); //left small_stepperV.step(-1200); //down small_stepperH.step(-600); //left small_stepperV.step(1670); //up small_stepperH.step(2200); //right small_stepperV.step(-3020); //down small_stepperH.step(-900); //left small_stepperH.step(1000); //right } void sketch8 () { small_stepperV.step(3100); //up small_stepperH.step(1750); //right small_stepperV.step(-950); //down small_stepperH.step(-1650); //left small_stepperV.step(-700); //down small_stepperH.step(1150); //right small_stepperV.step(1200); //up small_stepperH.step(470); //right small_stepperV.step(-2600); //down small_stepperH.step(-2200); //left small_stepperH.step(950); //right small_stepperV.step(1500); //up small_stepperH.step(800); //right small_stepperV.step(-1000); //down small_stepperH.step(-1160); //left small_stepperV.step(-500); //down small_stepperH.step(1700); //right } void sketch9 () { small_stepperH.step(1250); //right small_stepperV.step(2650); //up small_stepperH.step(-1100); //left small_stepperV.step(-1200); //down small_stepperH.step(1050); //right small_stepperV.step(-450); //down small_stepperH.step(-1550); //left small_stepperV.step(2050); //up small_stepperH.step(2150); //right small_stepperV.step(-3050); //down small_stepperH.step(-900); //left small_stepperH.step(1000); //right } void sketch0 () { small_stepperV.step(3100); //up small_stepperH.step(1850); //right small_stepperV.step(-3050); //down small_stepperH.step(-2200); //left small_stepperH.step(800); //right small_stepperV.step(2500); //up small_stepperH.step(850); //right small_stepperV.step(-2000); //down small_stepperH.step(-1150); //left small_stepperV.step(-530); //down small_stepperH.step(1800); //right } void sketchBlank () { small_stepperH.step(2000); //right } void sketchSpaceSml () { small_stepperH.step(500); //right }