Hi folks,
Some years ago I developed some lighting devices (APA102A LED strips) and had a dozen or so routines running different chase and specialty effects on the LED strips. I was a DJ/VJ so I was using DMX lighting as well and was using a Conceptinetics DMX shield. The code worked really well but over the years I took the boxes holding the circuitry apart and have forgotten how to get the shield to work. I tried to get a new original Conceptinetics board but it looked like it would be quite a while until I could get one.
I found a Conceptinetics-like board from a company CQRobot which has a board that is an EXACT duplicate as the Conceptinetics board. All of the part numbers, labeling and layout of the shield are a match for the Conceptinetics board. When I mentioned Conceptinetics they said they didn't know anything about it and directed me to a Wiki which, surprise, surprise told me to download the Conceptinetics library. They are basically NO HELP! I am using this code:
#include <Conceptinetics.h>
//
#define DMX_SLAVE_CHANNELS 8
#define RXEN_PIN 2
DMX_Slave dmx_slave ( DMX_SLAVE_CHANNELS, RXEN_PIN );
const int ledPin = 13;
// the setup routine runs once when you press reset:
void setup() {
// Enable DMX slave interface and start recording
// DMX data
dmx_slave.enable ();
// Set start address to 1, this is also the default setting
// You can change this address at any time during the program
dmx_slave.setStartAddress (1);
// Set led pin as output pin
pinMode ( ledPin, OUTPUT );
pinMode ( RXEN_PIN, OUTPUT );
}
// the loop routine runs over and over again forever:
void loop()
{
//
// EXAMPLE DESCRIPTION
//
// If the first channel comes above 50% the led will switch on
// and below 50% the led will be turned off
// NOTE:
// getChannelValue is relative to the configured startaddress
if ( dmx_slave.getChannelValue (1) > 127 )
{
dmx_slave.enable ();
digitalWrite ( RXEN_PIN, LOW );
}
else
{
dmx_slave.disable ();
digitalWrite ( RXEN_PIN, HIGH );
}
if ( dmx_slave.getChannelValue (2) > 127 )
{
digitalWrite ( ledPin, HIGH );
}
else
{
digitalWrite ( ledPin, LOW );
}
}
This is about as simple a program as I could find but it doesn't work! The LED at pin 13 never turns on. I am using an ENTTEC DMX USB Pro (new) which I know works because it controls my DMX lighting just fine, but not the Uno R3/CQRobot configuration. I moved the jumper for RX (first jumper) to the left to upload the program. But then I moved it back to the right which should put the board in receive mode from the DMX connection. Everything is new and I ran a simple blink test on the Uno R3 so the Uno appears to be functioning correctly.
Anyone have any ideas on why I'm having this issue? I remember that I had to play around with the jumpers but forgot how. I just made a decent investment into this equipment to drive a miniature camera dolly using stepper motors but haven't integrated the code until I know the DMX board is functioning correctly.
Thanks,
Joe B