thecanadiandaily
New member
ok, so with my Mega 2560 and Vixen 2.1 on the computer the SSR relays flicker when vixen runs, they are all on if vixen is off, and when started they work as they should however they all flicker like a strobe constantly until vixen shuts off, then they go back to full on again. what could be my issue.?
I think this is the code im using, its the only one i can find so it must be:
/*
Allow Vixen to control Arduino MEGA outputs.
To control 16 relay channels. RELAY1, RELAY2, etc are the relay control pins.
This version was tested with Vixen 3.
Also eliminated the footer feature. This version only uses a header "~!"
in Vixen 3. In Vixen don't use the quotes, just the two characters.
While Vixen 3 is sending data, the Arduino RX light is ON.
*/
// pinouts used.
#define RELAY1 2
#define RELAY2 3
#define RELAY3 4
#define RELAY4 5
#define RELAY5 6
#define RELAY6 7
#define RELAY7 8
#define RELAY8 9
#define RELAY9 10
#define RELAY10 11
#define RELAY11 12
#define RELAY12 13
#define RELAY13 14 /44
#define RELAY14 15 //45
#define RELAY15 16 //46
#define RELAY16 17 //47
// Configure outputs
int chanDigital[] = {RELAY1, RELAY2, RELAY3, RELAY4, RELAY5, RELAY6, RELAY7, RELAY8, RELAY9, RELAY10, RELAY11, RELAY12, RELAY13, RELAY14, RELAY15, RELAY16};
int vixByte[16]; // size of the channel array
int chanDigitalCount = 16; // Total number of ON/OFF channels.
int i = 0; // Loop counter
//setup the pins/ inputs & outputs
void setup(){
// initalize digital Channel Pins as outputs.
for (i=0; i < chanDigitalCount; i++){
pinMode(chanDigital, OUTPUT);
vixByte = 0; //set array at 255 not 0 for relay OFF by inverting. only if mech relays used. but im using ssr so leave at 0
analogWrite(chanDigital, vixByte); //use either analog or digitalwrite
}
//setup Vixen USB serial port.
Serial.begin(9600);
}
void loop()
{
if (Serial.available() >= chanDigitalCount+1) {
// changed +2 to +1 in above line to have correct channels on relay board
//int uno = Serial.read();
//if (uno == 126){
//int dos = Serial.read();
//if (dos == 33){
// We are now past the header so read and send the 16 channel data.
for (int i=0; i<16; i++) {
// read each byte
vixByte = Serial.read();
analogWrite(chanDigital, 0 + vixByte); //Send to relay pin. use either analog or digitalwrite
}
}
}
//}
//} //end of loop
I think this is the code im using, its the only one i can find so it must be:
/*
Allow Vixen to control Arduino MEGA outputs.
To control 16 relay channels. RELAY1, RELAY2, etc are the relay control pins.
This version was tested with Vixen 3.
Also eliminated the footer feature. This version only uses a header "~!"
in Vixen 3. In Vixen don't use the quotes, just the two characters.
While Vixen 3 is sending data, the Arduino RX light is ON.
*/
// pinouts used.
#define RELAY1 2
#define RELAY2 3
#define RELAY3 4
#define RELAY4 5
#define RELAY5 6
#define RELAY6 7
#define RELAY7 8
#define RELAY8 9
#define RELAY9 10
#define RELAY10 11
#define RELAY11 12
#define RELAY12 13
#define RELAY13 14 /44
#define RELAY14 15 //45
#define RELAY15 16 //46
#define RELAY16 17 //47
// Configure outputs
int chanDigital[] = {RELAY1, RELAY2, RELAY3, RELAY4, RELAY5, RELAY6, RELAY7, RELAY8, RELAY9, RELAY10, RELAY11, RELAY12, RELAY13, RELAY14, RELAY15, RELAY16};
int vixByte[16]; // size of the channel array
int chanDigitalCount = 16; // Total number of ON/OFF channels.
int i = 0; // Loop counter
//setup the pins/ inputs & outputs
void setup(){
// initalize digital Channel Pins as outputs.
for (i=0; i < chanDigitalCount; i++){
pinMode(chanDigital, OUTPUT);
vixByte = 0; //set array at 255 not 0 for relay OFF by inverting. only if mech relays used. but im using ssr so leave at 0
analogWrite(chanDigital, vixByte); //use either analog or digitalwrite
}
//setup Vixen USB serial port.
Serial.begin(9600);
}
void loop()
{
if (Serial.available() >= chanDigitalCount+1) {
// changed +2 to +1 in above line to have correct channels on relay board
//int uno = Serial.read();
//if (uno == 126){
//int dos = Serial.read();
//if (dos == 33){
// We are now past the header so read and send the 16 channel data.
for (int i=0; i<16; i++) {
// read each byte
vixByte = Serial.read();
analogWrite(chanDigital, 0 + vixByte); //Send to relay pin. use either analog or digitalwrite
}
}
}
//}
//} //end of loop