---
# System prepended metadata

title: 7 segment display

---

# 7 segment display

```clike
const int seg7_pin[7]={2,3,4,5,6,7,8};
const int seg7_decode[16][7]={
  {1,1,1,1,1,1,0},  // 0
  {0,1,1,0,0,0,0},  // 1
  {1,1,0,1,1,0,1},  // 2
  {1,1,1,1,0,0,1},  // 3
  {0,1,1,0,0,1,1},  // 4
  {1,0,1,1,0,1,1},  // 5
  {1,0,1,1,1,1,1},  // 6
  {1,1,1,0,0,0,0},  // 7
  {1,1,1,1,1,1,1},  // 8
  {1,1,1,1,0,1,1},  // 9
  {1,1,1,0,1,1,1},  // a
  {0,0,1,1,1,1,1},  // b
  {1,0,0,1,1,1,0},  // c
  {0,1,1,1,1,0,1},  // d
  {1,0,0,1,1,1,1},  // e
  {1,0,0,0,1,1,1}}; // f

void init_seg7();
void seg7_displayNum(int num);

void setup() {
  Serial.begin(9600);
  // put your setup code here, to run once:
  init_seg7();
}

void loop() {
  // put your main code here, to run repeatedly:
  for(int i=0;i<16;i++){
    seg7_displayNum(i);
    delay(1000);
  }
}

void init_seg7(){
  for(int i=0;i<7;i++) pinMode(seg7_pin[i],OUTPUT);
}

void seg7_displayNum(int num){
  int state;
  
  for(int i=0;i<7;i++){
    state=seg7_decode[num][i];
    if(state) digitalWrite(seg7_pin[i],LOW);
    else digitalWrite(seg7_pin[i],HIGH);
  }
  delay(1);
}
```