Arduino ile 7 Segment 0-99 Sayıcı ve Proteus Simülasyonu
Bu yazımızda, Arduino ile 7 segment ekran 0-99 sayıcı yapıyoruz. Kod ve devre şemasının ardından, proteus simülasyonu ile işlemin son görüntülerini paylaştık.
Bu projede 2 haneli fonksiyonu kullanıyoruz. 2 basamaklı 7 segmentli ekranı sürmek için, her biri ayrı ayrı ekranın bir basamağını süren iki Arduino I/O pini kullanmamız gerekir. Bu kurulumlar, Arduino I/O pinlerini kullanarak ortak anot veya katot pinini sürmek için gereklidir, böylece yedi segmentin tümünü aydınlatmak için yeterli akım sağlayabilirler.
Proje için Arduino kodlamasına başlamadan önce 2 haneli yedi segment display hakkında kısaca bilgi verelim:
- 7 segmentli bir ekran, temel olarak bir bloğun arkasındaki sadece birkaç normal LED’dir. Her LED belirli bir segmenti aydınlatır ve belirli bir LED kombinasyonunu yakarak bir sayı veya bazı harfleri temsil edebiliriz.
- 7-Segment ekranların çoğu ortak Katottur; bu, her bir LED GND pininin (Katot) birbirine ve VCC+ pinlerinin (Anot) bağlı olduğu anlamına gelir.
Pin 1-5 ve pin 6, 9 ve 10’un belirli bir segmente bağlı olduğunu görebilirsiniz. Pin 7 ve 8 (D1 ve D2), her rakam için ortak katottur. Böylece, D1 veya D2’yi topraklayarak, belirli bir segmenti hangi basamağı aydınlatmak istediğinizi seçersiniz. Tabii ki, herhangi bir LED gibi, LED tarafından çekilen akım miktarını sınırlamak için bir direnç (10k) kullanmanız gerekir.
Gerekli Malzemeler
- Arduino geliştirme kartı(Arduino Uno)
- 10kΩ direnç x 2
- 7 segment 2 haneli ekran
- Bağlantı kabloları(jumper)
Bağlantı Şeması
Burada, 7-Segment ekran, kablolar ile Arduino tarafından sürülür. Ekran ve Arduino UNO kartı arasına dirençlerin bağlanması gerekir. Hangi sayının veya alfabenin görüntüleneceğine bağlı olarak kontrol sinyalleri uygulanır.
Aşağıdaki şema, bu LED üzerindeki her bir pinin nasıl ayarlanacağına dair 10 pinli 7 segmentli 2 haneli ekranı göstermektedir. a, b, c, d, e, f ve g, sıralı değillerdir, bu yüzden kablolama yaparken dikkatli olun. Aksi takdirde LED ekranınız istediğiniz sayıyı göstermeyecektir. “d1” sağ tarafta 1 rakamını destekleyen güç pini ve “d2” sol tarafta 2 rakamını destekleyen güç pinidir. “dp”, alt rakamın yanındaki nokta pinidir.
Arduino Kodu
//a,b,c,d,e,f,g konumunda 7 segmenti açmak için 7 segmentin tümü için ikili dizi hazırlanır int digit[10] = {0b0111111, 0b0000110, 0b1011011, 0b1001111, 0b1100110, 0b1101101, 0b1111101, 0b0000111, 0b1111111, 0b1101111}; int digit1, digit2; // her segmenti kontrol etmek için atama void setup() { for (int i = 2; i < 9; i++) { pinMode(i, OUTPUT); // 0-9 inci pini çıkış olarak ayarlama(kod kalabağı olmaması için for ile ayarlandı) } pinMode(12, OUTPUT); //1. hane output pinMode(13, OUTPUT);//2.hane output } void loop() { for (int j = 0; j <= 99; j++)//00-99 arasındaki değeri geçmek için döngü için { digit2 = j / 10; digit1 = j % 10; for ( int k = 0; k < 20; k++)// 00-99 yazdırmak ve basamak kontrolünü kontrol etmek için döngü { digitalWrite(12, HIGH); digitalWrite(13, LOW); dis(digit2); delay(10); digitalWrite(13, HIGH); digitalWrite(12, LOW); dis(digit1); delay(10); } } } void dis(int num) { for (int i = 2; i < 9; i++) { digitalWrite(i, bitRead(digit[num], i - 2)); } }
.hex dosyasını almak bu adımları takip edebilirsiniz:
Tercihler kısmından, ayrıntılı çıktı kısmında yükle seçeneğini seçmeniz gerekiyor. Ardından yükleme işleminden sonra Arduino IDE’nin hata-bilgi çıktı(siyah panel) ekranından .hex dosyasının nerede olduğunu bulup, Proteustaki Arduinonuzda seçmeniz gerekiyor.
Eğer .hex dosyasını bulmakta problem. yaşıyorsanız, sizin için .hex dosyasını buraya yükledik, indirip doğrudan Proteus ile kullanabilirsiniz, fakat bağlantıları aynı olarak kullanmanız gerekiyor, .hex dosyasında bağlantılar bu yazıdaki gibi ayarlanmıştır.
Kodu kontrol edip, yükledikten sonra, .hex dosyasını proteustaki Arduino Uno üzerinden açarsanız ve devre şemanız doğruysa şöyle bir görüntü elde edersiniz:
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.