I have a Kodak Ektapro 7010 slide projector that I would like to automate using an Arduino. The projector takes a series of three byte commands to perform different functions, e.g. fading the lamp on, moving to a particular slide, advancing forward. I can successfully execute these commands when I send them from a terminal to the projector with a USB to serial converter but not when I attempt to send the same commands from the arduino.
I'm following this Controlling a Kodak Slide Projector via RS232 (P-Com Protocoll) - Programming Questions - Arduino Forum thread and using some of the code located at the end.
I have a TTL to RS232 converter that I'm using to go from the arduino to the projector, It uses a MAX3232 chip, it's the one found here.
I initially wasn't getting anything with a loopback check but I've reversed the connection from tx to rx going from the Arduino to the converter and that works. However, sending the bytes to the projector still doesn't do anything.
I'm not new to programming but very new to electronics and the Arduino, any help would be appreciated.
The code I'm using is as follows:
/**
Ektapro 7010
*/
boolean debug = false;
void setup()
{
// start serial port at 9600 bps:
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void slideForward() {
if (debug) {Serial.println("forw"); }
Serial.write((byte)0x0D);
Serial.write((byte)0x00);
Serial.write((byte)0x00);
}
void slideBackward() {
if (debug) { Serial.println("backw"); }
Serial.write((byte)0x0D);
Serial.write((byte)0x04);
Serial.write((byte)0x00);
}
void StandbyModeOn() {
if (debug) { Serial.println("standbymodeon"); }
Serial.write((byte)0x0B);
Serial.write((byte)0x1E);
Serial.write((byte)0x00);
}
void StandbyModeOff() {
if (debug) { Serial.println("standbymodeoff"); }
Serial.write((byte)0x0B);
Serial.write((byte)0x1C);
Serial.write((byte)0x00);
}
void loop () {
delay(500);
StandbyModeOff();
digitalWrite(13, HIGH);
delay(1000);
slideForward();
delay(2000);
StandbyModeOn();
digitalWrite(13, LOW);
delay(1500);
}