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
Yorum Gönder