├── README.md └── Glediator-sdcard.ino /README.md: -------------------------------------------------------------------------------- 1 | # Glediator-from-sdcard 2 | Arduino sketch that loads saved fx data from Glediator and runs it standalone. 3 | 4 | Please see my project page on Hackaday.io 5 | https://hackaday.io/project/5714-glediator-from-sdcard-arduino 6 | -------------------------------------------------------------------------------- /Glediator-sdcard.ino: -------------------------------------------------------------------------------- 1 | // Glediator Arduino UNO sketch by Jens Andrée 2 | // 500k bauds with 80 pixels no problem 3 | // sdcard stream for stand-alone operation. 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #define NUM_LEDS 80 10 | #define DATA_PIN 2 11 | #define CLOCK_PIN 3 12 | #define CMD_NEW_DATA 1 13 | #define BAUD_RATE 500000 //if using Glediator via serial 14 | 15 | File fxdata; 16 | CRGB leds[NUM_LEDS]; 17 | 18 | void setup() 19 | { 20 | FastLED.addLeds(leds, NUM_LEDS); //se doc for different LED strips 21 | // Serial.begin(BAUD_RATE); // when using Glediator via usb 22 | Serial.begin(115200); 23 | 24 | for(int y = 0 ; y < NUM_LEDS ; y++) 25 | { 26 | leds[y] = CRGB::Black; // set all leds to black during setup 27 | } 28 | FastLED.show(); 29 | 30 | pinMode(10, OUTPUT); // CS/SS pin as output for SD library to work. 31 | digitalWrite(10, HIGH); // workaround for sdcard failed error... 32 | 33 | if (!SD.begin(4)) 34 | { 35 | Serial.println("sdcard initialization failed!"); 36 | return; 37 | } 38 | Serial.println("sdcard initialization done."); 39 | 40 | // test file open 41 | fxdata = SD.open("myanim.dat"); // read only 42 | if (fxdata) 43 | { 44 | Serial.println("file open ok"); 45 | fxdata.close(); 46 | } 47 | } 48 | 49 | int serialGlediator () 50 | { 51 | while (!Serial.available()) {} 52 | return Serial.read(); 53 | } 54 | 55 | void loop() 56 | { 57 | 58 | // uncomment for Glediator 59 | // while (fileGlediator () != CMD_NEW_DATA) {} 60 | // Serial.readBytes((char*)leds, NUM_LEDS*3); 61 | 62 | fxdata = SD.open("myanim.dat"); // read only 63 | if (fxdata) 64 | { 65 | Serial.println("file open ok"); 66 | } 67 | 68 | while (fxdata.available()) 69 | { 70 | fxdata.readBytes((char*)leds, NUM_LEDS*3); 71 | FastLED.show(); 72 | delay(50); // set the speed of the animation. 20 is appx ~ 500k bauds 73 | } 74 | 75 | // close the file in order to prevent hanging IO or similar throughout time 76 | fxdata.close(); 77 | } 78 | --------------------------------------------------------------------------------