Hello Again!
I made a circuit with an Arduino, 6 pushbuttons, an interface card, driver and 2 EL-wires.
See picture:
(in future it will become 12 wires, but I stick to 2 in this exploring fase)
These wires need to be controlled by the pushbuttons via the Arduino acoording this scheme:
buttons: 1 2 3 4 5 6
wire 1 ON ON OFF OFF ON OFF
wire 2 ON OFF ON OFF OFF ON
The wires must stay on until the same or another button is pushed
The code below does not work. Both wires stay on, no matter what button I push...
What am I doing wrong???
// INPUTS
int switch1Pin = 14;
int switch2Pin = 15;
int switch3Pin = 16;
int switch4Pin = 17;
int switch5Pin = 18;
int switch6Pin = 19;
// OUTPUTS
int wire1Pin = 0;
int wire2Pin = 1;
// VARIABLES
boolean last1Button = LOW;
boolean last2Button = LOW;
boolean last3Button = LOW;
boolean last4Button = LOW;
boolean last5Button = LOW;
boolean last6Button = LOW;
boolean current1Button = LOW;
boolean current2Button = LOW;
boolean current3Button = LOW;
boolean current4Button = LOW;
boolean current5Button = LOW;
boolean current6Button = LOW;
boolean wire1On = false;
boolean wire2On = false;
boolean wire1Off = true;
boolean wire2Off = true;
// VOID SETUP
void setup ()
{
pinMode(switch1Pin, INPUT);
pinMode(switch2Pin, INPUT);
pinMode(switch3Pin, INPUT);
pinMode(switch4Pin, INPUT);
pinMode(switch5Pin, INPUT);
pinMode(switch6Pin, INPUT);
pinMode(wire1Pin, OUTPUT);
pinMode(wire2Pin, OUTPUT);
}
boolean debounce1(boolean last1)
{
boolean current1 = digitalRead(switch1Pin);
if (last1 != current1)
{
delay(5);
current1 = digitalRead(switch1Pin);
}
return current1;
}
boolean debounce2(boolean last2)
{
boolean current2 = digitalRead(switch2Pin);
if (last2 != current2)
{
delay(5);
current2 = digitalRead(switch2Pin);
}
return current2;
}
boolean debounce3(boolean last3)
{
boolean current3 = digitalRead(switch3Pin);
if (last3 != current3)
{
delay(5);
current3 = digitalRead(switch3Pin);
}
return current3;
}
boolean debounce4(boolean last4)
{
boolean current4 = digitalRead(switch4Pin);
if (last4 != current4)
{
delay(5);
current4 = digitalRead(switch4Pin);
}
return current4;
}
boolean debounce5(boolean last5)
{
boolean current5 = digitalRead(switch5Pin);
if (last5 != current5)
{
delay(5);
current5 = digitalRead(switch5Pin);
}
return current5;
}
boolean debounce6(boolean last6)
{
boolean current6 = digitalRead(switch6Pin);
if (last6 != current6)
{
delay(5);
current6 = digitalRead(switch6Pin);
}
return current6;
}
// VOID LOOP
void loop ()
{
current1Button = debounce1(last1Button);
if (last1Button == LOW && current1Button == HIGH)
{
wire1On = !wire1On;
wire2On = !wire2On;
wire1Off = !wire1Off;
wire2Off = !wire2Off;
}
last1Button = current1Button;
digitalWrite(wire1Pin, wire1On);
digitalWrite(wire2Pin, wire2On);
current2Button = debounce2(last2Button);
if (last2Button == LOW && current2Button == HIGH)
{
wire1On = !wire1On;
wire2On = !wire2On;
wire1Off = !wire1Off;
wire2Off = !wire2Off;
}
last2Button = current2Button;
digitalWrite(wire1Pin, wire1On);
digitalWrite(wire2Pin, wire2Off);
current3Button = debounce3(last3Button);
if (last3Button == LOW && current3Button == HIGH)
{
wire1On = !wire1On;
wire2On = !wire2On;
wire1Off = !wire1Off;
wire2Off = !wire2Off;
}
last3Button = current3Button;
digitalWrite(wire2Pin, wire2On);
digitalWrite(wire1Pin, wire1Off);
current4Button = debounce4(last4Button);
if (last4Button == LOW && current4Button == HIGH)
{
wire1On = !wire1On;
wire2On = !wire2On;
wire1Off = !wire1Off;
wire2Off = !wire2Off;
}
last4Button = current4Button;
digitalWrite(wire1Pin, wire1Off);
digitalWrite(wire2Pin, wire2Off);
current5Button = debounce5(last5Button);
if (last5Button == LOW && current5Button == HIGH)
{
wire1On = !wire1On;
wire2On = !wire2On;
wire1Off = !wire1Off;
wire2Off = !wire2Off;
}
last5Button = current5Button;
digitalWrite(wire1Pin, wire1On);
digitalWrite(wire2Pin, wire2Off);
current6Button = debounce6(last6Button);
if (last6Button == LOW && current6Button == HIGH)
{
wire1On = !wire1On;
wire2On = !wire2On;
wire1Off = !wire1Off;
wire2Off = !wire2Off;
}
last6Button = current6Button;
digitalWrite(wire1Pin, wire1Off);
digitalWrite(wire2Pin, wire2On);
}
Please.... push me in the right direction, or correct me were I am going wrong!!!
Thank you!