Hi everyone!
If I'm doing something here by posting this, that is out of place, such as having the wrong format, etc. Let me know.
On to the problem; I have the following code. No real problems but I'm looking to add a feature where I can hold down the same monetary button used and have it force reset the arduino.
Any help would be dope, thanks.
P.S. If you see aything else that can be improved upon, let me know.
P.P.S. Their may be some redudant bits of code in there. I hacked up codes from everywhere to put this together.
//initialize and declare variables
const int ledPinTL = 12; //top left led
const int ledPinTM = 11; //top middle led
const int ledPinTR = 10; //top right led
const int ledPinMM = 9; //middle middle led
const int ledPinBL = 8; //bottom left led
const int ledPinBM = 7; //bottom middle led
const int ledPinBR = 6; //bottom right led
const int buttonPin = 2; //push button attached to this pin
int buttonCounter; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button
//----------------------------------------------------------------------------------------------------------------
void setup() {
//set the mode of the pins...
pinMode(ledPinTL, OUTPUT);
pinMode(ledPinTM, OUTPUT);
pinMode(ledPinTR, OUTPUT);
pinMode(ledPinMM, OUTPUT);
pinMode(ledPinBL, OUTPUT);
pinMode(ledPinBM, OUTPUT);
pinMode(ledPinBR, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(9600);
}
//---------------------------------------------------------------------------------------------------------------
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
} else {
buttonCounter++;
Serial.println("Button count: ");
Serial.println(buttonCounter);
}
delay(50);
}
lastButtonState = buttonState;
if(buttonCounter > 8) buttonCounter = 1;
if(buttonCounter == 1){
digitalWrite(ledPinTL, HIGH);
digitalWrite(ledPinTM, LOW);
digitalWrite(ledPinTR, LOW);
digitalWrite(ledPinMM, LOW);
digitalWrite(ledPinBL, HIGH);
digitalWrite(ledPinBM, LOW);
digitalWrite(ledPinBR, LOW);
}
else if(buttonCounter == 2){
digitalWrite(ledPinTL, LOW);
digitalWrite(ledPinTM, HIGH);
digitalWrite(ledPinTR, HIGH);
digitalWrite(ledPinMM, HIGH);
digitalWrite(ledPinBL, HIGH);
digitalWrite(ledPinBM, HIGH);
digitalWrite(ledPinBR, LOW);
}
else if(buttonCounter == 3){
digitalWrite(ledPinTL, LOW);
digitalWrite(ledPinTM, HIGH);
digitalWrite(ledPinTR, HIGH);
digitalWrite(ledPinMM, HIGH);
digitalWrite(ledPinBL, LOW);
digitalWrite(ledPinBM, HIGH);
digitalWrite(ledPinBR, HIGH);
}
else if(buttonCounter == 4){
digitalWrite(ledPinTL, HIGH);
digitalWrite(ledPinTM, LOW);
digitalWrite(ledPinTR, HIGH);
digitalWrite(ledPinMM, HIGH);
digitalWrite(ledPinBL, LOW);
digitalWrite(ledPinBM, LOW);
digitalWrite(ledPinBR, HIGH);
}
else if(buttonCounter == 5){
digitalWrite(ledPinTL, HIGH);
digitalWrite(ledPinTM, HIGH);
digitalWrite(ledPinTR, LOW);
digitalWrite(ledPinMM, HIGH);
digitalWrite(ledPinBL, LOW);
digitalWrite(ledPinBM, HIGH);
digitalWrite(ledPinBR, HIGH);
}
else if(buttonCounter == 6){
digitalWrite(ledPinTL, HIGH);
digitalWrite(ledPinTM, HIGH);
digitalWrite(ledPinTR, LOW);
digitalWrite(ledPinMM, HIGH);
digitalWrite(ledPinBL, HIGH);
digitalWrite(ledPinBM, HIGH);
digitalWrite(ledPinBR, HIGH);
}
else if(buttonCounter == 7){
digitalWrite(ledPinTL, LOW);
digitalWrite(ledPinTM, HIGH);
digitalWrite(ledPinTR, HIGH);
digitalWrite(ledPinMM, LOW);
digitalWrite(ledPinBL, LOW);
digitalWrite(ledPinBM, LOW);
digitalWrite(ledPinBR, HIGH);
}
else if(buttonCounter == 8){
digitalWrite(ledPinTL, HIGH);
digitalWrite(ledPinTM, HIGH);
digitalWrite(ledPinTR, HIGH);
digitalWrite(ledPinMM, HIGH);
digitalWrite(ledPinBL, HIGH);
digitalWrite(ledPinBM, HIGH);
digitalWrite(ledPinBR, HIGH);
}
}
// Take note: if any additional code is made that attaches itself to the buttonCounter,
// button press 1 is also button press 9. All other numbers count as they should.
// 9 is necessary for the code to loop back over itself without problems
Button_counter.ino (4.5 KB)