as required by RichieNorthcott public pc coView attachment 46787m setting and Vixen settingView attachment 46787
I connected individual LEDs to be exact 9 red LEDs starting from channel 3
#define CH01 2 #define CH02 3 #define CH03 4 #define CH04 5 #define CH05 6 #define CH06 7 #define CH07 8 #define CH08 9 #define CH09 10 #define CH10 11 #define CH11 12
#define CH12 13 #define CH13 A0 #define CH14 A1 #define CH15 A2 #define CH16 A3 #define CH17 A4 #define CH18 A5
// Up to here for Arduino uno.
#define CH19 A6 #define CH20 A7 #define CH21 A8 #define CH22 A9 #define CH23 A10 #define CH24 A11 #define CH25 A12 #define CH26 A13 #define CH27 A14 #define CH28 A15
#define CH29 22 #define CH30 23 #define CH31 24 #define CH32 25 #define CH33 26 #define CH34 27 #define CH35 28 #define CH36 29 #define CH37 30 #define CH38 31 #define CH39 32
#define CH40 33 #define CH41 34 #define CH42 35 #define CH43 36 #define CH44 37 #define CH45 38 #define CH46 39 #define CH47 40 #define CH48 41
int channels[] = {CH01, CH02, CH03, CH04, CH05 , CH06, CH07, CH08, CH09,
CH10, CH11, CH12, CH13, CH14, CH15, CH16, CH17, CH18, CH19, CH20, CH21, CH22,
CH23, CH24, CH25, CH26, CH27, CH28, CH29, CH30, CH31, CH32, CH33, CH34, CH35,
CH36, CH37, CH38, CH39, CH40, CH41, CH42, CH43, CH44, CH45, CH46, CH47, CH48
};
int incomingByte[CHANNEL_COUNT];
int i = 0; // Loop counter
volatile unsigned long timer_a = 0; // new line
//setup the pins/ inputs & outputs
void setup() {
// enable the watchdog timer with a time of 1 second. If the board freezes, it will reset itself after 1 second.
wdt_enable(WDTO_1S);
// specifically for the UNO
sei();
// initalize PWM Channels / Pins
for (i = 0; i < CHANNEL_COUNT; i++) {
pinMode(channels, OUTPUT);
}
// set all the realys to off to start with
if (MODE == NOT_INVERTED) {
for (i = 0; i < CHANNEL_COUNT; i++) {
digitalWrite(channels, LOW);
}
}
else {
for (i = 0; i < CHANNEL_COUNT; i++) {
digitalWrite(channels, HIGH);
}
}
testSequence();
// set up Serial according to the speed defined above.
Serial.begin(VIXEN_COM_SPEED);
}
void loop(){
if (Serial.available() >= (CHANNEL_COUNT + 2)) {
wdt_reset(); // resets the watchdog
timer_a = millis (); // new line
int uno = Serial.read();
if (uno == 126) {
int dos = Serial.read();
if (dos == 33) {
for (i = 0; i < CHANNEL_COUNT; i++) {
// read each byte
incomingByte = Serial.read();
}
if (MODE == NOT_INVERTED) {
for (i = 0; i < CHANNEL_COUNT; i++) {
int value = incomingByte;
if (value <= 127) {
digitalWrite(channels, LOW);
}
else {
digitalWrite(channels, HIGH);
}
}
}
else {
for (i = 0; i < CHANNEL_COUNT; i++) {
int value = incomingByte;
if (value < 127) {
digitalWrite(channels, HIGH);
}
else {
digitalWrite(channels, LOW);
}
}
}
}
}
}
// Random mode code. Random mode starts if no serial input has been received in TIME_OUT millisenconds
else {
wdt_reset(); // resets the watchdog
unsigned long diff = millis() - timer_a;
if (diff >= TIME_OUT) {
timer_a = millis ();
int random_a = 0;
for (i = 0; i < CHANNEL_COUNT; i++) {
random_a = random(0, 2);
if (random_a == 0) {
digitalWrite(channels, LOW);
}
else {
digitalWrite(channels, HIGH);
}
}
}
}
}
void testSequence() {
if (MODE == NOT_INVERTED) {
for (i = 0; i < CHANNEL_COUNT; i++) {
wdt_reset(); // resets the watchdog
digitalWrite(channels, HIGH);
delay (500);
digitalWrite(channels, LOW);
}
}
else {
for (i = 0; i < CHANNEL_COUNT; i++) {
wdt_reset(); // resets the watchdog
digitalWrite(channels, LOW);
delay (500);
digitalWrite(channels, HIGH);
}
}
}
I copied the program from the previous post. I connected individual LEDs to be exact 9 red LEDs starting from channel 3
The sketch includes a 'header' of -!, tonight I will do a test I had not headed it.
I connected individual LEDs to be exact 9 red LEDs starting from channel 3
#define CH01 2 #define CH02 3 #define CH03 4 #define CH04 5 #define CH05 6 #define CH06 7 #define CH07 8 #define CH08 9 #define CH09 10 #define CH10 11 #define CH11 12
#define CH12 13 #define CH13 A0 #define CH14 A1 #define CH15 A2 #define CH16 A3 #define CH17 A4 #define CH18 A5
// Up to here for Arduino uno.
#define CH19 A6 #define CH20 A7 #define CH21 A8 #define CH22 A9 #define CH23 A10 #define CH24 A11 #define CH25 A12 #define CH26 A13 #define CH27 A14 #define CH28 A15
#define CH29 22 #define CH30 23 #define CH31 24 #define CH32 25 #define CH33 26 #define CH34 27 #define CH35 28 #define CH36 29 #define CH37 30 #define CH38 31 #define CH39 32
#define CH40 33 #define CH41 34 #define CH42 35 #define CH43 36 #define CH44 37 #define CH45 38 #define CH46 39 #define CH47 40 #define CH48 41
int channels[] = {CH01, CH02, CH03, CH04, CH05 , CH06, CH07, CH08, CH09,
CH10, CH11, CH12, CH13, CH14, CH15, CH16, CH17, CH18, CH19, CH20, CH21, CH22,
CH23, CH24, CH25, CH26, CH27, CH28, CH29, CH30, CH31, CH32, CH33, CH34, CH35,
CH36, CH37, CH38, CH39, CH40, CH41, CH42, CH43, CH44, CH45, CH46, CH47, CH48
};
int incomingByte[CHANNEL_COUNT];
int i = 0; // Loop counter
volatile unsigned long timer_a = 0; // new line
//setup the pins/ inputs & outputs
void setup() {
// enable the watchdog timer with a time of 1 second. If the board freezes, it will reset itself after 1 second.
wdt_enable(WDTO_1S);
// specifically for the UNO
sei();
// initalize PWM Channels / Pins
for (i = 0; i < CHANNEL_COUNT; i++) {
pinMode(channels, OUTPUT);
}
// set all the realys to off to start with
if (MODE == NOT_INVERTED) {
for (i = 0; i < CHANNEL_COUNT; i++) {
digitalWrite(channels, LOW);
}
}
else {
for (i = 0; i < CHANNEL_COUNT; i++) {
digitalWrite(channels, HIGH);
}
}
testSequence();
// set up Serial according to the speed defined above.
Serial.begin(VIXEN_COM_SPEED);
}
void loop(){
if (Serial.available() >= (CHANNEL_COUNT + 2)) {
wdt_reset(); // resets the watchdog
timer_a = millis (); // new line
int uno = Serial.read();
if (uno == 126) {
int dos = Serial.read();
if (dos == 33) {
for (i = 0; i < CHANNEL_COUNT; i++) {
// read each byte
incomingByte = Serial.read();
}
if (MODE == NOT_INVERTED) {
for (i = 0; i < CHANNEL_COUNT; i++) {
int value = incomingByte;
if (value <= 127) {
digitalWrite(channels, LOW);
}
else {
digitalWrite(channels, HIGH);
}
}
}
else {
for (i = 0; i < CHANNEL_COUNT; i++) {
int value = incomingByte;
if (value < 127) {
digitalWrite(channels, HIGH);
}
else {
digitalWrite(channels, LOW);
}
}
}
}
}
}
// Random mode code. Random mode starts if no serial input has been received in TIME_OUT millisenconds
else {
wdt_reset(); // resets the watchdog
unsigned long diff = millis() - timer_a;
if (diff >= TIME_OUT) {
timer_a = millis ();
int random_a = 0;
for (i = 0; i < CHANNEL_COUNT; i++) {
random_a = random(0, 2);
if (random_a == 0) {
digitalWrite(channels, LOW);
}
else {
digitalWrite(channels, HIGH);
}
}
}
}
}
void testSequence() {
if (MODE == NOT_INVERTED) {
for (i = 0; i < CHANNEL_COUNT; i++) {
wdt_reset(); // resets the watchdog
digitalWrite(channels, HIGH);
delay (500);
digitalWrite(channels, LOW);
}
}
else {
for (i = 0; i < CHANNEL_COUNT; i++) {
wdt_reset(); // resets the watchdog
digitalWrite(channels, LOW);
delay (500);
digitalWrite(channels, HIGH);
}
}
}
I copied the program from the previous post. I connected individual LEDs to be exact 9 red LEDs starting from channel 3
The sketch includes a 'header' of -!, tonight I will do a test I had not headed it.