d'oh! need help please........

Hi everybody. I really do not have much experience with programming an arduino and hope you guys can help me if possible.
I only managed to successfully program one uno for a washing machine - drum spins clockwise, pause 3 seconds, drum spins counter clockwise - - hehe!

Here is the situation. I have a small little Opel corsa utility pickup. The car is very small with extremely limited space behind the dashboard so I can't fit latching switches for the aircon pump and 3 sets of spotlights. I need 4 switches - aircon, white spotlights, yellow spotlights and reverse gear spotlights. So I decided to install micro momentary switches which does not take a lot of space, which i will then run through an arduino micro or uno to switch each relay permanently on or off. I will use the 5V outputs to switch the relay drivers for each individual relay. So you will have something like this.... Switch 1 will latch relay driver for relay 1 which will handle the aircon pump. Switch 2 will latch relay driver for relay 2 which will handle the yellow fog lights,----- you get the picture up to switch 4. (reverse light spot light)

With me so far? Good.....

I found this code and it is working perfectly......

const unsigned int BUTTON_PIN = 7;
const unsigned int LED_PIN = 13;

int old_button_state = LOW;
int led_state = LOW;

void setup() {
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT);
}

void loop() {
  const int CURRENT_BUTTON_STATE = digitalRead(BUTTON_PIN);

  if (CURRENT_BUTTON_STATE != old_button_state &&
      CURRENT_BUTTON_STATE == HIGH)
  {
    led_state = (led_state == LOW ? HIGH : LOW);
    digitalWrite(LED_PIN, led_state);
    delay(50);
  }
  old_button_state = CURRENT_BUTTON_STATE;
}

This is perfect for what I want to do - I will just replace the led with an relay driver and relay. OK. Now I tried to add for now only one additional switch and LED (remember , I need 4 switches each operating it's own LED). So I tried to modified the code to look like this.......

const unsigned int BUTTON1_PIN = 2;
const unsigned int BUTTON2_PIN = 3;
const unsigned int LED_PIN1 = 13;
const unsigned int LED_PIN2 = 12;

int old_button_state = LOW;
int led_state = LOW;

void setup() {
  pinMode(LED_PIN1, OUTPUT);
  pinMode(LED_PIN2, OUTPUT);
  pinMode(BUTTON1_PIN, INPUT);
  pinMode(BUTTON2_PIN, INPUT);
}

void loop() {
  const int CURRENT_BUTTON_STATE = digitalRead(BUTTON1_PIN);

  if (CURRENT_BUTTON_STATE != old_button_state &&
      CURRENT_BUTTON_STATE == HIGH)
  {
    led_state = (led_state == LOW ? HIGH : LOW);
    digitalWrite(LED_PIN1, led_state);
    delay(50);
  }
  old_button_state = CURRENT_BUTTON_STATE;
}

void loop() {
  const int CURRENT_BUTTON_STATE = digitalRead(BUTTON2_PIN);

  if (CURRENT_BUTTON_STATE != old_button_state &&
      CURRENT_BUTTON_STATE == HIGH)
  {
    led_state = (led_state == LOW ? HIGH : LOW);
    digitalWrite(LED_PIN2, led_state);
    delay(50);
  }
  old_button_state = CURRENT_BUTTON_STATE;
}

Too bad it doesn't work, I get this.......... well I attached it hope it is on this post.....)

Any Ideas how to fix these 3 errors, any suggestions, help greatly appreciated!!!!
Thanks!

Moderator edit:
</mark> <mark>[code]</mark> <mark>

</mark> <mark>[/code]</mark> <mark>
tags added.

2btn2ledARDUINOerror.bmp (1.13 MB)

You have two void loop() on your code.

Clearly that cant be right :wink:

you have two loops, remove the second void loop() and the bracket above it.
You also have declared CURRENT_BUTTON_STATE twice, change the second one to CURRENT_BUTTON_STATE2
it should verify now.

lots of issues actually

try this, it compiles but I didn't test it.

one loop() function

make your variable names match

don't use const for variables that may change

use static for variables that change but must survive a change in scope

const unsigned int BUTTON1_PIN = 2;
const unsigned int BUTTON2_PIN = 3;
const unsigned int LED_PIN1 = 13;
const unsigned int LED_PIN2 = 12;

int led_state = LOW;

void setup() 
{
  pinMode(LED_PIN1, OUTPUT);
  pinMode(LED_PIN2, OUTPUT);
  pinMode(BUTTON1_PIN, INPUT);
  pinMode(BUTTON2_PIN, INPUT);
}

void loop() 
{
  static int old_button_state1;
  static int old_button_state2;
  int CURRENT_BUTTON_STATE1 = digitalRead(BUTTON1_PIN);
  int CURRENT_BUTTON_STATE2 = digitalRead(BUTTON2_PIN);
  if (CURRENT_BUTTON_STATE1 != old_button_state1 && CURRENT_BUTTON_STATE1 == HIGH)
  {
    led_state = (led_state == LOW ? HIGH : LOW);
    digitalWrite(LED_PIN1, led_state);
    delay(50);
  }
  old_button_state1 = CURRENT_BUTTON_STATE1;

  if (CURRENT_BUTTON_STATE2 != old_button_state2 && CURRENT_BUTTON_STATE2 == HIGH)
  {
    led_state = (led_state == LOW ? HIGH : LOW);
    digitalWrite(LED_PIN2, led_state);
    delay(50);
  }
  old_button_state2 = CURRENT_BUTTON_STATE2;
}

what about this:

instead of this:

digitalWrite(LED_PIN2, !digitalRead(LED_PIN2));
led_state = (led_state == LOW ? HIGH : LOW);
    digitalWrite(LED_PIN2, led_state);

also TRY_TO_MAKE_YOUR_LIFE_EASIER-BY_MAKING_VARIABLE_NAMES_EASIER_TO_TYPE

like the camelHump variableName method