7 Segment Display Ardunio Sayıcı Programı

Merbaba okurlar, bu akşam program üzerine konu ararken led çalışmalarına benzer bir şekilde 7 Segment Display örnekleri gördüm ve bir yazı da ben hazırlayım dedim :) Peki display segment nedir ? 7 segment LED (7-parçalı sayısal LED) gösterge en yaygın sayısal gösterge biçimlerinden biridir. Yedi çubuk parça 8 oluşturacak şekilde bitiştirilmiştir. Elemanın uç sayısını azaltmak amacıyla LED lerin ya anodları ya da katodları birleştirilir ve ortak-anod gösterge ya da ortak-katod gösterge adıyla bilinir.







Proteusta ufak bir çalışma ile göstermiş olalım :) Yazdığım programda 0-66 arasında sayacak ve bunu sürekli yapacak :




void setup() {                  
pinMode(23, OUTPUT); //a,b,c,d,e,f,g sırayla tüm bitler
pinMode(24, OUTPUT);
pinMode(25, OUTPUT);
pinMode(26, OUTPUT);
pinMode(27, OUTPUT);
pinMode(28, OUTPUT);
pinMode(29, OUTPUT);
pinMode(30, OUTPUT); //a,b,c,d,e,f,g sırayla tüm bitler
pinMode(31, OUTPUT);
pinMode(32, OUTPUT);
pinMode(33, OUTPUT);
pinMode(34, OUTPUT);
pinMode(35, OUTPUT);
pinMode(36, OUTPUT);
}

void loop(void) 
{
  
  int sayac,onlar,birler;

    for(sayac=0;sayac<67;sayac++)
    {
      onlar=sayac/10;
      birler=sayac%10;
      gosterge(onlar,birler);
      delay(500);
    }

  } 

void gosterge(int on,int bir)
{
  switch(on)
  {
    case 0:
    digitalWrite(23,HIGH);
    digitalWrite(24,HIGH);
    digitalWrite(25,HIGH);
    digitalWrite(26,HIGH);
    digitalWrite(27,HIGH);
    digitalWrite(28,HIGH);
    digitalWrite(29,LOW);
    break;
    case 1:
    digitalWrite(23,LOW);
    digitalWrite(24,HIGH);
    digitalWrite(25,HIGH);
    digitalWrite(26,LOW);
    digitalWrite(27,LOW);
    digitalWrite(28,LOW);
    digitalWrite(29,LOW);
    break;
    case 2:
    digitalWrite(23,HIGH);
    digitalWrite(24,HIGH);
    digitalWrite(25,LOW);
    digitalWrite(26,HIGH);
    digitalWrite(27,HIGH);
    digitalWrite(28,LOW);
    digitalWrite(29,HIGH);
    break;
    case 3:
    digitalWrite(23,HIGH);
    digitalWrite(24,HIGH);
    digitalWrite(25,HIGH);
    digitalWrite(26,HIGH);
    digitalWrite(27,LOW);
    digitalWrite(28,LOW);
    digitalWrite(29,HIGH);
    break;
    case 4:
    digitalWrite(23,LOW);
    digitalWrite(24,HIGH);
    digitalWrite(25,HIGH);
    digitalWrite(26,LOW);
    digitalWrite(27,LOW);
    digitalWrite(28,HIGH);
    digitalWrite(29,HIGH);
    break;
    case 5:
    digitalWrite(23,HIGH);
    digitalWrite(24,LOW);
    digitalWrite(25,HIGH);
    digitalWrite(26,HIGH);
    digitalWrite(27,LOW);
    digitalWrite(28,HIGH);
    digitalWrite(29,HIGH);
    break;
    case 6:
    digitalWrite(23,HIGH);
    digitalWrite(24,LOW);
    digitalWrite(25,HIGH);
    digitalWrite(26,HIGH);
    digitalWrite(27,HIGH);
    digitalWrite(28,HIGH);
    digitalWrite(29,HIGH);
    break;
    case 7:
    digitalWrite(23,HIGH);
    digitalWrite(24,HIGH);
    digitalWrite(25,HIGH);
    digitalWrite(26,LOW);
    digitalWrite(27,LOW);
    digitalWrite(28,LOW);
    digitalWrite(29,LOW);
    break;
    case 8:
    digitalWrite(23,HIGH);
    digitalWrite(24,HIGH);
    digitalWrite(25,HIGH);
    digitalWrite(26,HIGH);
    digitalWrite(27,HIGH);
    digitalWrite(28,HIGH);
    digitalWrite(29,HIGH);
    break;
    case 9:
    digitalWrite(23,HIGH);
    digitalWrite(24,HIGH);
    digitalWrite(25,HIGH);
    digitalWrite(26,HIGH);
    digitalWrite(27,LOW);
    digitalWrite(28,HIGH);
    digitalWrite(29,HIGH);
    break;
  }
  switch(bir)
  {
    case 0:
    digitalWrite(30,HIGH);
    digitalWrite(31,HIGH);
    digitalWrite(32,HIGH);
    digitalWrite(33,HIGH);
    digitalWrite(34,HIGH);
    digitalWrite(35,HIGH);
    digitalWrite(36,LOW);
    break;
    case 1:
    digitalWrite(30,LOW);
    digitalWrite(31,HIGH);
    digitalWrite(32,HIGH);
    digitalWrite(33,LOW);
    digitalWrite(34,LOW);
    digitalWrite(35,LOW);
    digitalWrite(36,LOW);
    break;
    case 2:
    digitalWrite(30,HIGH);
    digitalWrite(31,HIGH);
    digitalWrite(32,LOW);
    digitalWrite(33,HIGH);
    digitalWrite(34,HIGH);
    digitalWrite(35,LOW);
    digitalWrite(36,HIGH);
    break;
    case 3:
    digitalWrite(30,HIGH);
    digitalWrite(31,HIGH);
    digitalWrite(32,HIGH);
    digitalWrite(33,HIGH);
    digitalWrite(34,LOW);
    digitalWrite(35,LOW);
    digitalWrite(36,HIGH);
    break;
    case 4:
    digitalWrite(30,LOW);
    digitalWrite(31,HIGH);
    digitalWrite(32,HIGH);
    digitalWrite(33,LOW);
    digitalWrite(34,LOW);
    digitalWrite(35,HIGH);
    digitalWrite(36,HIGH);
    break;
    case 5:
    digitalWrite(30,HIGH);
    digitalWrite(31,LOW);
    digitalWrite(32,HIGH);
    digitalWrite(33,HIGH);
    digitalWrite(34,LOW);
    digitalWrite(35,HIGH);
    digitalWrite(36,HIGH);
    break;
    case 6:
    digitalWrite(30,HIGH);
    digitalWrite(31,LOW);
    digitalWrite(32,HIGH);
    digitalWrite(33,HIGH);
    digitalWrite(34,HIGH);
    digitalWrite(35,HIGH);
    digitalWrite(36,HIGH);
    break;
    case 7:
    digitalWrite(30,HIGH);
    digitalWrite(31,HIGH);
    digitalWrite(32,HIGH);
    digitalWrite(33,LOW);
    digitalWrite(34,LOW);
    digitalWrite(35,LOW);
    digitalWrite(36,LOW);
    break;
    case 8:
    digitalWrite(30,HIGH);
    digitalWrite(31,HIGH);
    digitalWrite(32,HIGH);
    digitalWrite(33,HIGH);
    digitalWrite(34,HIGH);
    digitalWrite(35,HIGH);
    digitalWrite(36,HIGH);
    break;
    case 9:
    digitalWrite(30,HIGH);
    digitalWrite(31,HIGH);
    digitalWrite(32,HIGH);
    digitalWrite(33,HIGH);
    digitalWrite(34,LOW);
    digitalWrite(35,HIGH);
    digitalWrite(36,HIGH);
    break;
  }
  
  
}
    


  
   



Yorumlar