#2 Arduino ile 7 Segment Display
Malzemeler:
1 Adet Arduino Uno (25 TL)1 Adet 7 Segment Display (1 TL)
2 Adet 220 ohm direnç( 0,20 TL)
Devre kurulumu:
7 Segmentin bacakları aşağıdaki resimde gösterildiği gibidir.
NOT: 7 Segment displayler anot ve kotot olmak üzere 2 ye ayrılır. Ben bu yazımda anot 7 segment kullandım. Yani Hıgh yazdığım pin yanacaktır.Diğer tür katotda ise Low yazdığım pin yanacaktır.Anot devresinden 3 . ve 8. bacaklar GND pinine gidiyordu. Katot devresin bu pinleri Arduinonun 5V pinine bağlamayı unutmayın.
Şekilde gösterildiği gibi her segment bir harf ile gösterilir kodu yazarken hangi harfin hangi bacakta olacağı önemlidir. Eğer bağlantıları düzgün yapmazsak saçma şeyler görmemiz mümkün. Devreyi aşağıdaki gibi kuralım.
5. bacak boş kalacak çünkü displayin sağ alt kısmındaki noktanın yanmasına gerek yok.
Programlama:
Programlama kısmı basit her bir segmenti led olarak düşünün. Yani elinizde 7 led var gibi kodu yazıyoruz. 0 göstermesi için ortadaki yani g ledinin sönük diğerlerinin yanık olması gerekir. Bunu her bir sayı için yapabilirsiniz.
#define A 9 // tabloya göre a segmentin 7. bacagına bağlı
#define B 8 // hepsini aynı mantıkla bağlıyoruz
#define C 2
#define D 3
#define E 4
#define f 10
#define G 11
void setup()
{
pinMode(A, OUTPUT); // tüm kısımları tanımladık bu kısımda
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(f, OUTPUT);
pinMode(G, OUTPUT);
}
void loop()
{
digitalWrite(A, HIGH); //burda tüm kısımları birer led gibi düşünün
digitalWrite(B, HIGH); //0 görünümü olması için g kısmının yanamaması gerekir
digitalWrite(C, HIGH); //diğerlerinş yakarken g sönük kalması 0 ı verir bize
digitalWrite(D, HIGH); //tüm sayıları aynı mantıkla kendinizde bulabilirsiniz
digitalWrite(E, HIGH);
digitalWrite(f, HIGH);
digitalWrite(G, LOW);
delay(1000);
digitalWrite(A,LOW); // 1 için sadece b ve c nin yanması gerek
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(f, LOW);
digitalWrite(G, LOW);
delay(1000);
digitalWrite(A,HIGH); // 2 için c ve f sönük olması yeterli
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(f, LOW);
digitalWrite(G, HIGH);
delay(1000);
digitalWrite(A,HIGH);
digitalWrite(B, HIGH); // 3 için
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(f, LOW);
digitalWrite(G, HIGH);
delay(1000);
digitalWrite(A,LOW); //4
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(f, HIGH);
digitalWrite(G, HIGH);
delay(1000);
digitalWrite(A,HIGH); //5
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(f, HIGH);
digitalWrite(G, HIGH);
delay(1000);
digitalWrite(A,HIGH); //6
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(f, HIGH);
digitalWrite(G, HIGH);
delay(1000);
digitalWrite(A,HIGH); //7
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(f, LOW);
digitalWrite(G, LOW);
delay(1000);
digitalWrite(A, HIGH); //8
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(f, HIGH);
digitalWrite(G, HIGH);
delay(1000);
digitalWrite(A, HIGH); //9
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(f, HIGH);
digitalWrite(G, HIGH);
delay(1000);
}
Kodu arduinoya yüklediğinizde sayıların 1 saniyede bir arttığını 9 dan sonra 0 a geçtiğini görebilirsiniz. Bu proje bitince hemen devreyi bozmadan önce bir sonraki yazımda bulacağınız #Trafik lambası uygulamasını da yapın derim :)
Unutmayın etrafınıza baktığınızda bir çok seven segment displayin günlük hayatta kullanıldığını görürsünüz. Nerede kullanabileceğiniz neler yapabileceğiniz hayalgücünüze kalmış. Biraz araştırmayla odanızın duvarına saat bile yapabilirsiniz.
Yorumlar
Yorum Gönder