#define di_pin1 9
#define di_pin2 10
#define di_pin3 11
#define di_pin4 12
unsigned int dig[4]={di_pin1,di_pin2,di_pin3,di_pin4};
unsigned int seg[8]={2,3,4,5,6,7,8};// for pins a,b,c,d,e,f,g
const byte digitPatterns[15] = {
B11000000, // 0
B11001111, // 1
B10100100, // 2
B10110000, // 3
B10011001, // 4
B10010010, // 5
B10000010, // 6
B11111000, // 7
B10000000, // 8
B10010000, // 9
B10001000, //A
B10000000, ///B
B11000110,//C
B11000000,//D
B10000110,//E
//B10001110 //F
};
void pin_dec()
{
for(int i=0;i<5;i++)
{
pinMode(dig[i], OUTPUT);
}
for(int i=0;i<7;i++)
{
pinMode(seg[i], OUTPUT);
}
}
void display_pin(int num ,int num2)
{
for(int i=0;i<5;i++)
{
digitalWrite(dig[i],LOW);
}
for(int i=0;i<8;i++)
{
digitalWrite(seg[i],LOW);
}
for(int i=0;i<15;i++)
{
digitalWrite(seg[i],bitRead(digitPatterns[num], i));
Serial.println(bitRead(digitPatterns[num], i));
// delay(1000);
}
digitalWrite(dig[num2], HIGH);
delay(1000);
}
void setup() {
// put your setup code here, to run once:
pin_dec();
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
for(int i=0;i<15;i++)
{
//delay(1000);
for(int j=0;j<10;j++)
{
display_pin(i,1);
display_pin(j,2);
}
}
// delay(1000);
}
// const int segments[7] = {2, 3, 4, 5, 6, 7, 8}; // Pins for segments a, b, c, d, e, f, g
// const int digitPins[4] = {9, 10, 11, 12}; // Pins for common anode digits 1, 2, 3, 4
// // Define the common anode digit patterns
// const byte digitPatterns[10] = {
// B11000000, // 0
// B11001111, // 1
// B10100100, // 2
// B10110000, // 3
// B10011001, // 4
// B10010010, // 5
// B10000010, // 6
// B11111000, // 7
// B10000000, // 8
// B10010000 // 9
// };
// void setup() {
// // Initialize segment and digit pins as OUTPUT
// for (int i = 0; i < 7; i++) {
// pinMode(segments[i], OUTPUT);
// }
// for (int i = 0; i < 4; i++) {
// pinMode(digitPins[i], OUTPUT);
// }
// }
// void loop() {
// // Display numbers 0 to 9 in a loop
// for (int i = 0; i < 10; i++) {
// displayNumber(i);
// delay(1000); // Display for 1 second
// }
// }
// void displayNumber(int number) {
// // Display a number on the seven-segment display
// // Turn off all digits
// for (int i = 0; i < 4; i++) {
// digitalWrite(digitPins[i], LOW); // Common anode, so set to LOW to turn on the digit
// }
// // Activate segments based on the digit pattern
// for (int i = 0; i < 7; i++) {
// digitalWrite(segments[i], bitRead(digitPatterns[number], i));
// }
// // Turn on the corresponding digit
// digitalWrite(digitPins[number % 4], HIGH); // Common anode, so set to HIGH to turn off the digit
// // Delay to make the display visible
// delay(5);
// }