Previously, I demonstrated the basic functionality of Ken Shirriff’s Arduino-IRremote library by controlling the Freeze Frame function of my security recorder. This was relatively easy to accomplish with the provided examples and by having access to the remote I wished to emulate. However, I have 2 thrifted VCRs that did not come with remotes, and I want to use the Arduino to send Play, Stop, Record, Fast-Forward, and Rewind commands.
- Determine how to send specific commands to the Philips DVP3340V DVD/VCR Player
I thought to re-use the Arduino-IRremote library example, IRrecord.ino, that allows you to capture and transmit a given IR code. Because I don’t have the remote for my Philips DVD/VCR combo, I decided to just buy a universal remote locally to gain IR control of the device. I bought this Blackweb 6-device Universal Remote for about $10, and tried a variety of Philips “codes” until I was able to initiate Play and Stop commands. I tried all of the codes in the manual but was unable to find a Record code.
After some experimentation, I wrote an Arduino program that simply increments through a variety of codes and transmits them, non-stop. In addition, the program printed the transmitted code’s hex value to the Serial Monitor. There were some regions of codes that did absolutely nothing, and some densely-packed regions, such as around 1042C-1043f. The program was not elegant; I had to disconnect the IR LED and stop the Serial Monitor Autoscroll to get a rough idea of which code triggered a command.
After locking myself out by issuing the 0x105CC (Child Lock) command, I eventually arrived at a nice list of commands, including Record:
Now that I have determined the IR codes for at least Play, Stop, Record, Fast-Forward, and Rewind, I can begin to think about implementing a motion-sensitive record/playback system.
I have an older Sony VCR that I would also like to control remotely, and I also do not have its remote control. To save myself some time in determining its codes, I will try the Sony program codes in my universal remote manual to determine as many functional commands as possible. If any of the main functions are missing, I will repeat the iterative approach above. However, I will modify the Arduino program to increment/decrement IR codes upon user input to have more control over the process, and may also include functionality to manually enter a code to execute, vs. hard-coding commands.