Projelerde sayısal verileri göstergenin üzerinde hızlıca sunmak için 7 Segment Display elemanları oldukça kullanışlıdır. İçerisinde A'dan G'ye kadar harflendirilen 7 adet LED segmenti bulunur. Görseldeki bağlantı şemasına uygun olarak hazırlanan bu uygulamada, 0'dan 9'a kadar olan sayılar sırasıyla ekrana yazdırılmaktadır.


// Görseldeki şemaya göre segment pin tanımlamaları (A, B, C, D, E, F, G)
const int segmentPinleri[7] = {9, 8, 7, 6, 5, 4, 3};
// 0-9 arası rakamların segment durum matrisi (Ortak Katot: 1 = Açık, 0 = Kapalı)
// Dizilim sırası: {A, B, C, D, E, F, G}
const byte rakamlar[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1} // 9
};
void setup() {
// Tüm segment pinlerini çıkış olarak ayarlıyoruz
for (int i = 0; i < 7; i++) {
pinMode(segmentPinleri[i], OUTPUT);
}
}
void loop() {
// 0'dan 9'a kadar sayıları sırayla ekranda göster
for (int sayi = 0; sayi < 10; sayi++) {
rakamYazdir(sayi);
delay(1000); // Sayılar arası 1 saniye bekleme
}
}
// Belirtilen rakamı segmentlere aktaran sürücü fonksiyonu
void rakamYazdir(int rakam) {
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPinleri[i], rakamlar[rakam][i]);
}
}
Yazılan kod, pinlerin doğrudan tek tek digitalWrite ile kontrol edilmesi yerine iki boyutlu bir matris (dizi) yapısı üzerinden dinamik olarak sürülmesini sağlar:
segmentPinleri dizisi, şemadaki bağlantı düzenine göre Pin 9'dan Pin 3'e kadar olan donanım hatlarını sırasıyla tutar.rakamlar[10][7] tablosu, her bir rakam için A-G segmentlerinin hangilerinin aktif olacağını tanımlar. Örneğin '0' sayısı için G segmenti kapalı (0), diğer tüm segmentler açıktır (1).rakamYazdir() fonksiyonu, parametre olarak verilen rakam indeksine karşılık gelen 7 bitlik durum bilgisini döngü içerisinde ilgili pinlere aktarır.Display üzerindeki LED'lerin ve Arduino pinlerinin zarar görmemesi için her bir segment hattına (veya ortak GND hattına) 220Ω - 330Ω değerinde akım sınırlayıcı direnç eklemeyi unutmayın.
Henüz yorum yapılmamış. İlk yorumu siz yapın!