7 Segmentli Display Nasıl Çalışır ve Arduino
Yedi segmentli ekranı kullanan gerçek bir dünya örneği , NASA'nın Apollo inişi için kullandığı Florida, Cape Canaveral'daki ünlü geri sayım saatidir .
Arduino'ya bağlamadan önce 7 segmentli ekranın özelliklerini ve işlevselliğini kısaca tartışalım.
7 segmentli ekranlar, belirli bir düzende sıralanmış yedi LED'den ibarettir. Bu durumda hepimizin aşina olduğu '8' şekli. Yedi LED'in her birine segment adı verilir, çünkü segment aydınlatıldığında görüntülenecek sayısal bir rakamın (hem Ondalık hem de Onaltılık) bir parçasını oluşturur. Bazen bir ondalık noktanın belirtilmesi için ek bir 8. LED kullanılır.
Ekrandaki yedi LED'in her birine, bağlantı pimlerinden biri doğrudan dikdörtgen plastik paketten çıkarılmış konumsal bir bölüm verilir. Bu ayrı LED pimleri, her bir LED'i temsil eden a'dan g'ye kadar etiketlenmiştir. Diğer LED pimleri, ortak bir pim oluşturmak için birbirine bağlanır ve kablolanır.
Ekranın belirli bir bölümünü açmak ve kapatmak için, normal bir LED ile yaptığınız gibi uygun pini YÜKSEK veya DÜŞÜK olarak ayarlarsınız. Böylelikle bazı segmentler açık, diğerleri karanlık olacak ve ekranda istenen numaranın karakter deseninin oluşturulmasına izin verilecek. Bu, daha sonra 0'dan 9'a kadar on ondalık basamağın her birini aynı 7 segmentli ekranda görüntülememize olanak tanır.
7 Segment Ekran Pin Çıkışı
Şimdi segment konfigürasyonunun üzerinden geçelim, böylece hangi pinlerin hangi segmentleri aydınlattığını bilelim. 7 segmentli ekran için pin çıkışı aşağıdaki gibidir.
ag ve DP10 üzerinden 8 pin yani a, b, c, d, e, f, g ve DP segmenti (ondalık nokta) Arduino'nun dijital pinlerine bağlanır. Bağlı segmentteki her bir LED kontrol edilerek sayılar görüntülenebilir.
COMPim 3 ve 8, ortak bir pim oluşturmak için dahili olarak bağlanmıştır. Bu pin, ekranın tipine bağlı olarak GND'ye (ortak katot) veya 5V'ye (ortak anot) bağlanmalıdır.
Ortak Katot (CC) Vs Ortak Anot (CA)
Yedi segmentli ekran iki tiptedir: Ortak Katot (CC) ve Ortak Anot (CA). Her iki tipin de iç yapısı hemen hemen aynıdır. Aradaki fark, LED'lerin ve ortak terminalin polaritesidir. Adından da anlaşılacağı gibi, ortak katot birbirine bağlı bir 7 segmentte LED'lerin tüm katotlarına sahiptir ve ortak anot, birbirine bağlı bir 7 segmentteki LED'lerin tüm anotlarına sahiptir.
Ortak katot ekranında, LED segmentlerinin tüm katot bağlantıları birlikte 'mantık 0' / GND'ye bağlanır. Ayrı bölümler daha sonra, ayrı Anot terminallerine (ag) YÜKSEK / 'mantık 1' sinyali uygulanarak aydınlatılır.
Ortak anot göstergesinde, LED segmentlerinin tüm anot bağlantıları mantık "1" ile birleştirilir. Ayrı bölümler, belirli bölümün (ag) Katoduna bir toprak, mantık “0” veya “DÜŞÜK” sinyali uygulanarak aydınlatılır.
Genel olarak, ortak anot ekranları (aşağıdaki deneylerde kullandığımız) daha popülerdir çünkü birçok mantık devresi, kaynaklayabileceklerinden daha fazla akım çekebilir.
Ayrıca, ortak bir katot ekranının, ortak bir anot ekranı için bir devrede doğrudan bir ikame olmadığını ve bunun tersi olduğunu unutmayın, çünkü bu, LED'leri tersine bağlamakla aynıdır ve dolayısıyla ışık yayımı gerçekleşmez.
Aşağıdaki doğruluk tablosu, rakamlar ve karakterler üretmek için aydınlatılması gereken ayrı segmentleri göstermektedir. Lütfen ortak anot 7 segmentli ekran için doğruluk tablosunun ortak katot 7 segmentli ekranın tam tersi olduğunu unutmayın.
Kablolama - 7 Segment Ekranı Arduino UNO'ya Bağlama
Artık 7 segmentli ekranın nasıl çalıştığını anladığımıza göre, onu Arduino'ya kablolamaya başlayabiliriz!
7 segmentli ekranı devre tahtanıza yerleştirerek başlayın ve ekranın her iki tarafının devre tahtasının ayrı bir tarafında olmasını sağlayın. Ondalık nokta aşağıya bakarken, pimler aşağıdaki şekilde görüldüğü gibi soldan sağa alt tarafta 1-5 ve üst tarafta soldan sağa 10-6'dır.
Başlamak için, 3 veya 8 numaralı ortak pinlerden birini Arduino'daki 5V pinine (ortak bir anot 7 segmentli ekran kullanıyorsanız) veya Arduino'daki GND pinine (ortak bir katot 7 kullanıyorsanız) bağlayalım. segment ekranı). Üst konumdaki kalan 4 pim dijital pim 2'ye dijital pim 5'e bağlanır. Alt konumdaki diğer 4 pim, ondalık noktalı dijital pim 6'dan 9'a bağlanır.
Ekran, akım sınırlayıcı dirençler olmadan çalışabilirken, ekranınızın yanmasını önlemek için bunları devrenizde bulundurmak her zaman iyi bir fikirdir.
Tipik olarak standart kırmızı renkli 7 segmentli bir ekran için, her bir LED segmenti doğru aydınlatmak için yaklaşık 15 mA çekebilir, bu nedenle 5 voltluk bir dijital mantık devresinde akım sınırlama direncinin değeri yaklaşık 200Ω (5v - 2v) / 15mA olacaktır. veya 220Ω en yakın daha yüksek tercih edilen değere.
Kitaplığı kurduktan sonra, bu çizimi Arduino IDE'ye kopyalayabilirsiniz. Aşağıdaki test taslağı 0'dan 9'a kadar sayılacaktır. Krokiyi deneyin; ve sonra onu biraz detaylı olarak açıklayacağız.
Kod Açıklaması:
Taslak, kontrolleri ve sinyalleri 7 segmente basitleştiren SevSeg kitaplığını dahil ederek başlar. Daha sonra taslak boyunca kullanabileceğimiz bir SevSeg nesnesi oluşturmalıyız.
Daha sonra, ekranın kaç basamağa sahip olduğunu belirtmeliyiz. Tek haneli bir ekran kullandığımız için 1'e ayarladık. 4 haneli bir ekran kullanıyorsanız, bunu 4'e ayarlayın.
DigitPins dizisi, çok basamaklı bir ekran kullanılırken basitçe 'ortak pinleri' tanımlar. Tek haneli bir ekranınız varsa boş bırakın. Aksi takdirde, tek tek basamakların 'ortak pinlerinin' bağlı olduğu arduino pin numaralarını sağlayın. Onları soldan sağa sıralayın.
İlklendirildiğini gördüğümüz ikinci dizi, segmentPins dizisidir. Bu, segmentleri kontrol eden LED ekran üzerindeki pinlere bağlı tüm Arduino pin numaralarının bir dizisidir; bu durumda bunlar, devre tahtasından doğrudan Arduino'ya bağladıklarımızdır. Kütüphane pinlerin aşağıdaki sırada olduğunu varsaydığından, bunların da doğru sıraya konması gerekir: A, B, C, D, E, F, G, DP.
Bu değişkenleri oluşturduktan sonra, onları begin()
işlev kullanarak SevSeg yapıcısına iletiriz .
'Döngü' bölümünde: Program 'for' döngüsünü ve 'i' değişkenini kullanarak 0'dan 9'a kadar saymaya başlar. Her seferinde, o SevSeg kütüphane işlevini kullanır setNumber()
birlikte refreshDisplay ()
ekrana üzerine sayısını ayarlamak için.
Ardından, 'i' artırılmadan ve sonraki sayı görüntülenmeden önce ikinci bir gecikme olur.
Zar atmak
Ek olarak, erişilebilirlik teknolojisine ihtiyaç duyan kişilerin zar atmasını sağlayan başka bir proje. Bunu Yahtzee, ludo vb. Oyunları oynamak için kullanabilirsiniz. Hızlı yuvarlanma için dokunsal bir anahtar kullanmamız dışında aynı Arduino kurulumunu kullanır.
Bir zarın tüm amacı, 1'den 6'ya kadar rastgele bir sayı bulmanın bir yolunu sağlamaktır. Ve rastgele bir sayı elde etmenin en iyi yolu, yerleşik bir rastgele işlevi (min, max) kullanmaktır . Bu iki parametre alır, ilki rastgele değerin alt sınırını (bu sayı dahil) ve ikinci parametre rasgele değerin üst sınırını belirtir (bu sayı hariç). Min ve max-1 arasında rastgele sayı üretilecek anlam
Hiç yorum yok:
Yorum Gönder
Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...
Not: Yalnızca bu blogun üyesi yorum gönderebilir.