Bu yazımızda 7 segment displaylerin kullanımına değinmeye çalışacağım. Bildiğiniz gibi 7 segment displayde her segmentin bir adı vardır ve genellikle kodlamalar bu adlara göre yapılır. O yüzden önce segmentlerin adını bilmeliyiz.
Aynı zamanda 7 segment displayler ortak anotlu ve ortak katotlu olmak üzere ikiye ayrılıyorlar. Peki ortak anot ve ortak katot nedir. Hemen açıklayayım;
7 segment displaylerde 7 segment ve bir 1 nokta dışında 2 tane de ortak pin konmuştur. 8 pin ile 8 kısmı kontrol ederken ortak kısımlar ile dörder pinin çıkışını sağlarız. Ortak anot dediğimiz bu ortak pinlerin VCC, ortak katot dediğimiz ise bu ortak pinlerin GND olmasıdır. Örneğin ekranda bir yazdırabilmek için b ve c pinlerini kullanmalıyız. Ortak anot dediğimiz sistemde b ve c pinlerine 5V’ye bağlarken, ortak katotta GND’ye bağlarız. İsterseniz aşağıdaki şemayı inceleyerek daha iyi anlayabilirsiniz.
Şimdi bu devrelerin nasıl bağlandığına bakalım. İhtiyacınız olan şeyler:
- 1 Adet Arduino Uno
- 1 Adet Breadboard
- 1 Adet 7 Segment Display (anot-katot)
- 2 Adet 220 Ohm Direnç
- Jumper Kablolar
Ortak Anot Devre Şeması:
Ortak Katot Devre Şeması:
Gördüğünüz gibi devrelerin arasındaki farkı görmüşsünüzdür. Kodlarında ki farksa şöyledir;
- Ortak Katotta yanmasını istediğime ledler için HIGH veya 1 yazılır.
- Ortak Anotta yanmasını istediğim ledler için LOW veya 0 yazılır.
Şimdide kodlara bakalım.
Ortak Anot Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | int a = 2; int b = 3; int c = 6; int d = 8; int e = 9; int f = 11; int g = 12; void setup() { pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); } void RakamYaz(int rakam) { switch(rakam) { case 0 : // 0 yazdırır digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,LOW); digitalWrite(g,HIGH); break; case 1: // 1 yazdırır digitalWrite(a, HIGH); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,HIGH); digitalWrite(g,HIGH); break; case 2: // 2 yazdırır digitalWrite(a, LOW); digitalWrite(b,LOW); digitalWrite(c,HIGH); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,HIGH); digitalWrite(g,LOW); break; case 3: // 3 yazdırır digitalWrite(a, LOW); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,HIGH); digitalWrite(f,HIGH); digitalWrite(g,LOW); break; case 4: // 4 yazdırır digitalWrite(a, HIGH); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,LOW); digitalWrite(g,LOW); break; case 5: // 5 yazdırır digitalWrite(a, LOW); digitalWrite(b,HIGH); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,HIGH); digitalWrite(f,LOW); digitalWrite(g,LOW); break; case 6: // 6 yazdırır digitalWrite(a, LOW); digitalWrite(b,HIGH); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,LOW); digitalWrite(g,LOW); break; case 7: // 7 yazdırır digitalWrite(a, LOW); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,HIGH); digitalWrite(g,HIGH); break; case 8: // 8 yazdırır digitalWrite(a, LOW); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,LOW); digitalWrite(g,LOW); break; case 9: // 9 yazdırır digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,HIGH); digitalWrite(f,LOW); digitalWrite(g,LOW); break; } } void loop(){ for(int i=0; i<=9;i++){ RakamYaz(i); delay(100); } } |
Ortak Katot Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | int a = 3; int b = 4; int c = 7; int d = 9; int e = 10; int f = 12; int g = 13; void setup() { pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); } void RakamYaz(int rakam) { switch(rakam) { case 0 : // 0 yazdırır digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,HIGH); digitalWrite(g,LOW); break; case 1: // 1 yazdırır digitalWrite(a,LOW); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,LOW); digitalWrite(g,LOW); break; case 2: // 2 yazdırır digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,LOW); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,LOW); digitalWrite(g,HIGH); break; case 3: // 3 yazdırır digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e,LOW); digitalWrite(f,LOW); digitalWrite(g,HIGH); break; case 4: // 4 yazdırır digitalWrite(a,LOW); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,HIGH); digitalWrite(g,HIGH); break; case 5: // 5 yazdırır digitalWrite(a,HIGH); digitalWrite(b,LOW); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e,LOW); digitalWrite(f,HIGH); digitalWrite(g,HIGH); break; case 6: // 6 yazdırır digitalWrite(a,HIGH); digitalWrite(b,LOW); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,HIGH); digitalWrite(g,HIGH); break; case 7: // 7 yazdırır digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,LOW); digitalWrite(g,LOW); break; case 8: // 8 yazdırır digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,HIGH); digitalWrite(g,HIGH); break; case 9: // 9 yazdırır digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e,LOW); digitalWrite(f,HIGH); digitalWrite(g,HIGH); break; } } void loop(){ for(int i=0; i<=9;i++){ RakamYaz(i); delay(100); } } |