Hi, I am new to the Arduino.
I am using 2 LED's(Red and Green) and a button.
What i am trying to do is on first button press, Red Led starts to blink.
On second button press, Green Led Lights up.
After that Green Led and Red Led will keep alternating HIGH and LOW.
I managed to compile the code:
const int greenLed = 12;
const int redLed = 13;
const int pushButtonPin = 2;
int pushButtonCount = 0;
int pushButtonState = 0;
int lastButtonState = 0;
void setup()
{
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(pushButtonPin, INPUT);
}
void loop()
{
pushButtonState = digitalRead(pushButtonPin);
if(pushButtonState != lastButtonState) {
if(pushButtonState == HIGH) {
pushButtonCount++;
updateOutput(pushButtonCount);
}
}
lastButtonState = pushButtonState;
}
void updateOutput(int buttonPushCount) {
if(buttonPushCount == 1) {
digitalWrite(redLed, HIGH);
} else if(buttonPushCount == 2)
{
digitalWrite(redLed, HIGH);
delay(100);
digitalWrite(redLed, LOW);
delay(100);
digitalWrite(greenLed, HIGH);
delay(100);
digitalWrite(greenLed, LOW);
delay(100);
digitalWrite(redLed, HIGH);
delay(100);
digitalWrite(redLed, LOW);
delay(100);
digitalWrite(greenLed, HIGH);
delay(100);
digitalWrite(greenLed, LOW);
delay(100);
digitalWrite(redLed, HIGH);
delay(100);
digitalWrite(redLed, LOW);
delay(100);
digitalWrite(greenLed, HIGH);
delay(100);
digitalWrite(greenLed, LOW);
delay(100);
}
}
There are two problems:
- Upon uploading the code, Red Led Lights up even though the button is not pressed at all
- Upon the button press, the console starts printing out error messages:
Error inside Serial.serialEvent()
java.io.IOException: Bad file descriptor in nativeavailable
at gnu.io.RXTXPort.nativeavailable(Native Method)
at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1532)
at processing.app.Serial.serialEvent(Serial.java:258)
at gnu.io.RXTXPort.sendEvent(RXTXPort.java:732)
at gnu.io.RXTXPort.eventLoop(Native Method)
at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575)
Help is appreciated