Combining Two Codes?

Hi there,

I have two codes saved independently. Both have been tested and work as intended. I am new to this but am moving forward.

When I combine the two codes, only the first one seems to function. I am not sure if their is a certain process when it comes to combining codes.

The design is to use pushbutton to toggle on and off a relay and the second code uses a pushbutton to toggle on two relays, then when pressed a second time, turn off one of the relays and when pressed a 3rd time, both of the relays will be off.

I'll post the first code, second code, and my combined if anyone could help me understand and learn? I am sure there may be other ways to write what I have accomplished, but this seems to work for me for now.

1 Like

First code

#define pushButton1 2  //Push Button for Accessory port side on D2
#define relay1 3       //High Output to Relay for pushButton1 on 0
#define blueHalo1 35   //Low Output to Blue Halo on pushButton1 on 34
#define redHalo1 37    //Low Output to Red Halo on pushButton1 on 36

int state = 0;
int old = 0;
int buttonPoll = 0;






void setup() {

  pinMode(pushButton1, INPUT_PULLUP);  //Push Button set as Input with internal pullup
  pinMode(relay1, OUTPUT);             //Relay1 Set to output to Relay Module
  pinMode(blueHalo1, OUTPUT);          //blueHalo1 set as output to activate Blue Halo on pushButton1
  pinMode(redHalo1, OUTPUT);           //redHalo1 set as output to activate Red Halo on pushButton1

  digitalWrite(relay1, LOW);      //set initial state of realy1 to OFF
  digitalWrite(blueHalo1, HIGH);  //set initial state of blueHalo1 to OFF
  digitalWrite(redHalo1, HIGH);   //set initial state of redHalo1 to OFF
}

void loop() {
  buttonPoll = digitalRead(pushButton1);
  if (buttonPoll == 1) {
    delay(50);
    buttonPoll = digitalRead(pushButton1);
    if (buttonPoll == 0) {
      state = old + 1;
    }
  } else {
    delay(100);
  }
  switch (state) {
    case 1:
      digitalWrite(redHalo1, LOW);
      digitalWrite(blueHalo1, HIGH);
      digitalWrite(relay1, HIGH);
      old = state;
      break;
    default:
      digitalWrite(redHalo1, HIGH);
      digitalWrite(blueHalo1, HIGH);
      digitalWrite(relay1, LOW);
      old = 0;
      break;
  }
}

Second Code



#define pushButton2 2   //Push Button, Navigation - Anchor
#define relay2 3        //Output to Relay for Navigation Lights
#define relay2point1 4  //Output to Relay for Anchor Light
#define blueHalo2 35    //Output to Blue Halo on pushButton1 on
#define greenHalo2 37   //Output to Green Halo on pushButton1 on
#define whiteHalo2 39   //Output to White Halo on pushButton1 on


int state = 0;
int old = 0;
int buttonPoll = 0;






void setup() {

  
  pinMode(pushButton2, INPUT_PULLUP);  //Push Button set as Input with internal pullup
  pinMode(relay2, OUTPUT);             //Relay2 Set to output to Relay Module
  pinMode(relay2point1, OUTPUT);
  pinMode(blueHalo2, OUTPUT);   //blueHalo2 set as output to activate Blue Halo on pushButton2
  pinMode(greenHalo2, OUTPUT);  //whiteHalo2 set as output to activate Red Halo on pushButton2
  pinMode(whiteHalo2, OUTPUT);

  digitalWrite(relay2, LOW);  //set initial state of realy2 to OFF
  digitalWrite(relay2point1, LOW);
  digitalWrite(blueHalo2, HIGH);  //set initial state of blueHalo2 to ON
  digitalWrite(greenHalo2, LOW);  //set initial state of greenHalo2 to OFF
  digitalWrite(whiteHalo2, LOW);  //set initial state of whiteHalo2 to OFF
}

void loop() {
  
      buttonPoll = digitalRead(pushButton2);
      if (buttonPoll == 1) {
        delay(50);
        buttonPoll = digitalRead(pushButton2);
        if (buttonPoll == 0) {
          state = old + 1;
        }
      } else {
        delay(100);
      }
      switch (state) {
        case 1:
          digitalWrite(blueHalo2, LOW);
          digitalWrite(greenHalo2, HIGH);
          digitalWrite(whiteHalo2, LOW);
          digitalWrite(relay2, HIGH);
          digitalWrite(relay2point1, HIGH);
          old = state;
          break;
        case 2:
          digitalWrite(blueHalo2, LOW);
          digitalWrite(greenHalo2, LOW);
          digitalWrite(whiteHalo2, HIGH);
          digitalWrite(relay2, LOW);
          digitalWrite(relay2point1, HIGH);
          old = state;
          break;
        default:
          digitalWrite(blueHalo2, HIGH);
          digitalWrite(greenHalo2, LOW);
          digitalWrite(whiteHalo2, LOW);
          digitalWrite(relay2, LOW);
          digitalWrite(relay2point1, LOW);
          old = 0;
          break;
      }}

Combined.

I have other #defines listed here for future expansion once I can figure out the combination process. But the combined shows the first two codes combined in Void Setup and Void Loop and their assigned pins.

I appreciate everyone's help. Love the Arduino support community

#define pushButton1 2  //Push Button for Accessory port side on D2
#define relay1 3       //High Output to Relay for pushButton1 on 3
#define blueHalo1 35   //Low Output to Blue Halo on pushButton1 on 34
#define redHalo1 37    //Low Output to Red Halo on pushButton1 on 36


#define pushButton2 4   //Push Button, Navigation - Anchor
#define relay2 5        //Output to Relay for Navigation Lights
#define relay2point1 6  //Output to Relay for Anchor Light
#define blueHalo2 39    //Output to Blue Halo on pushButton1 on
#define greenHalo2 41   //Output to Green Halo on pushButton1 on
#define whiteHalo2 43   //Output to White Halo on pushButton1 on


#define pushButton3  //Push Button, Courtesy Lights - Accent Lights
#define relay3       //Output to Relay for pushButton3
#define blueHalo3    //Output to Blue Halo on pushButton3 on
#define greenHalo3   //Output to Green Halo on pushButton3 on
#define whiteHalo3   //Output to White Halo on pushButton3 on


#define toggleSwitch4  //Toggle switch for Port Ignition switched from HIGH
#define blueHalo4      //Output to Blue Halo on toggleSwitch4 on
#define redHalo4       //Output to Red Halo on toggleSwitch4 on


#define toggleSwitch5  //Toggle Switch for Starboard Ignition switched from HIGH
#define blueHalo5      //Output to Blue Halo on toggleSwitch5 on
#define redHalo5       //Output to Red Halo on toggleSwitch5 on


#define pushButton6  //Push Button, Blower Motors
#define relay6       //Output to Two 10 Amp Relays
#define blueHalo6    //Output to Blue Halo on pushButton6
#define redHalo6     //Output to Red Halo on pushButton6


#define pushButton7   //Push Button, Docking Lights, Forward - All ON - OFF
#define relay7        //Output to Relay Forward Docking Lights
#define relay7point1  //Output to Relay for Stern Docking Lights
#define blueHalo7     //Output to Blue Halo on pushButton7 on
#define greenHalo7    //Output to Green Halo on pushButton7 on
#define whiteHalo7    //Output to White Halo on pushButton7 on


#define pushButton8  //Push Button for Accessory Starboard side on
#define relay8       //Output to Relay for pushButton8 on
#define blueHalo8    //Output to Blue Halo on pushButton8 on
#define redHalo8     //Output to Red Halo on pushButton8 on





int state = 0;
int old = 0;
int buttonPoll = 0;






void setup() {

  pinMode(pushButton1, INPUT_PULLUP);  //Push Button set as Input with internal pullup
  pinMode(relay1, OUTPUT);             //Relay1 Set to output to Relay Module
  pinMode(blueHalo1, OUTPUT);          //blueHalo1 set as output to activate Blue Halo on pushButton1
  pinMode(redHalo1, OUTPUT);           //redHalo1 set as output to activate Red Halo on pushButton1

  digitalWrite(relay1, LOW);      //set initial state of realy1 to OFF
  digitalWrite(blueHalo1, HIGH);  //set initial state of blueHalo1 to ON
  digitalWrite(redHalo1, LOW);    //set initial state of redHalo1 to OFF


  pinMode(pushButton2, INPUT_PULLUP);  //Push Button set as Input with internal pullup
  pinMode(relay2, OUTPUT);             //Relay2 Set to output to Relay Module
  pinMode(relay2point1, OUTPUT);
  pinMode(blueHalo2, OUTPUT);   //blueHalo2 set as output to activate Blue Halo on pushButton2
  pinMode(greenHalo2, OUTPUT);  //whiteHalo2 set as output to activate Red Halo on pushButton2
  pinMode(whiteHalo2, OUTPUT);

  digitalWrite(relay2, LOW);  //set initial state of realy2 to OFF
  digitalWrite(relay2point1, LOW);
  digitalWrite(blueHalo2, HIGH);  //set initial state of blueHalo2 to ON
  digitalWrite(greenHalo2, LOW);  //set initial state of greenHalo2 to OFF
  digitalWrite(whiteHalo2, LOW);  //set initial state of whiteHalo2 to OFF
}

void loop() {
  buttonPoll = digitalRead(pushButton1);
  if (buttonPoll == 1) {
    delay(50);
    buttonPoll = digitalRead(pushButton1);
    if (buttonPoll == 0) {
      state = old + 1;
    }
  } else {
    delay(100);
  }
  switch (state) {
    case 1:
      digitalWrite(redHalo1, HIGH);
      digitalWrite(blueHalo1, LOW);
      digitalWrite(relay1, HIGH);
      old = state;
      break;
    default:
      digitalWrite(redHalo1, LOW);
      digitalWrite(blueHalo1, HIGH);
      digitalWrite(relay1, LOW);
      old = 0;
      break;



      buttonPoll = digitalRead(pushButton2);
      if (buttonPoll == 1) {
        delay(50);
        buttonPoll = digitalRead(pushButton2);
        if (buttonPoll == 0) {
          state = old + 1;
        }
      } else {
        delay(100);
      }
      switch (state) {
        case 1:
          digitalWrite(blueHalo2, LOW);
          digitalWrite(greenHalo2, HIGH);
          digitalWrite(whiteHalo2, LOW);
          digitalWrite(relay2, HIGH);
          digitalWrite(relay2point1, HIGH);
          old = state;
          break;
        case 2:
          digitalWrite(blueHalo2, LOW);
          digitalWrite(greenHalo2, LOW);
          digitalWrite(whiteHalo2, HIGH);
          digitalWrite(relay2, LOW);
          digitalWrite(relay2point1, HIGH);
          old = state;
          break;
        default:
          digitalWrite(blueHalo2, HIGH);
          digitalWrite(greenHalo2, LOW);
          digitalWrite(whiteHalo2, LOW);
          digitalWrite(relay2, LOW);
          digitalWrite(relay2point1, LOW);
          old = 0;
          break;
      }}}

  • Show us your attempt.

I think that makes a little bit of sense. Let me move it around.

I need to essentially start a new one when the second code starts? Obviously still allowing the first one to be closed.

Hi, could you clarify more on the break statement?

I did use closing braces after the first code now and started new ones for the second.

Code verification comes back fine but still doesn't work properly yet. Now it's doing a mix of something :smile:

That website helped a little for the understanding. Thank you for that.

So what's the best way to combine these two or to start a new one should I say? I have about six push buttons to put into this code.

How should I end the first one properly and what should I do to start the second one properly?

Any one of the six push buttons can be pressed at any time so they need to act like independent codes?

Ahhh, I see. I did read through that lesson on the website also. I was looking at the array and was wondering about that. The one question I had is when it was in the capture brackets, it identified a number and then the "examples" were in those quotes. Does that number have to match how many are expressed in the ( )?

I essentially have 4 push buttons controlling 4 independent relays which utilize LED lights as to indicate it's status.

The other two push buttons have multiple cases to operate 2 different relays from one button, also activating LED indicator lights.

Normally I would point a link to my website here. Sorry but my internet service provider pulled the plug on the free web space they offered and took my whole site off line and didn't even offer a web redirection service. Tech support says every time they suggest this the CEO of the company says it will cost hundreds of thousand pounds to implement.
This file

Merging_Code.zip (663.3 KB)

When un-compressed you can double click the .HTML file and it should load just that page into your default browser. Let me know if you have any problems with this. Of course none of the links off this page will work.

You have an Mega2560, using which version of IDE? You have three relays, two pushbuttons and five LEDs? What do you observe? These data help clarify your project.

Here is a simulation of your program...
blinks

Files for WOKWI.COM...

sketch.ino
#define pushButton1 2  //Push Button for Accessory port side on D2
#define relay1 3       //High Output to Relay for pushButton1 on 3
#define blueHalo1 35   //Low Output to Blue Halo on pushButton1 on 34
#define redHalo1 37    //Low Output to Red Halo on pushButton1 on 36
#define pushButton2 4   //Push Button, Navigation - Anchor
#define relay2 5        //Output to Relay for Navigation Lights
#define relay2point1 6  //Output to Relay for Anchor Light
#define blueHalo2 39    //Output to Blue Halo on pushButton1 on
#define greenHalo2 41   //Output to Green Halo on pushButton1 on
#define whiteHalo2 43   //Output to White Halo on pushButton1 on

int state = 0;
int old = 0;
int buttonPoll = 0;

void setup() {
  pinMode(pushButton1, INPUT_PULLUP);  //Push Button set as Input with internal pullup
  pinMode(relay1, OUTPUT);             //Relay1 Set to output to Relay Module
  pinMode(blueHalo1, OUTPUT);          //blueHalo1 set as output to activate Blue Halo on pushButton1
  pinMode(redHalo1, OUTPUT);           //redHalo1 set as output to activate Red Halo on pushButton1

  digitalWrite(relay1, LOW);      //set initial state of realy1 to OFF
  digitalWrite(blueHalo1, HIGH);  //set initial state of blueHalo1 to ON
  digitalWrite(redHalo1, LOW);    //set initial state of redHalo1 to OFF
  pinMode(pushButton2, INPUT_PULLUP);  //Push Button set as Input with internal pullup
  pinMode(relay2, OUTPUT);             //Relay2 Set to output to Relay Module
  pinMode(relay2point1, OUTPUT);
  pinMode(blueHalo2, OUTPUT);   //blueHalo2 set as output to activate Blue Halo on pushButton2
  pinMode(greenHalo2, OUTPUT);  //whiteHalo2 set as output to activate Red Halo on pushButton2
  pinMode(whiteHalo2, OUTPUT);

  digitalWrite(relay2, LOW);  //set initial state of realy2 to OFF
  digitalWrite(relay2point1, LOW);
  digitalWrite(blueHalo2, HIGH);  //set initial state of blueHalo2 to ON
  digitalWrite(greenHalo2, LOW);  //set initial state of greenHalo2 to OFF
  digitalWrite(whiteHalo2, LOW);  //set initial state of whiteHalo2 to OFF
}

void loop() {
  buttonPoll = digitalRead(pushButton1);
  if (buttonPoll == 1) {
    delay(50);
    buttonPoll = digitalRead(pushButton1);
    if (buttonPoll == 0) {
      state = old + 1;
    }
  } else {
    delay(100);
  }
  switch (state) {
    case 1:
      digitalWrite(redHalo1, HIGH);
      digitalWrite(blueHalo1, LOW);
      digitalWrite(relay1, HIGH);
      old = state;
      break;
    default:
      digitalWrite(redHalo1, LOW);
      digitalWrite(blueHalo1, HIGH);
      digitalWrite(relay1, LOW);
      old = 0;
      break;

      buttonPoll = digitalRead(pushButton2);
      if (buttonPoll == 1) {
        delay(50);
        buttonPoll = digitalRead(pushButton2);
        if (buttonPoll == 0) {
          state = old + 1;
        }
      } else {
        delay(100);
      }
      switch (state) {
        case 1:
          digitalWrite(blueHalo2, LOW);
          digitalWrite(greenHalo2, HIGH);
          digitalWrite(whiteHalo2, LOW);
          digitalWrite(relay2, HIGH);
          digitalWrite(relay2point1, HIGH);
          old = state;
          break;
        case 2:
          digitalWrite(blueHalo2, LOW);
          digitalWrite(greenHalo2, LOW);
          digitalWrite(whiteHalo2, HIGH);
          digitalWrite(relay2, LOW);
          digitalWrite(relay2point1, HIGH);
          old = state;
          break;
        default:
          digitalWrite(blueHalo2, HIGH);
          digitalWrite(greenHalo2, LOW);
          digitalWrite(whiteHalo2, LOW);
          digitalWrite(relay2, LOW);
          digitalWrite(relay2point1, LOW);
          old = 0;
          break;
      }
  }
}
diagram.json
{
  "version": 1,
  "author": "Anonymous maker",
  "editor": "wokwi",
  "parts": [
    { "type": "wokwi-arduino-mega", "id": "mega", "top": 0.6, "left": -3.6, "attrs": {} },
    { "type": "wokwi-relay-module", "id": "relay1", "top": -105.4, "left": 374.4, "attrs": {} },
    { "type": "wokwi-vcc", "id": "vcc1", "top": -277.64, "left": 355.2, "attrs": {} },
    { "type": "wokwi-relay-module", "id": "relay2", "top": -172.6, "left": 374.4, "attrs": {} },
    {
      "type": "wokwi-pushbutton-6mm",
      "id": "btn2",
      "top": -107.8,
      "left": 240,
      "attrs": { "color": "green" }
    },
    {
      "type": "wokwi-pushbutton-6mm",
      "id": "btn3",
      "top": -59.8,
      "left": 240,
      "attrs": { "color": "green" }
    },
    { "type": "wokwi-relay-module", "id": "relay3", "top": -239.8, "left": 374.4, "attrs": {} },
    {
      "type": "wokwi-led",
      "id": "led1",
      "top": 27.6,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "blue" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r1",
      "top": 42.35,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-led",
      "id": "led2",
      "top": 46.8,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "red" }
    },
    {
      "type": "wokwi-led",
      "id": "led3",
      "top": 66,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "blue" }
    },
    {
      "type": "wokwi-led",
      "id": "led4",
      "top": 85.2,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "green" }
    },
    {
      "type": "wokwi-led",
      "id": "led5",
      "top": 104.4,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "white" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r2",
      "top": 61.55,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r3",
      "top": 80.75,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r4",
      "top": 99.95,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r6",
      "top": 119.15,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo1",
      "top": -105.6,
      "left": 268.8,
      "attrs": { "text": "pB2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo2",
      "top": -57.6,
      "left": 268.8,
      "attrs": { "text": "pB1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo3",
      "top": 38.4,
      "left": 518.4,
      "attrs": { "text": "bH1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo4",
      "top": 57.6,
      "left": 518.4,
      "attrs": { "text": "rH1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo5",
      "top": 76.8,
      "left": 518.4,
      "attrs": { "text": "bH1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo6",
      "top": 96,
      "left": 518.4,
      "attrs": { "text": "gH1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo7",
      "top": 115.2,
      "left": 518.4,
      "attrs": { "text": "wH1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo8",
      "top": -220.8,
      "left": 508.8,
      "attrs": { "text": "r1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo9",
      "top": -163.2,
      "left": 508.8,
      "attrs": { "text": "r2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo10",
      "top": -86.4,
      "left": 508.8,
      "attrs": { "text": "r2p1" }
    }
  ],
  "connections": [
    [ "relay1:IN", "mega:3", "green", [ "h0" ] ],
    [ "vcc1:VCC", "relay1:VCC", "red", [ "v0" ] ],
    [ "vcc1:VCC", "relay2:VCC", "red", [ "v0" ] ],
    [ "btn3:2.l", "mega:2", "green", [ "h0" ] ],
    [ "mega:4", "btn2:2.l", "green", [ "v0" ] ],
    [ "mega:GND.1", "btn2:1.l", "black", [ "v0" ] ],
    [ "mega:GND.1", "btn3:1.l", "black", [ "v0" ] ],
    [ "mega:GND.1", "relay1:GND", "black", [ "v0" ] ],
    [ "mega:GND.1", "relay2:GND", "black", [ "v0" ] ],
    [ "vcc1:VCC", "relay3:VCC", "red", [ "v0" ] ],
    [ "mega:5", "relay2:IN", "green", [ "v0" ] ],
    [ "mega:6", "relay3:IN", "green", [ "v0" ] ],
    [ "mega:GND.1", "relay3:GND", "black", [ "v0" ] ],
    [ "led1:A", "mega:35", "green", [ "h-86.4", "v18" ] ],
    [ "led2:A", "mega:37", "green", [ "h-86.4", "v8.3" ] ],
    [ "led3:A", "mega:39", "green", [ "h-86.4", "v-1.15" ] ],
    [ "led4:A", "mega:41", "green", [ "h-86.4", "v-10.85" ] ],
    [ "led5:A", "mega:43", "green", [ "h-86.4", "v-20.3" ] ],
    [ "led1:C", "r1:2", "green", [ "h0" ] ],
    [ "led5:C", "r6:2", "green", [ "h0" ] ],
    [ "led4:C", "r4:2", "green", [ "h0" ] ],
    [ "led3:C", "r3:2", "green", [ "h0" ] ],
    [ "led2:C", "r2:2", "green", [ "h0" ] ],
    [ "mega:GND.5", "r6:1", "black", [ "v0.95", "h45.4" ] ],
    [ "r6:1", "r4:1", "black", [ "v0" ] ],
    [ "r4:1", "r3:1", "black", [ "v0" ] ],
    [ "r3:1", "r2:1", "black", [ "v0" ] ],
    [ "r2:1", "r1:1", "black", [ "v0" ] ]
  ],
  "dependencies": {}
}

Grumpy, I haven't had a chance to uncompress what you have sent just yet as I'm out of town until tomorrow.

As soon as I get a chance I will try it and give feedback.

Thank you for your input/support.

The example for the array was;

string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};

the [ ] has a number in it for an array? Does this number correlate to how many quotations there are listed? {"Volvo", "BMW", "Ford", "Mazda"}

So if it was [6] this would correlate to {"Volvo", "BMW", "Ford", "Mazda", Chevy", Mercedes"} ???

1 Like

The number in the square brackets tells the compiler how many entries there are in the array as you suggest.

You can, however, leave the number out and the compiler will figure out for itself how many entries there are.

Of course, you may need to know that in order to use it in the sketch but you can get the code to do that for you

String cars[] = { "Volvo", "BMW", "Ford", "Mazda", "Chevy", "Mercedes" };
const byte numberOfCars = sizeof(cars) / sizeof(cars[0]);

void setup()
{
    Serial.begin(115200);
    Serial.print("Number of cars in the array = ");
    Serial.println(numberOfCars);
    Serial.println("as follows");
    for (int c = 0; c < numberOfCars; c++)
    {
        Serial.println(cars[c]);
    }
}

void loop()
{
}

NOTE - I have corrected your list of cars as it was missing some quotation marks

So this simulation, is this the actual code running? Currently I just see pB1 being "pressed". What does it show happening when you press pB2. I am super green with all of this but am learning.

I can see how this simulation may speed up some of me testing the program.

Yes. Note the green circle around the pushbutton is when the button is pressed.

Also note; nothing happens when pB2 is pressed.

Ya, this is what I don't understand yet. When I use the codes independently, they work as intended. I haven't understood how to properly merge the two yet. I have to do this for 6 push buttons.

I think once I understand what's missing with the merge I can add the remaining codes.

Do you know what I am missing?

Side note, I was able to load your sketch for that simulator and such. VERY COOL!

Refer to your formatted code:

  • switch(state) after digitalRead(pushButton1); is indented two whitespaces.
  • switch(state) after digitalRead(pushButton2); is indented six whitespaces

This indicates one or two missing close braces. > } < Looking again at pushButton1/switch/case... a close brace would normally follow the bread; to finish the switch/case. Looking at "original" formatting, you can see pB2 is wrongly inside pB1's switch/case.

Inserting a close brace immediately before buttonPoll = digitalRead(pushButton2); causes one extra close brace to show up at the end of the sketch. Re-format the sketch and you will see that with the newly inserted close brace above pushButton2, the final close brace is obviously out of place.

Now pB1 and pB2 "work" and turn relays on and off. I do not follow the intent of your code. Would you make a wordless drawing showing the button/relay/LED sequence? I can not see a pattern.

If I have confused you, sorry. Here is the code where I have inserted the missing close-brace, and remove the extra/final close brace.

sketch.ino
#define pushButton1 2  //Push Button for Accessory port side on D2
#define relay1 3       //High Output to Relay for pushButton1 on 3
#define blueHalo1 35   //Low Output to Blue Halo on pushButton1 on 34
#define redHalo1 37    //Low Output to Red Halo on pushButton1 on 36
#define pushButton2 4   //Push Button, Navigation - Anchor
#define relay2 5        //Output to Relay for Navigation Lights
#define relay2point1 6  //Output to Relay for Anchor Light
#define blueHalo2 39    //Output to Blue Halo on pushButton1 on
#define greenHalo2 41   //Output to Green Halo on pushButton1 on
#define whiteHalo2 43   //Output to White Halo on pushButton1 on

int state = 0;
int old = 0;
int buttonPoll = 0;

void setup() {
  pinMode(pushButton1, INPUT_PULLUP);  //Push Button set as Input with internal pullup
  pinMode(relay1, OUTPUT);             //Relay1 Set to output to Relay Module
  pinMode(blueHalo1, OUTPUT);          //blueHalo1 set as output to activate Blue Halo on pushButton1
  pinMode(redHalo1, OUTPUT);           //redHalo1 set as output to activate Red Halo on pushButton1

  digitalWrite(relay1, LOW);      //set initial state of realy1 to OFF
  digitalWrite(blueHalo1, HIGH);  //set initial state of blueHalo1 to ON
  digitalWrite(redHalo1, LOW);    //set initial state of redHalo1 to OFF
  pinMode(pushButton2, INPUT_PULLUP);  //Push Button set as Input with internal pullup
  pinMode(relay2, OUTPUT);             //Relay2 Set to output to Relay Module
  pinMode(relay2point1, OUTPUT);
  pinMode(blueHalo2, OUTPUT);   //blueHalo2 set as output to activate Blue Halo on pushButton2
  pinMode(greenHalo2, OUTPUT);  //whiteHalo2 set as output to activate Red Halo on pushButton2
  pinMode(whiteHalo2, OUTPUT);

  digitalWrite(relay2, LOW);  //set initial state of realy2 to OFF
  digitalWrite(relay2point1, LOW);
  digitalWrite(blueHalo2, HIGH);  //set initial state of blueHalo2 to ON
  digitalWrite(greenHalo2, LOW);  //set initial state of greenHalo2 to OFF
  digitalWrite(whiteHalo2, LOW);  //set initial state of whiteHalo2 to OFF
}

void loop() {
  buttonPoll = digitalRead(pushButton1);
  if (buttonPoll == 1) {
    delay(50);
    buttonPoll = digitalRead(pushButton1);
    if (buttonPoll == 0) {
      state = old + 1;
    }
  } else {
    delay(100);
  }
  switch (state) {
    case 1:
      digitalWrite(redHalo1, HIGH);
      digitalWrite(blueHalo1, LOW);
      digitalWrite(relay1, HIGH);
      old = state;
      break;
    default:
      digitalWrite(redHalo1, LOW);
      digitalWrite(blueHalo1, HIGH);
      digitalWrite(relay1, LOW);
      old = 0;
      break;
  } // <================================ MISSING CLOSE BRACE INSERTED

  buttonPoll = digitalRead(pushButton2);
  if (buttonPoll == 1) {
    delay(50);
    buttonPoll = digitalRead(pushButton2);
    if (buttonPoll == 0) {
      state = old + 1;
    }
  } else {
    delay(100);
  }
  switch (state) {
    case 1:
      digitalWrite(blueHalo2, LOW);
      digitalWrite(greenHalo2, HIGH);
      digitalWrite(whiteHalo2, LOW);
      digitalWrite(relay2, HIGH);
      digitalWrite(relay2point1, HIGH);
      old = state;
      break;
    case 2:
      digitalWrite(blueHalo2, LOW);
      digitalWrite(greenHalo2, LOW);
      digitalWrite(whiteHalo2, HIGH);
      digitalWrite(relay2, LOW);
      digitalWrite(relay2point1, HIGH);
      old = state;
      break;
    default:
      digitalWrite(blueHalo2, HIGH);
      digitalWrite(greenHalo2, LOW);
      digitalWrite(whiteHalo2, LOW);
      digitalWrite(relay2, LOW);
      digitalWrite(relay2point1, LOW);
      old = 0;
      break;
  }
}

// } // <================================ EXTRA CLOSE BRACE REMOVED

diagram.json

{
  "version": 1,
  "author": "Anonymous maker",
  "editor": "wokwi",
  "parts": [
    { "type": "wokwi-arduino-mega", "id": "mega", "top": 0.6, "left": -3.6, "attrs": {} },
    { "type": "wokwi-relay-module", "id": "relay1", "top": -105.4, "left": 316.8, "attrs": {} },
    { "type": "wokwi-vcc", "id": "vcc1", "top": -268.04, "left": 297.6, "attrs": {} },
    { "type": "wokwi-relay-module", "id": "relay2", "top": -172.6, "left": 316.8, "attrs": {} },
    {
      "type": "wokwi-pushbutton-6mm",
      "id": "btn2",
      "top": -107.8,
      "left": 240,
      "attrs": { "color": "green" }
    },
    {
      "type": "wokwi-pushbutton-6mm",
      "id": "btn3",
      "top": -59.8,
      "left": 240,
      "attrs": { "color": "green" }
    },
    { "type": "wokwi-relay-module", "id": "relay3", "top": -239.8, "left": 316.8, "attrs": {} },
    {
      "type": "wokwi-led",
      "id": "led1",
      "top": 27.6,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "blue" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r1",
      "top": 42.35,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-led",
      "id": "led2",
      "top": 46.8,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "red" }
    },
    {
      "type": "wokwi-led",
      "id": "led3",
      "top": 66,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "blue" }
    },
    {
      "type": "wokwi-led",
      "id": "led4",
      "top": 85.2,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "green" }
    },
    {
      "type": "wokwi-led",
      "id": "led5",
      "top": 104.4,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "white" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r2",
      "top": 61.55,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r3",
      "top": 80.75,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r4",
      "top": 99.95,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r6",
      "top": 119.15,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo1",
      "top": -105.6,
      "left": 268.8,
      "attrs": { "text": "pB2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo2",
      "top": -57.6,
      "left": 268.8,
      "attrs": { "text": "pB1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo3",
      "top": 38.4,
      "left": 518.4,
      "attrs": { "text": "bH1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo4",
      "top": 57.6,
      "left": 518.4,
      "attrs": { "text": "rH1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo5",
      "top": 76.8,
      "left": 518.4,
      "attrs": { "text": "bH2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo6",
      "top": 96,
      "left": 518.4,
      "attrs": { "text": "gH2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo7",
      "top": 115.2,
      "left": 518.4,
      "attrs": { "text": "wH2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo8",
      "top": -220.8,
      "left": 451.2,
      "attrs": { "text": "r1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo9",
      "top": -163.2,
      "left": 451.2,
      "attrs": { "text": "r2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo10",
      "top": -86.4,
      "left": 451.2,
      "attrs": { "text": "r2p1" }
    }
  ],
  "connections": [
    [ "relay1:IN", "mega:3", "green", [ "h0" ] ],
    [ "vcc1:VCC", "relay1:VCC", "red", [ "v0" ] ],
    [ "vcc1:VCC", "relay2:VCC", "red", [ "v0" ] ],
    [ "btn3:2.l", "mega:2", "green", [ "h0" ] ],
    [ "mega:4", "btn2:2.l", "green", [ "v0" ] ],
    [ "mega:GND.1", "btn2:1.l", "black", [ "v0" ] ],
    [ "mega:GND.1", "btn3:1.l", "black", [ "v0" ] ],
    [ "mega:GND.1", "relay1:GND", "black", [ "v0" ] ],
    [ "mega:GND.1", "relay2:GND", "black", [ "v0" ] ],
    [ "vcc1:VCC", "relay3:VCC", "red", [ "v0" ] ],
    [ "mega:5", "relay2:IN", "green", [ "v0" ] ],
    [ "mega:6", "relay3:IN", "green", [ "v0" ] ],
    [ "mega:GND.1", "relay3:GND", "black", [ "v0" ] ],
    [ "led1:A", "mega:35", "blue", [ "h-86.4", "v18" ] ],
    [ "led2:A", "mega:37", "orange", [ "h-86.4", "v8.3" ] ],
    [ "led3:A", "mega:39", "blue", [ "h-86.4", "v-1.15" ] ],
    [ "led4:A", "mega:41", "green", [ "h-86.4", "v-10.85" ] ],
    [ "led5:A", "mega:43", "white", [ "h-86.4", "v-20.3" ] ],
    [ "led1:C", "r1:2", "green", [ "h0" ] ],
    [ "led5:C", "r6:2", "green", [ "h0" ] ],
    [ "led4:C", "r4:2", "green", [ "h0" ] ],
    [ "led3:C", "r3:2", "green", [ "h0" ] ],
    [ "led2:C", "r2:2", "green", [ "h0" ] ],
    [ "mega:GND.5", "r6:1", "black", [ "v0.95", "h45.4" ] ],
    [ "r6:1", "r4:1", "black", [ "v0" ] ],
    [ "r4:1", "r3:1", "black", [ "v0" ] ],
    [ "r3:1", "r2:1", "black", [ "v0" ] ],
    [ "r2:1", "r1:1", "black", [ "v0" ] ]
  ],
  "dependencies": {}
}

Fixed. You gave up, and didn't even put the time in to make a state table. The button mechanism is very unresponsive.

sketch.ino
/*
  pB1 - pressing pB1 produces these results. After State 3 is State 0.
  STATE   0     1     0
  bH1     ON    ON
  rH1     ON    OFF
  r1      OFF   ON
  bH2     -     -
  gH2     -     -
  wH2     -     -
  r2      -     -
  r2p1    -     -

  pB2 - pressing pB2 produces these results. After State 2 is State 0.
  STATE   0     1      2    0
  bH1     -     -      -
  rH1     -     -      -
  r1      -     -      -
  bH2    ON     OFF    OFF
  gH2    OFF    OFF    ON
  wH2    OFF    ON     OFF
  r2     OFF    ON     OFF
  r2p1   OFF    ON     ON

*/

#define pushButton1 2  //Push Button for Accessory port side on D2
#define relay1 3       //High Output to Relay for pushButton1 on 3
#define blueHalo1 35   //Low Output to Blue Halo on pushButton1 on 34
#define redHalo1 37    //Low Output to Red Halo on pushButton1 on 36
#define pushButton2 4   //Push Button, Navigation - Anchor
#define relay2 5        //Output to Relay for Navigation Lights
#define relay2point1 6  //Output to Relay for Anchor Light
#define blueHalo2 39    //Output to Blue Halo on pushButton1 on
#define greenHalo2 41   //Output to Green Halo on pushButton1 on
#define whiteHalo2 43   //Output to White Halo on pushButton1 on

int state1 = 0;
int state2 = 0;
int old1 = 0;
int old2 = 0;
int buttonPoll1 = 0;
int buttonPoll2 = 0;

void setup() {
  pinMode(pushButton1, INPUT_PULLUP);  //Push Button set as Input with internal pullup
  pinMode(relay1, OUTPUT);             //Relay1 Set to output to Relay Module
  pinMode(blueHalo1, OUTPUT);          //blueHalo1 set as output to activate Blue Halo on pushButton1
  pinMode(redHalo1, OUTPUT);           //redHalo1 set as output to activate Red Halo on pushButton1

  pinMode(pushButton2, INPUT_PULLUP);  //Push Button set as Input with internal pullup
  pinMode(relay2, OUTPUT);             //Relay2 Set to output to Relay Module
  pinMode(relay2point1, OUTPUT);
  pinMode(blueHalo2, OUTPUT);   //blueHalo2 set as output to activate Blue Halo on pushButton2
  pinMode(greenHalo2, OUTPUT);  //whiteHalo2 set as output to activate Red Halo on pushButton2
  pinMode(whiteHalo2, OUTPUT);
}

void loop() {
  buttonPoll1 = digitalRead(pushButton1);
  if (buttonPoll1 == 1) {
    delay(50);
    buttonPoll1 = digitalRead(pushButton1);
    if (buttonPoll1 == 0) {
      state1 = old1 + 1;
      if (state1 > 1) state1 = 0;
    }
  }

  switch (state1) {
    case 0:
      digitalWrite(redHalo1, HIGH);
      digitalWrite(blueHalo1, HIGH);
      digitalWrite(relay1, LOW);
      old1 = state1;
      break;
    case 1:
      digitalWrite(redHalo1, LOW);
      digitalWrite(blueHalo1, HIGH);
      digitalWrite(relay1, HIGH);
      old1 = state1;
      break;
  } // <================================ MISSING CLOSE BRACE INSERTED

  buttonPoll2 = digitalRead(pushButton2);
  if (buttonPoll2 == 1) {
    delay(50);
    buttonPoll2 = digitalRead(pushButton2);
    if (buttonPoll2 == 0) {
      state2 = old2 + 1;
      if (state2 > 2) state2 = 0;
    }
  }

  switch (state2) {
    case 1:
      digitalWrite(blueHalo2, LOW);
      digitalWrite(greenHalo2, HIGH);
      digitalWrite(whiteHalo2, LOW);
      digitalWrite(relay2, HIGH);
      digitalWrite(relay2point1, HIGH);
      old2 = state2;
      break;
    case 2:
      digitalWrite(blueHalo2, LOW);
      digitalWrite(greenHalo2, LOW);
      digitalWrite(whiteHalo2, HIGH);
      digitalWrite(relay2, LOW);
      digitalWrite(relay2point1, HIGH);
      old2 = state2;
      break;
    default:
      digitalWrite(blueHalo2, HIGH);
      digitalWrite(greenHalo2, LOW);
      digitalWrite(whiteHalo2, LOW);
      digitalWrite(relay2, LOW);
      digitalWrite(relay2point1, LOW);
      old2 = 0;
      break;
  }
}

// } // <================================ EXTRA CLOSE BRACE REMOVED
diagram.json
{
  "version": 1,
  "author": "Anonymous maker",
  "editor": "wokwi",
  "parts": [
    { "type": "wokwi-arduino-mega", "id": "mega", "top": 0.6, "left": -3.6, "attrs": {} },
    { "type": "wokwi-relay-module", "id": "relay1", "top": -105.4, "left": 316.8, "attrs": {} },
    { "type": "wokwi-vcc", "id": "vcc1", "top": -268.04, "left": 297.6, "attrs": {} },
    { "type": "wokwi-relay-module", "id": "relay2", "top": -172.6, "left": 316.8, "attrs": {} },
    {
      "type": "wokwi-pushbutton-6mm",
      "id": "btn2",
      "top": -107.8,
      "left": 240,
      "attrs": { "color": "green" }
    },
    {
      "type": "wokwi-pushbutton-6mm",
      "id": "btn3",
      "top": -59.8,
      "left": 240,
      "attrs": { "color": "green" }
    },
    { "type": "wokwi-relay-module", "id": "relay3", "top": -239.8, "left": 316.8, "attrs": {} },
    {
      "type": "wokwi-led",
      "id": "led1",
      "top": 27.6,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "blue" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r1",
      "top": 42.35,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-led",
      "id": "led2",
      "top": 46.8,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "red" }
    },
    {
      "type": "wokwi-led",
      "id": "led3",
      "top": 66,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "blue" }
    },
    {
      "type": "wokwi-led",
      "id": "led4",
      "top": 85.2,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "green" }
    },
    {
      "type": "wokwi-led",
      "id": "led5",
      "top": 104.4,
      "left": 477,
      "rotate": 90,
      "attrs": { "color": "white" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r2",
      "top": 61.55,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r3",
      "top": 80.75,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r4",
      "top": 99.95,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r6",
      "top": 119.15,
      "left": 412.8,
      "attrs": { "value": "1000" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo1",
      "top": -105.6,
      "left": 268.8,
      "attrs": { "text": "pB2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo2",
      "top": -57.6,
      "left": 268.8,
      "attrs": { "text": "pB1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo3",
      "top": 38.4,
      "left": 518.4,
      "attrs": { "text": "bH1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo4",
      "top": 57.6,
      "left": 518.4,
      "attrs": { "text": "rH1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo5",
      "top": 76.8,
      "left": 518.4,
      "attrs": { "text": "bH2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo6",
      "top": 96,
      "left": 518.4,
      "attrs": { "text": "gH2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo7",
      "top": 115.2,
      "left": 518.4,
      "attrs": { "text": "wH2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo8",
      "top": -86.4,
      "left": 451.2,
      "attrs": { "text": "r1" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo9",
      "top": -163.2,
      "left": 451.2,
      "attrs": { "text": "r2" }
    },
    {
      "type": "wokwi-text",
      "id": "legendservo10",
      "top": -220.8,
      "left": 451.2,
      "attrs": { "text": "r2p1" }
    }
  ],
  "connections": [
    [ "relay1:IN", "mega:3", "green", [ "h0" ] ],
    [ "vcc1:VCC", "relay1:VCC", "red", [ "v0" ] ],
    [ "vcc1:VCC", "relay2:VCC", "red", [ "v0" ] ],
    [ "btn3:2.l", "mega:2", "green", [ "h0" ] ],
    [ "mega:4", "btn2:2.l", "green", [ "v0" ] ],
    [ "mega:GND.1", "btn2:1.l", "black", [ "v0" ] ],
    [ "mega:GND.1", "btn3:1.l", "black", [ "v0" ] ],
    [ "mega:GND.1", "relay1:GND", "black", [ "v0" ] ],
    [ "mega:GND.1", "relay2:GND", "black", [ "v0" ] ],
    [ "vcc1:VCC", "relay3:VCC", "red", [ "v0" ] ],
    [ "mega:5", "relay2:IN", "green", [ "v0" ] ],
    [ "mega:6", "relay3:IN", "green", [ "v0" ] ],
    [ "mega:GND.1", "relay3:GND", "black", [ "v0" ] ],
    [ "led1:A", "mega:35", "blue", [ "h-86.4", "v18" ] ],
    [ "led2:A", "mega:37", "orange", [ "h-86.4", "v8.3" ] ],
    [ "led3:A", "mega:39", "blue", [ "h-86.4", "v-1.15" ] ],
    [ "led1:C", "r1:2", "green", [ "h0" ] ],
    [ "led5:C", "r6:2", "green", [ "h0" ] ],
    [ "led4:C", "r4:2", "green", [ "h0" ] ],
    [ "led3:C", "r3:2", "green", [ "h0" ] ],
    [ "led2:C", "r2:2", "green", [ "h0" ] ],
    [ "mega:GND.5", "r6:1", "black", [ "v0.95", "h45.4" ] ],
    [ "r6:1", "r4:1", "black", [ "v0" ] ],
    [ "r4:1", "r3:1", "black", [ "v0" ] ],
    [ "r3:1", "r2:1", "black", [ "v0" ] ],
    [ "r2:1", "r1:1", "black", [ "v0" ] ],
    [ "led5:A", "mega:41", "white", [ "h-86.4", "v-9.6" ] ],
    [ "led4:A", "mega:43", "green", [ "h0" ] ]
  ],
  "dependencies": {}
}

I did not give up. I had my 3 young daughters with me today. The state table was written in both individual functioning codes.

I appreciate and value everyone's time and input...