Vixen Arduino Code help

Hi, I am using and arduino and vixen software to control my Christmas lights.
My problem is that the vixen software puts out 255 signal for when the light comes on and 0 for when its off. the way i have it set up with the relay board is the complete reverse, the relay board makes on contact with a 0 and goes off with 255. I need my arudino code to change that but I don't know how to. Any help will be greatly appreciated. Here is my code:

int A = 2;
int B = 3;
int C = 4;
int D = 5;
int E = 6;
int F = 7;
int G = 8;
int H = 9;
int I = 10;
int J = 11;
int K = 12;
int L = 13;
int M = A0;
int N = A1;
int O = A2;

int i = 0;
int incomingByte[15];

void setup()
{
Serial.begin(9600);

pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(H, OUTPUT);
pinMode(I, OUTPUT);
pinMode(J, OUTPUT);
pinMode(K, OUTPUT);
pinMode(L, OUTPUT);
pinMode(M, OUTPUT);
pinMode(N, OUTPUT);
pinMode(O, OUTPUT);

}

void loop()
{
if (Serial.available() >= 15)
{
for (int i=0; i<15;i++)
{
incomingByte = Serial.read();

  • } // Arduino pins*

  • digitalWrite(A, incomingByte[0]); // Pin 2*

  • digitalWrite(B, incomingByte[1]); // Pin 3*

  • digitalWrite(C, incomingByte[2]); // Pin 4*

  • digitalWrite(D, incomingByte[3]); // Pin 5*

  • digitalWrite(E, incomingByte[4]); // Pin 6*

  • digitalWrite(F, incomingByte[5]); // Pin 7*

  • digitalWrite(G, incomingByte[6]); // Pin 8*

  • digitalWrite(H, incomingByte[7]); // Pin 9*

  • digitalWrite(I, incomingByte[8]); // Pin 10*

  • digitalWrite(J, incomingByte[9]); // Pin 11*

  • digitalWrite(K, incomingByte[10]); // Pin 12*

  • digitalWrite(L, incomingByte[11]); // Pin 13*

  • digitalWrite(M, incomingByte[12]); // Pin A0*

  • digitalWrite(N, incomingByte[13]); // Pin A1*

  • digitalWrite(O, incomingByte[14]); // Pin A2*

  • }*
    }

for (int i=0; i<15;i++)
    {
      incomingByte[i] = 255 - Serial.read();
    }

PaulS:

for (int i=0; i<15;i++)

{
      incomingByte[i] = 255 - Serial.read();
    }

so replace (int i=0; i<15;i++) with incomingByte = 255 - Serial.read();

  • } *
    correct?

if you could make the adjustment in my original code and post it, that would be great!

cjones1025c:
if you could make the adjustment in my original code and post it, that would be great!

I could if you posted your damned code correctly.

You only need to change the one line. Instead of assigning Serial.read() to the array position, assign 255 - Serial.read().

Here is my code please make your adjustment in the necessary place. Thank you so much!

int A = 2;
int B = 3;
int C = 4;
int D = 5;
int E = 6;
int F = 7;
int G = 8;
int H = 9;
int I = 10;
int J = 11;
int K = 12;
int L = 13;
int M = A0;
int N = A1;
int O = A2;



int i = 0;
int incomingByte[15];

void setup()
{
  Serial.begin(9600);

  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(H, OUTPUT);
  pinMode(I, OUTPUT);
  pinMode(J, OUTPUT);
  pinMode(K, OUTPUT);
  pinMode(L, OUTPUT);
  pinMode(M, OUTPUT);
  pinMode(N, OUTPUT);
  pinMode(O, OUTPUT);
 


}

void loop()
{
  if (Serial.available() >= 15)
  {
    for (int i=0; i<15;i++)
    {
      incomingByte = Serial.read();
    }                                       // Arduino pins
    digitalWrite(A, incomingByte[0]);  // Pin 2
    digitalWrite(B, incomingByte[1]);  // Pin 3
    digitalWrite(C, incomingByte[2]);  // Pin 4
    digitalWrite(D, incomingByte[3]);  // Pin 5
    digitalWrite(E, incomingByte[4]);  // Pin 6
    digitalWrite(F, incomingByte[5]);  // Pin 7
    digitalWrite(G, incomingByte[6]);  // Pin 8
    digitalWrite(H, incomingByte[7]);  // Pin 9
    digitalWrite(I, incomingByte[8]);  // Pin 10
    digitalWrite(J, incomingByte[9]);  // Pin 11
    digitalWrite(K, incomingByte[10]); // Pin 12
    digitalWrite(L, incomingByte[11]); // Pin 13
    digitalWrite(M, incomingByte[12]); // Pin A0
    digitalWrite(N, incomingByte[13]); // Pin A1
    digitalWrite(O, incomingByte[14]); // Pin A2
    
  }
}
void loop()
{
  if (Serial.available() >= 15)
  {
    for (int i=0; i<15;i++)
    {
      incomingByte = 255 - Serial.read(); // This is the ONLY line you need to change
    }

as has already been explained twice.

When I make the revision i get this error:

Arduino: 1.6.4 (Windows 8.1), Board: "Arduino Uno"

sketch_dec06a.ino: In function 'void loop()':
sketch_dec06a:52: error: incompatible types in assignment of 'int' to 'int [15]'
incompatible types in assignment of 'int' to 'int [15]'

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.

Here, you dropped this:

[i]

You should be able to figure out where it belongs.