diff --git a/dawn/Synchronizer_Toshiba_SD1091EKE/Synchronizer_Toshiba_SD1091EKE.pde b/dawn/Synchronizer_Toshiba_SD1091EKE/Synchronizer_Toshiba_SD1091EKE.pde new file mode 100644 index 0000000..f110c0b --- /dev/null +++ b/dawn/Synchronizer_Toshiba_SD1091EKE/Synchronizer_Toshiba_SD1091EKE.pde @@ -0,0 +1,124 @@ +/* DVD IR Synchronizer for Toshiba SD590EKE V1.0 + * Developed for Art Installation "Dawn" by Sigrun Hardardottir + * Code written by Joe Foley + * on 2013-09-08 + * + * Based upon Sychronizer code by + * KHM 2010 / Martin Nawrath + * Kunsthochschule fuer Medien Koeln + * Academy of Media Arts Cologne + * + * Requires libraries: + * MsTimer2 http://playground.arduino.cc/Main/MsTimer2 + * Arduino-IRremote https://github.com/shirriff/Arduino-IRremote + * + * The IRremote library uses Pin 3 for the Anode (longer pin) + * We have made a ground pin on Pin 4 for the Cathode (shorter pin) + */ + + +#include +#include + +int pinGND=4; // Longer leg on the IR LED + +int secs; +int playtime= 6*60+9; // set here ypur DVD title playtime in sec leave a little extra +//int playtime= 10; // testing + +IRsend irsend; + +void setup() { + pinMode(pinGND,OUTPUT); + Serial.begin(115200); + + Serial.println("Toshiba DVD SD590EKE Synchronizer $Rev$"); + Serial.println("For \"Dawn\" by Sigrun Hardardottir"); + Serial.println("Code by Joe Foley "); + Serial.println("$URL$"); + Serial.println("$Id$"); + Serial.print("Playtime: "); + secs=playtime; + Serial.print("sec:"); + Serial.print(secs); + Serial.print(" / mm:ss "); + Serial.print(secs/60); + Serial.print(":"); + Serial.print(secs % 60); + Serial.println(""); + + // The DVD player starts playing automatically, so we should pause it + send_pause(); + waitsec(1); + send_pause(); + waitsec(2); + secs=playtime; + +} + +/********************************************************************/ +void loop() { + Serial.println("Sync"); + send_play(); + + for(int t = 0; t < playtime; t++) { + // This will not give us perfect 1 second timing + // but it is good enough for most video applications + // The most critical is having everything start at the + // same time. + Serial.print("sec:"); + Serial.print(playtime); + Serial.print(" / mm:ss "); + Serial.print(t/60); + Serial.print(":"); + Serial.print(t % 60); + Serial.println(""); + delay(1000); + } + + send_pause(); + waitsec(1); + + send_pause(); + waitsec(2); + + send_previous(); + waitsec(5); +} + +/**************************************************************/ +void waitsec(int sec) { + Serial.print("wait"); + Serial.print(sec); + Serial.println("seconds"); + delay(sec*1000); +} + + +/********************************************************************/ +void send_stop() { + // First comes the pre-data bits, then the command code + Serial.println(" stop"); + irsend.sendNEC(0xA25D28D7,32); +} + +/********************************************************************/ +void send_play() { + // First comes the pre-data bits, then the command code + Serial.println(" play"); + irsend.sendNEC(0xA25DA857,32); +} + +/********************************************************************/ +void send_pause() { + // First comes the pre-data bits, then the command code + Serial.println(" pause"); + irsend.sendNEC(0xA25D00FF, 32); +} + +/********************************************************************/ +void send_previous() { + // First comes the pre-data bits, then the command code + Serial.println(" previous"); + irsend.sendNEC(0xA25DC43B, 32); +}