Merhaba arkadaşlar bu yazımızda arduino ile 7 segment display uygulaması yapacağız.Uygulamamızda ilk önce iki adet display kullanarak 99’a kadar sayıcı yapacağız daha sonra bu 7 segment displayleri ve Lm35 sıcaklık sensorünü kullanarak bir sıcaklık göstergesi yapacağız.Bu uygulama için fritzing’de bağlantıları hazırlamak isterdim ama şu anda bunu yapmak için yeteri kadar vaktim yok.Burada uygulamaya ait video ve yazılım kodlarını paylaşacağım. 99’a kadar sayma işlemini Arduino uno ile yapacağız sıcaklık göstergesini ise Arduino1280 ile yapacağız.Sıcaklık göstergesi uygulaması arduino uno ilede yapılır fakat sadece sıcaklık değerini gösterebiliriz derece sembolünü bağlayacak gpiolarımız olmadığı için.Kullanacağımız segment displayler anot tipinde olduğu için yanmasını istediğimiz bölümleri low yapacağız.
Anot ve katot tipi 7-Segment Display
Örnek bağlantı
Yukarıda görüldüğü üzere 7-segment ile arduino gpioları drençler ile bağlantılı.Ben uygulamada 470,220,330 ohm gibi farklı değerler kullandım.Sizde gerekli hesaplamaları yaparak uygun değerleri kullanabilirsiniz.
Anot ve katot tipi 7-Segment Display
Örnek bağlantı
Yukarıda görüldüğü üzere 7-segment ile arduino gpioları drençler ile bağlantılı.Ben uygulamada 470,220,330 ohm gibi farklı değerler kullandım.Sizde gerekli hesaplamaları yaparak uygun değerleri kullanabilirsiniz.
Kod:
void setup()
{
//Gpioları tanımlarken hangi gpionun 7-segmentin hangi bölümüne gideceğini ayarladık
//Birler Basamağı
pinMode(0, OUTPUT);//a
pinMode(1, OUTPUT);//b
pinMode(2, OUTPUT);//c
pinMode(3, OUTPUT);//d
pinMode(4, OUTPUT);//e
pinMode(5, OUTPUT);//f
pinMode(6, OUTPUT);//g
//Onlar Basamağı
pinMode(7, OUTPUT);//a
pinMode(8, OUTPUT);//b
pinMode(9, OUTPUT);//c
pinMode(10, OUTPUT);//d
pinMode(11, OUTPUT);//e
pinMode(12, OUTPUT);//f
pinMode(13, OUTPUT);//g
}
void loop(){//Fonksiyon
int i,a,b;
for(i=0; i<=99;i++){
a=i/10;//Sayacağımız sayının onlar basamağı
b=i%10;//Sayacağımız sayının birler basamağı
RakamGoster(a,b);
delay(500);
}
}
void RakamGoster(int onlar,int birler)//Rakam göster fonksiyonunu çağırıyoruz
{
switch(birler)
{
case 0 :
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
break;
case 1:
digitalWrite(0, HIGH);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
break;
case 2:
digitalWrite(0, LOW);
digitalWrite(1,LOW);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
break;
case 3:
digitalWrite(0, LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
break;
case 4:
digitalWrite(0, HIGH);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
break;
case 5:
digitalWrite(0, LOW);
digitalWrite(1,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
break;
case 6:
digitalWrite(0, LOW);
digitalWrite(1,HIGH);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
break;
case 7:
digitalWrite(0, LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
break;
case 8:
digitalWrite(0, LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
break;
case 9:
digitalWrite(0,LOW);
digitalWrite(1,LOW);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
break;
}
switch(onlar)
{
case 0 :
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
break;
case 1:
digitalWrite(7, HIGH);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
break;
case 2:
digitalWrite(7, LOW);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
break;
case 3:
digitalWrite(7, LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
break;
case 4:
digitalWrite(7, HIGH);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
case 5:
digitalWrite(7, LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
case 6:
digitalWrite(7, LOW);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
case 7:
digitalWrite(7, LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
break;
case 8:
digitalWrite(7, LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
case 9:
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
break;
}
}