hello i posted days ago about a 2 digit UP, DOWN counter and thanks for the help , now i want to add a third 7 segment display to make the count from 0 to 999 i modified the code it compiles but not sure if its working can you help me?(still didnt add the decrementation button next step
const char A = A3;
const char B = A0;
const char C = A1;
const char D = A2 ;
const char E = 5;
const char F_SEG = 6;
const char G = 7;
const char BTN1 = 10;
const char BTN2 = 11;
const char CA1 = 9;
const char CA2 = 8;
const char CA3 = 3;
const char segs[7] = { A, B, C, D, E, F_SEG, G };
// Segments that make each number
const byte numbers[10] = { 0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010,
0b0000010, 0b1111000, 0b0000000, 0b0010000 };
char digit1 = 0;
char digit2 = 0;
char digit3 = 0;
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F_SEG, OUTPUT);
pinMode(G, OUTPUT);
pinMode(CA1, OUTPUT);
pinMode(CA2, OUTPUT);
pinMode(CA3, OUTPUT);
pinMode(BTN1, INPUT);
pinMode(BTN2, INPUT);
}
void loop()
{
char val1 = digitalRead(BTN1);
if (val1 == HIGH) {
digit1++;
if (digit1 >=10) {
digit1 = 0;
if (val1 == HIGH) {
digit2++;
if (digit2 >=10){
digit2 = 0;
digit3++;
}
}
}
digitalWrite(CA1, HIGH);
digitalWrite(CA2, HIGH);
digitalWrite(CA3, HIGH);
delay(200);
}
//display number
unsigned long startTime = millis();
for (unsigned long elapsed=0; elapsed < 400; elapsed = millis() - startTime) {
lightDigit1(numbers[digit1]);
delay(10);
lightDigit2(numbers[digit2]);
delay(10);
lightDigit3(numbers[digit3]);
delay(10);
}
}
void lightDigit1(byte number) {
digitalWrite(CA1, LOW);
digitalWrite(CA2, HIGH);
digitalWrite(CA3,HIGH );
lightSegments(number);
}
void lightDigit2(byte number) {
digitalWrite(CA1, HIGH);
digitalWrite(CA2, LOW);
digitalWrite(CA3, HIGH);
lightSegments(number);
}
void lightDigit3(byte number) {
digitalWrite(CA1, HIGH);
digitalWrite(CA2, HIGH);
digitalWrite(CA3, LOW);
lightSegments(number);
}
void lightSegments(byte number) {
for (int i = 0; i < 7; i++) {
int bit = bitRead(number, i);
digitalWrite(segs[i], bit);
}
}