int button_pin = 12;
int counter = 0;
int button_current_value, button_old_value;
int a = 2; int b = 3;
int c = 5; int d = 6;
int e = 7; int f = 9;
int g = 8; int dp = 4;
// Define RGB LED pins
int redPin = 10;
int greenPin = 11;
int bluePin = 13;
void setup() {
pinMode(button_pin, INPUT_PULLUP);
Serial.begin(9600);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(dp, OUTPUT);
// Initialize RGB LED pins
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
readButton();
showNum(counter % 10);
setColor(counter % 10);
}
void readButton() {
button_current_value = !digitalRead(button_pin);
if (button_current_value == 0 && button_old_value == 1) {
counter++;
Serial.println(counter);
} else {
delay(50);
}
button_old_value = button_current_value;
}
void showNum(int num) {
switch (num) {
case 0: zero(); break;
case 1: one(); break;
case 2: two(); break;
case 3: three(); break;
case 4: four(); break;
case 5: five(); break;
case 6: six(); break;
case 7: seven(); break;
case 8: eight(); break;
case 9: nine(); break;
}
}
void setColor(int num) {
switch (num) {
case 0: analogWrite(redPin, 255); analogWrite(greenPin, 0); analogWrite(bluePin, 0); break; // Red
case 1: analogWrite(redPin, 0); analogWrite(greenPin, 255); analogWrite(bluePin, 0); break; // Green
case 2: analogWrite(redPin, 0); analogWrite(greenPin, 0); analogWrite(bluePin, 255); break; // Blue
case 3: analogWrite(redPin, 255); analogWrite(greenPin, 255); analogWrite(bluePin, 0); break; // Yellow
case 4: analogWrite(redPin, 0); analogWrite(greenPin, 255); analogWrite(bluePin, 255); break; // Cyan
case 5: analogWrite(redPin, 255); analogWrite(greenPin, 0); analogWrite(bluePin, 255); break; // Magenta
case 6: analogWrite(redPin, 255); analogWrite(greenPin, 255); analogWrite(bluePin, 255); break; // White
case 7: analogWrite(redPin, 127); analogWrite(greenPin, 0); analogWrite(bluePin, 127); break; // Purple
case 8: analogWrite(redPin, 127); analogWrite(greenPin, 127); analogWrite(bluePin, 0); break; // Orange
case 9: analogWrite(redPin, 0); analogWrite(greenPin, 127); analogWrite(bluePin, 127); break; // Aqua
}
}
void one() {
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
void two() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
void three() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
void four() {
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void five() {
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void six() {
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void seven() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
void eight() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void nine() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void zero() {
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
}