Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define DIG1 10
- #define DIG2 9
- #define DIG3 6
- #define DIG4 5
- // A
- // ---------
- // | |
- // F| |B
- // | G |
- // ---------
- // | |
- // E| |C
- // | D |
- // ---------
- #define SEGA 2
- #define SEGB 0
- #define SEGC 3
- #define SEGD 8
- #define SEGE 7
- #define SEGF 4
- #define SEGG 1
- static uint8_t number_to_segment[10] =
- {
- 0b00111111, //0
- 0b00000110, //1
- 0b01011011, //2
- 0b01001111, //3
- 0b01100110, //4
- 0b01101101, //5
- 0b01111101, //6
- 0b00000111, //7
- 0b01111111, //8
- 0b01101111 //9
- };
- void select_digit(int digit)
- {
- digitalWrite(DIG1, digit==1);
- digitalWrite(DIG2, digit==2);
- digitalWrite(DIG3, digit==3);
- digitalWrite(DIG4, digit==4);
- }
- void set_segment(int segments)
- {
- segments = ~segments; // binary codes are inversed, too lazy to fix it
- digitalWrite(SEGA, segments&0x01);
- digitalWrite(SEGB, segments&0x02);
- digitalWrite(SEGC, segments&0x04);
- digitalWrite(SEGD, segments&0x08);
- digitalWrite(SEGE, segments&0x10);
- digitalWrite(SEGF, segments&0x20);
- digitalWrite(SEGG, segments&0x40);
- }
- int counter;
- void setup() {
- pinMode(DIG1, OUTPUT);
- pinMode(DIG2, OUTPUT);
- pinMode(DIG3, OUTPUT);
- pinMode(DIG4, OUTPUT);
- pinMode(SEGA, OUTPUT);
- pinMode(SEGB, OUTPUT);
- pinMode(SEGC, OUTPUT);
- pinMode(SEGD, OUTPUT);
- pinMode(SEGE, OUTPUT);
- pinMode(SEGF, OUTPUT);
- pinMode(SEGG, OUTPUT);
- }
- void loop() {
- counter = millis()%10000;
- int display_delay = 1;
- select_digit(0);
- set_segment(number_to_segment[counter/1000]);
- select_digit(1);
- delayMicroseconds(display_delay);
- select_digit(0);
- set_segment(number_to_segment[(counter%1000)/100]);
- select_digit(2);
- delayMicroseconds(display_delay);
- select_digit(0);
- set_segment(number_to_segment[(counter%100)/10]);
- select_digit(3);
- delayMicroseconds(display_delay);
- select_digit(0);
- set_segment(number_to_segment[counter%10]);
- select_digit(4);
- delayMicroseconds(display_delay);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement