#include <DS3231.h>
#include <Wire.h>
DS3231 RTC;
int second;
int minute;
int hour;
int date;
int month;
int year;
bool h12;
bool hPM;
bool century;
/*
Out Mux1 to 7 Segment
DP G F E D C B A DP G F E D C B A
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Out Mux2 to 7 Segment
A B C D E F G DP A B C D E F G DP
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
7 Segment Pin to 7 Segment Digit
ABCDEFGH
0 = 11111100
1 = 01100000
2 = 11011010
3 = 11110010
4 = 01100110
5 = 10110110
6 = 10111110
7 = 11100000
8 = 11111110
9 = 11110110
write multiple digit use %10 and /10
*/
void setup() {
Serial.begin(9600);
Serial.println(".");Serial.println(".");Serial.println(".");
Wire.begin();
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(2, OUTPUT);//A
pinMode(4, OUTPUT);//B
pinMode(9, OUTPUT);//C
pinMode(10, OUTPUT);//D
pinMode(11, OUTPUT);//E
pinMode(12, OUTPUT);//F
pinMode(16, OUTPUT);//G
digitalWrite(3, LOW);
digitalWrite(2, HIGH);//A
digitalWrite(4, HIGH);//B
digitalWrite(9, HIGH);//C
digitalWrite(10, HIGH);//D
digitalWrite(11, HIGH);//E
digitalWrite(12, HIGH);//F
digitalWrite(16, HIGH);//G
}
void loop() {
Disnum(0);
muxall();
delay(500);
Disnum(1);
muxall();
delay(500);
Disnum(2);
muxall();
delay(500);
Disnum(3);
muxall();
delay(500);
Disnum(4);
muxall();
delay(500);
Disnum(5);
muxall();
delay(500);
Disnum(6);
muxall();
delay(500);
Disnum(7);
muxall();
delay(500);
Disnum(8);
muxall();
delay(500);
Disnum(9);
muxall();
delay(500);
}
void muxall(){
mux(0);
mux(1);
mux(2);
mux(3);
mux(4);
mux(5);
mux(6);
mux(7);
mux(8);
mux(9);
mux(10);
mux(11);
}
void mux(uint8_t chanel){
digitalWrite(5, chanel & 0x01);
digitalWrite(6, chanel & 0x02);
digitalWrite(7, chanel & 0x04);
digitalWrite(8, chanel & 0x08);
}
void Disnum(uint8_t nut){
if(nut == 0){D0();}
else if(nut == 1){D1();}
else if(nut == 2){D2();}
else if(nut == 3){D3();}
else if(nut == 4){D4();}
else if(nut == 5){D5();}
else if(nut == 6){D6();}
else if(nut == 7){D7();}
else if(nut == 8){D8();}
else if(nut == 9){D9();}
}
void D0(){
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
}
void D1(){
digitalWrite(4, HIGH);
digitalWrite(9, HIGH);
}
void D2(){
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(16, HIGH);
}
void D3(){
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(16, HIGH);
}
void D4(){
digitalWrite(4, HIGH);
digitalWrite(9, HIGH);
digitalWrite(12, HIGH);
digitalWrite(16, HIGH);
}
void D5(){
digitalWrite(2, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(12, HIGH);
digitalWrite(16, HIGH);
}
void D6(){
digitalWrite(2, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(16, HIGH);
}
void D7(){
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
digitalWrite(9, HIGH);
}
void D8(){
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(16, HIGH);
}
void D9(){
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(12, HIGH);
digitalWrite(16, HIGH);
}Loading
cd74hc4067
cd74hc4067