The basic counting example worked, I modified so it would add by 1 instead of 5. and go to 21 and reset to 0.
I have this displaying through a serial monitor so I know the count works.
How could I display the count on the seven segment displays? If binary is the answer I know binary, but wouldnt know the syntax for the code.
Trying to combine these two codes:
const byte Button = A0;
byte ButtonState;
byte lastState = LOW;
byte count = 0;
void setup() {
Serial.begin(9600);
pinMode(Button, INPUT);
}
void loop() {
ButtonState = digitalRead(Button);
if(ButtonState && ButtonState != lastState) // button latch, no debounce needed!!!!!
{
if(count < 21) // This will check to see if the count is within a range of 0 - 21, and anything over that, it will reset count back to 0. Of course, this will happen anyways because count is a BYTE, and not an int or any other type.
count += 1; // same as count = count + 1;
else
count = 0;
Serial.println("The Score is: ");
Serial.println(count);
}
lastState = ButtonState;
}
#define Button 9
int count = 0; // current display count
int val = 0; // digital input from button
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(Button, OUTPUT);
Serial.begin(9600);
}
void loop() {
val = digitalRead(Button);
if (val == HIGH) {
count++;
// write '0'
Serial.println(count);
if (count == 0)
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 0);
}
else if(count == 1)
{
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
}
else if(count == 2)
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 1);
}
else if(count == 3)
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
}
else if(count == 4)
{
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
}
else if(count == 5)
{
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
}
else if(count == 6)
{
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
}
else if(count == 7)
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
}
else if(count == 8)
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
}
else if(count == 9)
{
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
}
else
count = 0;
}
}
Thanks for all your replies. The first code proves i do not need to debounce the button and works fine, now I need to just print the count to the 7 segment display.