Arduino ve dört haneli yedi bölümlü gösterge. Yedi bölümlü gösterge 4 basamaklı yedi bölümlü gösterge arduino

Sadece bir gösterge yerine objektif bilgi sağlamanın daha uygun olacağı parametreler vardır. Örneğin dışarıdaki hava sıcaklığı veya alarm saatindeki saat. Evet, tüm bunlar parlayan ampuller veya LED'ler ile yapılabilir. Bir derece – bir yanan LED veya ampul vb. Ama bu ateşböceklerini sayarsak - hayır! Ancak dedikleri gibi en basit çözümler en güvenilir olanlardır. Bu nedenle geliştiriciler uzun süre düşünmeden basit LED şeritleri aldılar ve bunları doğru sıraya yerleştirdiler.

Yirminci yüzyılın başında vakum tüplerinin ortaya çıkmasıyla birlikte ilk gaz deşarj göstergeleri ortaya çıktı.

Bu tür göstergelerin yardımıyla dijital bilgilerin Arap rakamlarıyla görüntülenmesi mümkün oldu. Daha önce, bu tür lambalarda aletler ve diğer elektronik cihazlar için çeşitli göstergeler yapılıyordu. Şu anda, gaz deşarj elemanları neredeyse hiçbir yerde kullanılmamaktadır. Ancak retro her zaman modadır, bu nedenle birçok radyo amatörü kendileri ve sevdikleri için gaz deşarj göstergelerine ilişkin harika saatler toplar.


Gaz deşarjlı lambaların dezavantajı ise çok fazla elektrik tüketmeleridir. Dayanıklılık konusunda tartışılabilir. Üniversitemizde laboratuvar odalarında gaz deşarj göstergeli frekans ölçüm cihazları halen kullanılmaktadır.

Yedi bölümlü göstergeler

LED'lerin ortaya çıkışıyla durum daha iyiye doğru dramatik bir şekilde değişti. LED'lerin kendisi çok az akım tüketir. Bunları doğru konuma yerleştirirseniz, kesinlikle her türlü bilgiyi görüntüleyebilirsiniz. Tüm Arap rakamlarını vurgulamak için yalnızca yedi adet parlak LED şerit yeterlidir - belirli bir şekilde ayarlanmış segmentler:

Bu tür yedi bölümlü göstergelerin neredeyse tamamına, sekizinci bölüm de eklenir - bir nokta, böylece herhangi bir parametrenin tamsayı ve kesirli değerini göstermek mümkündür

Teorik olarak sekiz bölümlü bir gösterge elde ederiz, ancak eski usulde buna yedi bölümlü gösterge de denir.

Sonuç nedir? Yedi bölümlü göstergedeki her şerit bir LED veya LED grubuyla aydınlatılır. Sonuç olarak, belirli bölümleri vurgulayarak 0'dan 9'a kadar sayıların yanı sıra harf ve simgeleri de görüntüleyebiliriz.

Diyagramdaki tipler ve tanımlar

Tek haneli, iki haneli, üç haneli ve dört haneli yedi segmentli göstergeler bulunmaktadır. Hiç dörtten fazla kategori görmedim.

Diyagramlarda yedi bölümlü gösterge şuna benzer:

Aslında, ana terminallere ek olarak, her yedi bölümlü göstergenin aynı zamanda ortak anotlu (OA) veya ortak katotlu (OC) ortak bir terminali vardır.

Ortak anotlu yedi bölümlü bir göstergenin iç devresi şöyle görünecektir:


ve bunun gibi ortak bir katotla:


Ortak anoda (OA) sahip yedi segmentli bir göstergemiz varsa, devrede bu pime "artı" güç sağlamalıyız ve ortak bir katot (OC) varsa, o zaman "eksi" veya toprak vermeliyiz.

Yedi bölümlü gösterge nasıl kontrol edilir

Aşağıdaki göstergelere sahibiz:


Modern bir yedi segmentli göstergeyi kontrol etmek için yalnızca diyot test işlevine sahip bir multimetreye ihtiyacımız var. Başlangıç ​​​​olarak genel bir sonuç arıyoruz - bu ya OA ya da OK olabilir. Burada sadece rastgele. O zaman göstergenin geri kalan bölümlerinin performansını yukarıdaki diyagramlara göre kontrol ediyoruz.

Aşağıdaki fotoğrafta görebileceğiniz gibi test edilen segmentin ışığı yanıyor. Diğer bölümleri de aynı şekilde kontrol ediyoruz. Tüm bölümler yanıyorsa, bu gösterge sağlamdır ve geliştirmelerinizde kullanılabilir.


Bazen multimetre üzerindeki voltaj bir segmenti test etmek için yeterli olmayabilir. Bu nedenle bir güç kaynağı alıp 5 Volt'a ayarlıyoruz. Segment boyunca akımı sınırlamak için 1-2 Kilo-Ohm'luk bir direnci kontrol ediyoruz.


Aynı şekilde Çinli alıcının göstergesini de kontrol ediyoruz.


Devrelerde her pinteki dirençlere yedi segmentli göstergeler bağlanır

Modern dünyamızda, yedi bölümlü göstergelerin yerini kesinlikle her türlü bilgiyi görüntüleyebilen sıvı kristal göstergeler alıyor.

ancak bunları kullanabilmek için bu tür cihazların devre tasarımında belirli becerilere sahip olmanız gerekir. Bu nedenle, düşük maliyetleri ve kullanım kolaylıkları nedeniyle yedi bölümlü göstergeler günümüzde hala kullanılmaktadır.

Arduino kartına yedi segmentli bir LED göstergesi bağlayalım ve Led4Digits.h kütüphanesini kullanarak onu nasıl kontrol edeceğimizi öğrenelim.

Önceki derste mikrodenetleyiciler ayrıntılı olarak anlatılmıştı. Böyle bir göstergeyi Arduino kartına bağlayalım.

Göstergeyi Arduino kartına bağlama şeması şuna benzer.

Devre kartına monte ettim.

Göstergeleri yönetmek için Led4Digits.h kütüphanesini yazdım:

Ve öde.

Kitaplık, yedi bölümlü göstergeleri yönetmenize olanak tanır:

  • boyutu dört basamağa kadar;
  • kontrol darbe polaritelerinin herhangi bir çeşidiyle (tümü);
  • paralel bir süreçte çalışır;
  • göstergede görüntülemenizi sağlar:
    • her kategorinin bölümleri;
    • her rakamın rakamı;
    • tamsayı 0 ... 9999;
  • bir tam sayının çıktısını almak için basamak sayısı belirtilebilir;
  • Önemsiz rakamları bastırmak için bir mod var.

Led4Digits.h kütüphanesini bu bağlantıdan indirebilirsiniz:

Ve öde. Sadece 40 ovmak. tüm site kaynaklarına erişim için aylık!

Nasıl kurulacağı yazıyor.

Kaynak metinleri vermeyeceğim. Bunları kütüphane dosyalarında arayabilirsiniz. Her zaman olduğu gibi burada da çok sayıda yorum var. Kütüphanenin nasıl kullanılacağını örneklerle detaylı olarak anlatacağım.

Arduino Led4Digits için LED kontrol kütüphanesi.

İşte sınıf açıklaması. Yalnızca genel yöntemler ve özellikler sağladım.

sınıf Led4Digits (
halk:
bayt rakamı; // bit segmenti kontrol kodları
void regen(); // rejenerasyon, yöntemin düzenli olarak çağrılması gerekir
void tetradToSegCod(bayt kaz, bayt tetrad); // tetrad'ı segment kodlarına dönüştürme
boolean print(unsigned int value, bayt rakamNum, bayt boş); // tamsayı çıktısı



} ;

Yapıcı.

Led4Digits (bayt türüLed, bayt hanePin0, bayt hanePin1, bayt hanePin2, bayt hanePin3,
bayt segPinA, bayt segPinB, bayt segPinC, bayt segPinD,
bayt segPinE, bayt segPinF, bayt segPinG, bayt segPinH);

tipLed Bit ve segment seçim sinyalleri için kontrol darbe polaritelerini ayarlar. Herhangi bir bağlantı şemasını destekler ().

tipLed Kategori seçimi Segment seçimi Devre tipi
0 -_- -_- Deşarj seçim tuşlarıyla ortak anot
1 _-_ -_- Ortak anot
2 -_- _-_ Ortak katot
3 _-_ _-_ Deşarj seçim tuşlarıyla ortak katot

rakamPin0...rakamPin3– basamak seçimi için çıkışlar. Eğer rakamPin = 255 ise rakam devre dışı bırakılır. Bu, göstergeleri daha az basamaklı olarak bağlamanıza olanak tanır. rakamPin0 – düşük (sağ) rakam.

segPinA...segPinH– bölüm kontrol çıkışları.

Örneğin,

şu anlama gelir: gösterge tipi 1; deşarj çıkışları 5,4,3,2; 6,7,8,9,10,11,12,13 segmentlerinin çıktıları.

void regen() yöntemi

Yöntemin paralel bir süreçte düzenli olarak çağrılması gerekir. Göstergelerdeki görüntüyü yeniden oluşturur. Yenileme döngü süresi, yöntem çağrı süresinin bit sayısıyla çarpımına eşittir.

Örneğin,

// kesme işleyicisi 2 ms
geçersiz zamanlayıcıInterrupt() (
disp.regen(); // gösterge yenilenmesi
}

Bayt rakam dizisi

Segmentlerin durumunu içerir. rakam en az anlamlı bittir, rakamın en az anlamlı biti ise en az anlamlı bitin “A” segmentidir. Bit durumunun 1 olması, segmentin yandığı anlamına gelir.

Örneğin,

rakam = B0000101;

ikinci hanede “A” ve “C” bölümlerinin yandığı anlamına gelir.

Her rakamın tüm bölümlerini sırayla aydınlatan bir program örneği.

// koşu bölümleri
#katmak
#katmak

//
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

geçersiz kurulum() (
zamanlayıcı kesintisi 2 ms
MsTimer2::start(); // kesmeyi etkinleştirme
}

geçersiz döngü() (
for (int i = 0; i< 32; i++) {
if (i == 0) disp.digit= 1;
else if (i == 8) disp.digit= 1;
else if (i == 16) disp.digit= 1;
else if (i == 24) disp.digit= 1;
başka(
disp.rakam = disp.rakam<< 1;
disp.rakam = disp.rakam<< 1;
disp.rakam = disp.rakam<< 1;
disp.rakam = disp.rakam<< 1;
}
gecikme(250);
}
}

//kesme işleyicisi 2 ms
geçersiz zamanlayıcıInterrupt() (
disp.regen(); // gösterge yenilenmesi
}

Rakam dizisinde 1 kaydırılır ve göstergeler bunu gösterir.

Yöntem void tetradToSegCod(bayt kaz, bayt tetrad)

Yöntem, onaltılık koddaki sayıları ve harfleri ayrı basamaklarda görüntülemenizi sağlar. Argümanları var:

  • dig – basamaklı sayı 0 ... 3;
  • tetrad – ondalık karakter kodu. Kod 0, “0” sayısını, kod 1 – “1” sayısını, kod 14 – “E” harfini gösterecektir.

Örneğin,

tetrad(2, 7);

üçüncü hanede “7” rakamı görüntülenecektir.

Her rakamdaki karakterleri sırayla değiştiren bir program örneği.

// sayıları birer birer
#katmak
#katmak

// gösterge tipi 1; deşarj çıkışları 5,4,3,2; segment çıktıları 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

geçersiz kurulum() (
MsTimer2::set(2, timerInterrupt); // zamanlayıcı kesintisi 2 ms
MsTimer2::start(); // kesmeyi etkinleştirme
}

geçersiz döngü() (
for (int i = 0; i< 64; i++) {
disp.tetradToSegCod(i>>4, i);
gecikme(250);
}
}

// kesme işleyicisi 2 ms
geçersiz zamanlayıcıInterrupt() (
disp.regen(); // gösterge yenilenmesi
}

Yöntem boolean print(imzasız int değeri, bayt rakamNum, boş bayt)

Yöntem göstergelerde bir tamsayı görüntüler. Her basamak için ikili sayıyı BCD'ye dönüştürür. Argümanları var:

  • değer – göstergede görüntülenen sayı.
  • rakamNum – sayının basamak sayısı. Bu, gösterge hanelerinin sayısıyla karıştırılmamalıdır. 2 hanede bir sayıyı, diğer ikisinde ise rakamları kullanarak karakterleri görüntülemek isteyebilirsiniz.
  • boş – önemsiz rakamların bastırıldığına dair bir işaret. boş=0, sayının tamamen sıfırlarla görüntülenmesi gerektiği anlamına gelir. "7" sayısı "0007" gibi görünecektir. Boş değer 0'dan farklıysa önemsiz sıfırlar gizlenir.

Sayı değeri, seçilen basamak sayısı (digitNum) için izin verilen sayıyı aşarsa, işlev göstergede "---" görüntüleyecek ve false değerini döndürecektir.

Sayı çıkış programına bir örnek.

// çıktı numarası
#katmak
#katmak

// gösterge tipi 1; deşarj çıkışları 5,4,3,2; segment çıktıları 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

geçersiz kurulum() (
MsTimer2::set(2, timerInterrupt); // zamanlayıcı kesintisi 2 ms
MsTimer2::start(); // kesmeyi etkinleştirme
}

geçersiz döngü() (
for (int i = 0; i< 12000; i++) {
disp.print(i, 4, 1);
gecikme(50);
}
}

// kesme işleyicisi 2 ms
geçersiz zamanlayıcıInterrupt() (
disp.regen(); // gösterge yenilenmesi
}

Son iki yöntem, “H” segmentinin (ondalık nokta) durumunu değiştirmez. Bir noktanın durumunu değiştirmek için şu komutları kullanabilirsiniz:

rakam |= 0x80; // ondalık noktayı aydınlat
rakam &= 0x7f; // ondalık noktayı söndür

Negatif sayıların göstergelerinin çıktısı (int).

Negatif sayılar aşağıdaki gibi çıktılanabilir:

  • Numaranın işaretini kontrol edin.
  • Sayı negatifse, en anlamlı basamağa bir eksi işareti yazdırın ve print() işlevinde sayının işaretini pozitif olarak değiştirin.
  • Sayı pozitifse işaret bitini kapatın ve sayıyı print() işlevini kullanarak yazdırın.

İşte bu yöntemi gösteren bir program. -999'dan 999'a kadar sayıların çıktısını verir.

// negatif sayılar çıkar
#katmak
#katmak

// gösterge tipi 1; deşarj çıkışları 5,4,3,2; segment çıktıları 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

geçersiz kurulum() (
MsTimer2::set(2, timerInterrupt); // zamanlayıcı kesintisi 2 ms
MsTimer2::start(); // kesmeyi etkinleştirme
}

geçersiz döngü() (

for (int i = -999; i< 1000; i++) {

eğer (ben< 0) {
// sayı negatif
disp.digit= B01000000; // imza -
disp.print(i * -1, 3, 1);
}
başka(
disp.digit= B00000000; // işareti temizle
disp.print(i, 3, 1);
}

gecikme(50);
}
}

// kesme işleyicisi 2 ms
geçersiz zamanlayıcıInterrupt() (
disp.regen(); // gösterge yenilenmesi
}

Kesirli sayıların göstergelerine çıktı, kayan format.

Kayan nokta sayılarını (float'lar) standart C dili işlevlerini kullanarak görüntülemenin birçok yolu vardır. Bu, her şeyden önce sprint() işlevidir. Çok yavaş çalışır, karakter kodlarının ikili ondalık kodlara ek olarak dönüştürülmesini gerektirir, bir dizeden bir nokta çıkarmanız gerekir. Diğer işlevlerde de aynı sorunlar var.

Float değişkenlerinin değerlerini göstergeler üzerinde görüntülemek için farklı bir yöntem kullanıyorum. Yöntem basit, güvenilir ve hızlıdır. Aşağıdaki işlemlere indirgenir:

  • Kayan nokta sayısı, gerekli ondalık basamak sayısına karşılık gelen kuvvete göre 10 ile çarpılır. Göstergelerde virgülden sonra 1 basamak gösterilmesi gerekiyorsa 10 ile, 2 ise 100 ile, virgülden sonra 3 basamak gösterilmesi gerekiyorsa 1000 ile çarpılır.
  • Daha sonra, kayan nokta sayısı açıkça bir tamsayıya (int) dönüştürülür ve print() işlevi kullanılarak göstergelerde görüntülenir.
  • İstenilen rakama bir nokta konur.

Örneğin, aşağıdaki satırlar, yedi bölümlü LED'lere iki ondalık basamaklı bir değişken değişkenin çıktısını verecektir.

kayan nokta x = 2,12345;

disp.rakam |= 0x80; //

Sayıyı 100 ile çarpıyoruz ve üçüncü basamağa nokta koyarak sonucu 100'e bölüyoruz.

Göstergelerde 0,00'dan 99,99'a kadar kayan nokta sayılarını görüntüleyen bir program.

// kayan nokta çıkışı
#katmak
#katmak

// gösterge tipi 1; deşarj çıkışları 5,4,3,2; segment çıktıları 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

geçersiz kurulum() (
MsTimer2::set(2, timerInterrupt); // zamanlayıcı kesintisi 2 ms
MsTimer2::start(); // kesmeyi etkinleştirme
}

geçersiz döngü() (
kayan nokta x = 0;

for (int i = 0; i< 10000; i++) {
x += 0,01;

disp.print((int)(x * 100.), 4, 1);
disp.rakam |= 0x80; // üçüncü seviye noktasını aydınlat

gecikme(50);
}
}

//kesme işleyicisi 2 ms
geçersiz zamanlayıcıInterrupt() (
disp.regen(); // gösterge yenilenmesi
}

Gördüğünüz gibi Led4Digits.h kütüphanesi, Arduino kartına bağlı yedi bölümlü ışık yayan diyot (LED) göstergelerle çalışmayı büyük ölçüde basitleştirir. Böyle bir kütüphanenin bir analogunu bulamadım.

Bir kaydırma yazmacı aracılığıyla LED ekranlarla çalışmak için kütüphaneler vardır. Birisi bana doğrudan Arduino kartına bağlı bir LED ekranla çalışan bir kütüphane bulduğunu yazdı. Ancak bunu kullanırken gösterge rakamları dengesiz bir şekilde parlıyor ve göz kırpıyor.

Analoglarının aksine Led4Digits.h kütüphanesi:

  • Paralel bir süreç olarak çalışır. Ana döngüde program, verileri ekranda otomatik olarak görüntülenen belirli değişkenlere yükler. Bilgi çıkışı ve gösterge yenilenmesi, ana program tarafından görülemeyen bir zamanlayıcı kesintisinde gerçekleşir.
  • Ekran numaraları yanıp sönmeden eşit şekilde parlıyor. Bu özellik, rejenerasyonun kesin olarak bir zamanlayıcı kesintisi tarafından tanımlanan bir döngüde gerçekleşmesiyle sağlanır.
  • Kitaplığın kompakt bir kodu vardır, hızlı bir şekilde yürütülür ve denetleyiciyi minimum düzeyde yükler.

Bir sonraki dersimizde Arduino kartına aynı anda bir LED göstergesi ve bir buton matrisi bağlayacağız. Böyle bir tasarım için bir kütüphane yazalım.

Kategori: . Favorilerinize ekleyebilirsiniz.

Bugünkü yazımızda 7 segmentli göstergelerden ve Arduino ile nasıl “arkadaş olabileceğimizden” bahsedeceğiz. Birkaç seçenek var. En kolayı elbette gitmek ve entegre kalkanlı hazır bir gösterge satın alın (eşleşen kart buna denir), ancak kolay yollar aramıyoruz, bu yüzden biraz daha zor bir yol izleyeceğiz. Yeni başlayanlar - paniğe kapılmayın, bu makale, önceki makalelerim gibi ( Ve ) sadece senin için. Bırakın gurular aynı deneyimli gurular için yazsın ve ben bir acemiyim - yeni başlayanlar için yazıyorum.

Neden 7 bölümlü bir gösterge? Sonuçta, çok sayıda karakter, çizgi, çeşitli köşegenler ve çözünürlükler, siyah beyaz ve renkli, en uygun fiyatlı olanı birkaç dolara mal olan pek çok farklı ekran var... Ve işte: "eski" aşırı derecede basit ama çok sayıda pin gerektiren 7 segmentli gösterge, ama yine de bu "yaşlı adamın" da bir avantajı var. Gerçek şu ki, burada verilen çizimleri kullanarak yalnızca rakam yüksekliği 14 mm olan bir göstergeyi değil, aynı zamanda daha ciddi (ev yapımı da olsa) projeleri de canlandırabilirsiniz ve bu durumda sayaç rakamları sınırdan uzaktır. Bu, başkent sakinleri için o kadar ilginç olmayabilir, ancak Novokatsapetovka veya Nizhnyaya Kedrovka nüfusu, bir kulüpte veya köy meclisinde tarihi ve sıcaklığı da gösterebilen bir saat belirirse ve yaratıcı hakkında konuşacaksa çok mutlu olacaktır. bu saatin çok uzun bir süredir. Ancak bu tür saatler ayrı bir makalenin konusu: ziyaretçiler isteyecek - Yazacağım. Yukarıda yazılanların hepsi bir giriş sayılabilir. Geçen yazım gibi bu yazı da bu kez iki bölümden oluşacak. İlk bölümde göstergeyi basitçe "yöneteceğiz" ve ikinci bölümde onu en azından biraz faydalı bir şeye uyarlamaya çalışacağız. O halde devam edelim:

Birinci bölüm. Deneysel - eğitici

Bu projenin temeli, önceki makalelerden zaten iyi bildiğimiz ARDUINO UNO'dur. Satın almanın en kolay yolunun burada olduğunu hatırlatmama izin verin: veya burada: Ayrıca 4 haneli, 7 segmentli bir göstergeye ihtiyacınız olacak. Özellikle GNQ-5641BG-11'im var. Neden bu? Evet, sırf 5 yıl önce yanlışlıkla satın aldığım için, gidip değiştiremeyecek kadar tembeldim, o yüzden bunca zaman ortalıkta öylece durup kenarda bekliyordu. Ortak bir anodu olan herkesin bunu yapacağını düşünüyorum (ve ortak bir katotla bu mümkündür, ancak dizi verilerini ve diğer bağlantı noktası değerlerini ters çevirmeniz - yani bunları zıt değerlere değiştirmeniz gerekecek), sürece Arduino'yu yakmayacak kadar güçlü değil. Ek olarak, her biri yaklaşık 100 Ohm olan 4 akım sınırlayıcı direnç ve 12 pin (çekirdek) için bir parça kablo (benim için 10 cm yeterliydi) daha geniş olandan "yırtılabilir", ben de öyle yaptım. Veya ayrı tellerle bile lehimleyebilirsiniz, hiçbir sorun yaşanmaz. Tahta için de pimlere (11 adet) ihtiyacınız olacak, ancak dikkatli olursanız onlarsız da yapabilirsiniz. Göstergenin bir taslağı Şekil 1'de ve diyagramı Şekil 2'de görülebilir. Ayrıca, bu göstergenin her bir bölümüne (100 Ohm dirençlerle sınırlı) 2,1V'den daha fazla güç sağlamamanın daha iyi olacağını da not edeceğim ve bu durumda en fazla 20 mA tüketecektir. Eğer “8” rakamı yanıyorsa tüketim 7x20=140 mA’i aşmayacaktır ki bu da Arduino çıkışları için oldukça kabul edilebilir bir değerdir. Meraklı bir okuyucu şu soruyu soracaktır: "Fakat her biri 140 mA olan 4 deşarj zaten 4x140 = 560 mA'dır ve bu zaten çok fazla!" Cevap vereceğim - 140 tane kalacak. Nasıl? Okumaya devam edin! Gösterge üzerindeki pinlerin konumu Şekil 3’te görülüyor. Bağlantıyı da Tablo 1’e göre yapıyoruz.


Pirinç. 1 - Gösterge taslağı


Pirinç. 2 - Gösterge devresi


Pirinç. 3 - Pin konumu

Tablo 1

Arduino Uno'yu sabitle

Gösterge pimi

Not

Segment G

Segment F

Segment E

Segment D

Segment C

Segment B

Segment A

1 numaralı segmentin ortak anotu, 100 Ohm'luk bir direnç aracılığıyla bağlanır.

2 numaralı segmentin ortak anotu, 100 Ohm'luk bir direnç aracılığıyla bağlanır.

3 numaralı segmentin ortak anotu, 100 Ohm'luk bir direnç aracılığıyla bağlanır.

6 numaralı segmentin ortak anotu, 100 Ohm'luk bir direnç aracılığıyla bağlanır.



0'dan 9'a kadar basit bir "sayma tablosu" olan basit bir çizimi dolduruyoruz:


Şimdi biraz açıklama yapalım. DDRD, D bağlantı noktasının bir kaydıdır (sırasıyla, DDRB - sırasıyla, bağlantı noktası B) "korkutucu" "kayıt" kelimesinin arkasında, bağlantı noktasının piniyle (bilgi alma) veya mengeneyle bir şey okuyup okumayacağını gösteren yalnızca "gizli" bir işlev vardır tam tersi orada bir şeyler yapıp sonra yazmak (bilgi vermek) mümkün olacaktır. Bu durumda DDRD=B11111111; D bağlantı noktasının tüm pinlerinin çıktı olduğunu gösterir; bilgi onlardan çıkacaktır. “B” harfi, kaydediciye ikili bir sayının yazıldığı anlamına gelir. Sabırsız bir okuyucu hemen şunu soracaktır: “Ondalık sayı mümkün mü!?!” Bunun mümkün olduğu konusunda sizi temin etmek için acele ediyorum, ancak bu konuya biraz sonra değineceğim. Portun yarısını giriş için, yarısını da çıkış için kullanmak isteseydik bunu şu şekilde belirtebilirdik: DDRD=B11110000; olanlar bilgi verecek pinleri, sıfırlar ise bu bilgiyi alacak pinleri gösterir. Kayıt cihazının ana rahatlığı aynı zamanda tüm pinleri 8 kez kaydetmenize gerek olmamasıdır, yani. programa 7 satırı kaydediyoruz. Şimdi aşağıdaki satıra bakalım:

PORTB=B001000; // B portunun 11 numaralı pinini yüksek olarak ayarladık

PORTB, port B veri kaydıdır, yani. İçine bir sayı yazarak portun hangi pininin 1, hangisinin sıfır olacağını belirtiyoruz. Yoruma ek olarak şunu söyleyeceğim: Arduino Uno'yu, denetleyiciyi ve dijital pinleri üstte görecek şekilde alırsanız, kayıt defterine giriş net olacaktır, yani. hangi “sıfır” (veya “bir”) hangi pin'e karşılık gelir, yani. B bağlantı noktasının en sağdaki sıfırı 8. pinden sorumludur ve en soldaki ise 13. pinden sorumludur (dahili bir LED'e sahiptir). D bağlantı noktası için sırasıyla sağdaki pin 0, soldaki ise pin 7 içindir.
Umarım bu kadar ayrıntılı açıklamalardan sonra her şey açıktır, ancak açık olduğu için çocukluğumuzdan beri bildiğimiz ve sevdiğimiz ondalık sayı sistemine dönmeyi öneriyorum. Ve bir şey daha var - 25 satırlık bir taslak küçük görünebilir, ancak yeni başlayanlar için hala biraz hantaldır. Bunu azaltacağız.

Aynı “sayma tablosunu” daha da basit bir çizimle dolduralım:


Video 1.
Sadece 11 satır! Bu bizim yolumuz, “acemi yolu”! Kayıtlarda ikili sayılar yerine ondalık sayıların yazıldığını lütfen unutmayın. Doğal olarak ondalık sayılar için öndeki harflere gerek yoktur. Tüm rakamları tablolara dökmenin bir zararı olmayacağını düşünüyorum.

Tablo 2. Görüntülenen karakterin port verilerine uygunluğu

Ortak anot

Ortak katot

İkili sistem

Ondalık sistem

İkili sistem

Ondalık sistem

Tablo 3. Görüntülenen rakamın port verilerine uygunluğu

Ortak anot

Ortak katot

İkili sistem

Ondalık sistem

İkili sistem

Ondalık sistem



Dikkat! Tablo 2 ve 3'teki veriler yalnızca tablo 1'e göre kablolama yapıldığında geçerlidir.
Şimdi 0'dan 9999'a kadar "sayma tablosu" içeren bir çizim yükleyelim:




Pirinç. 4 - Sayma tablosu

Krokiyi çalışırken görebilirsiniz.Video 2.

Bu taslakta kodun kendisinden daha fazla yorum var. Hiçbir soru olmamalı... Bir şeyin yanı sıra, bu nasıl bir "titreşim döngüsü", aslında orada titreşen şey nedir ve neden? Ve bunun için de bir tür değişken var...
Ve asıl mesele, dört kategorinin hepsinin aynı adı taşıyan bölümlerinin bir noktada birbirine bağlı olmasıdır. A1, A2, A3 ve A4'ün ortak bir katodu vardır; A1, B1,…..G1 ortak anot. Yani 4 haneli göstergeye aynı anda “1234” uyguladığımızda “8888” elde edeceğiz ve buna çok şaşıracağız. Bunun olmasını önlemek için önce kategorinizde “1”i yakmanız, ardından kapatmanız, kendi kategorinizde “2”yi yakmanız vb. gerekir. Bunu çok hızlı yaparsanız, sayıların titremesi bir filmdeki kareler gibi birleşecek ve göz bunu neredeyse fark etmeyecektir. Ve bu durumda yanıp sönen değişkenin maksimum değeri, göstergedeki değişen sayıların hızını kontrol eder. Bu arada, bu "titreşim" sayesinde maksimum akım tüketimi 560 yerine sadece 140 mA oluyor. Şimdi daha kullanışlı bir şeye geçmeyi öneriyorum.

İkinci bölüm. En azından biraz faydalı

Bu bölümde, kişisel bilgisayardaki karakterlerin çıktısını ARDUINO MEGA kullanarak 7 segmentli bir göstergeye aktaracağız. “Geçişte atları değiştirme” fikri neden birdenbire ortaya çıktı? Bunun iki nedeni var: Birincisi, daha önce yazılarımda ARDUINO MEGA'yı hiç düşünmemiştim; ve ikincisi, ARDUINO UNO'da COM bağlantı noktası ile D bağlantı noktasını dinamik olarak nasıl değiştirebileceğimi hala çözemedim. Ama ben bir acemiyim - affedilebilirim. Doğal olarak bu denetleyiciyi buradan satın alabilirsiniz: . Planı uygulamak için bir havya alıp kabloyu Arduino tarafından yeniden lehimlemem ve ayrıca yeni bir çizim yazmam gerekiyordu. Şekil 5'te kablonun nasıl lehimlendiğini görebilirsiniz. Mesele şu ki, ARDUINO MEGA ve ARDUINO UNO'nun farklı port pin çıkışları var ve Mega'nın çok daha fazla portu var. Kullanılan pinlerin yazışmaları Tablo 4'te görülebilir.



Pirinç. 5 - Yeni kablo tesisatı

Tablo 4

Liman Mega


Dikkat! Bu tablo sadece bu proje için geçerlidir!

Ayrıca Arduino Mega'nın C bağlantı noktasının pin 37'den "başladığını" ve ardından azalan sırada, A bağlantı noktasının ise pin 22'den ve ardından artan sırada başladığını unutmayın.



Pirinç. 6 - Genel görünüm



Küçük uygulama özellikleri: 4 karakter çıktısı alacağız. Karakterler sayılardan oluşmalıdır. “1234” girdiyseniz ve “1234”ü göreceğiz, “123456” girdiyseniz hala “1234” göreceğiz, “ytsuk”, “fyva1234”, “otiog485909oapom” girdiyseniz hiçbir şey görmeyeceğiz. Eğer “pp2345mm” girdiyseniz “23”ü göreceğiz, yani. küçük, yerleşik "kusur geçirmezlik".

Taslağın kendisi:



Bu programın nasıl çalıştığını şu adreste görebilirsiniz:Video 3.



Pavel Sergeev tarafından hazırlanan inceleme


Tek haneli yedi bölümlü gösterge için bağlantı şeması
Çok basamaklı yedi bölümlü gösterge için bağlantı şeması

Dijital bilgi görüntüleme cihazı. Bu, Arap rakamlarını görüntüleyebilen bir göstergenin en basit uygulamasıdır. Harfleri görüntülemek için daha karmaşık çok bölümlü ve matris göstergeleri kullanılır.

Adından da anlaşılacağı gibi ayrı ayrı açılıp kapanan yedi ekran öğesinden (bölüm) oluşur. Bunları farklı kombinasyonlara dahil ederek Arap rakamlarının basitleştirilmiş görüntülerini oluşturmak için kullanılabilirler.
Segmentler A'dan G'ye kadar olan harflerle gösterilir; sekizinci bölüm - ondalık nokta (ondalık nokta, DP), kesirli sayıları görüntülemek için tasarlanmıştır.
Bazen yedi bölümlü göstergede harfler görüntülenir.

Genellikle beyaz, kırmızı, yeşil, sarı ve mavi olmak üzere çeşitli renklerde gelirler. Ayrıca farklı boyutlarda olabilirler.

Ayrıca LED göstergesi tek haneli (yukarıdaki şekildeki gibi) veya çok haneli olabilir. Temel olarak pratikte bir, iki, üç ve dört haneli LED göstergeler kullanılır:

On rakamın yanı sıra yedi segmentli göstergeler harfleri de görüntüleme özelliğine sahiptir. Ancak çok az harfin sezgisel yedi bölümlü temsili vardır.
Latince: büyük harf A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, küçük harf a, b, c, d, e, g , h, i, n, o, q, r, t, u.
Kiril alfabesinde: A, B, V, G, g, E, i, N, O, o, P, p, R, S, s, U, Ch, Y (iki basamak), b, E/Z.
Bu nedenle yedi bölümlü göstergeler yalnızca basit mesajları görüntülemek için kullanılır.

Yedi bölümlü LED göstergesi toplamda 128 karakter görüntüleyebilir:

Tipik bir LED göstergesinin dokuz ucu vardır: biri tüm bölümlerin katotlarına, diğer sekizi ise her bölümün anotlarına gider. Bu şema denir "ortak katot devresi" ayrıca şemalar da var ortak anotlu(o zaman tam tersi olur). Çoğu zaman, tabanın farklı uçlarında bir değil iki ortak terminal yapılır - bu, boyutları artırmadan kablolamayı basitleştirir. Sözde "evrensel" olanlar da var ama ben şahsen böyleleriyle karşılaşmadım. Ek olarak, mikro denetleyici bağlantı noktası pinlerinin sayısını büyük ölçüde azaltan yerleşik kaydırma yazmacına sahip göstergeler vardır, ancak bunlar çok daha pahalıdır ve pratikte nadiren kullanılır. Ve büyüklüğü kavranamadığından şimdilik bu tür göstergeleri dikkate almayacağız (ancak çok daha fazla segmentli göstergeler, matris olanlar da var).

Çok haneli LED göstergeler genellikle dinamik bir prensip üzerinde çalışır: tüm rakamların aynı adı taşıyan bölümlerinin çıkışları birbirine bağlanır. Böyle bir göstergeyle ilgili bilgileri görüntülemek için, kontrol mikro devresinin tüm rakamların ortak terminallerine döngüsel olarak akım sağlaması gerekirken, belirli bir segmentin belirli bir rakamda yanıp yanmadığına bağlı olarak segment terminallerine akım sağlanmalıdır.

Tek haneli yedi bölümlü göstergeyi bir mikro denetleyiciye bağlama

Aşağıdaki diyagram nasıl olduğunu gösterir tek haneli yedi bölümlü bir gösterge bağlı mikrodenetleyiciye.
Göstergenin aşağıdaki gibi olması dikkate alınmalıdır: ORTAK KATOT, daha sonra ortak çıkışı şuna bağlanır: "toprak" ve segmentler beslenerek ateşlenir mantıksal birim bağlantı noktası çıkışına.
Gösterge ise ORTAK ANOT, daha sonra ortak teline beslenir "artı" voltaj ve segmentler, port çıkışını duruma değiştirerek ateşlenir mantıksal sıfır.

Tek haneli bir LED göstergesindeki gösterge, karşılık gelen mantıksal seviyenin karşılık gelen basamağının mikro denetleyici portunun pinlerine bir ikili kod uygulanarak gerçekleştirilir (OK - mantıksal göstergeler için, OA - mantıksal sıfırlara sahip göstergeler için).

Akım sınırlama dirençleri Diyagramda mevcut olabilir veya olmayabilir. Her şey göstergeye sağlanan besleme voltajına ve göstergelerin teknik özelliklerine bağlıdır. Örneğin, segmentlere sağlanan voltaj 5 volt ise ve bunlar 2 voltluk bir çalışma voltajı için tasarlanmışsa, o zaman akım sınırlayıcı dirençler kurulmalıdır (artırılmış besleme voltajı için içlerinden geçen akımı sınırlamak ve yanmamak için) yalnızca gösterge değil, aynı zamanda mikro denetleyici bağlantı noktası da).
Büyükbabanın formülünü kullanarak akım sınırlayıcı dirençlerin değerini hesaplamak çok kolaydır. Ohm.
Örneğin, göstergenin özellikleri aşağıdaki gibidir (veri sayfasından alınmıştır):
- çalışma voltajı - 2 volt
— çalışma akımı — 10 mA (=0,01 A)
— besleme voltajı 5 volt
Hesaplama formülü:
R= U/I (bu formüldeki tüm değerler Ohm, Volt ve Amper cinsinden olmalıdır)
R= (besleme voltajı - çalışma voltajı)/çalışma akımı
R= (5-2)/0,01 = 300 Ohm

Çok haneli yedi bölümlü LED göstergesi için bağlantı şeması Temel olarak tek haneli bir göstergeyi bağlarken olduğu gibi. Tek şey, göstergelerin katotlarına (anotlarına) kontrol transistörlerinin eklenmesidir:

Diyagramda gösterilmemiştir, ancak transistörlerin tabanları ile mikrodenetleyici portunun pinleri arasında, direnci transistörün tipine bağlı olan dirençlerin dahil edilmesi gerekir (direnç değerleri hesaplanır, ancak ayrıca nominal değeri 5-10 kOhm olan dirençleri kullanmayı deneyebilirsiniz).

Deşarjlarla gösterge dinamik olarak gerçekleştirilir:
- karşılık gelen rakamın ikili kodu, 1. rakam için PB portunun çıkışlarında ayarlanır, ardından ilk rakamın kontrol transistörüne mantıksal seviye uygulanır.
- karşılık gelen rakamın ikili kodu, 2. rakam için PB portunun çıkışlarında ayarlanır, ardından ikinci rakamın kontrol transistörüne mantıksal seviye uygulanır.
- karşılık gelen rakamın ikili kodu, 3. rakam için PB portunun çıkışlarında ayarlanır, ardından üçüncü rakamın kontrol transistörüne mantıksal seviye uygulanır.
- yani bir daire içinde
Bu durumda şunları dikkate almak gerekir:
— göstergeler için TAMAM kontrol transistör yapısı kullanılır NPN(mantıksal birim tarafından kontrol edilir)
- gösterge için OA- yapı transistörü PNP(lojik sıfır tarafından kontrol edilir)

Yedi bölümlü LED göstergeler, dijital değer görüntüleme cihazları arasında oldukça popülerdir ve mikrodalga fırınların, çamaşır makinelerinin, dijital saatlerin, sayaçların, zamanlayıcıların vb. ön panellerinde kullanılır. LCD göstergelerle karşılaştırıldığında, LED gösterge bölümleri parlak bir şekilde parlar ve üstten görülebilir. uzun bir mesafede ve geniş bir görüş açısında. Yedi segmentli 4 bitlik bir göstergeyi bir mikro denetleyiciye bağlamak için en az 12 I/O hattı gerekli olacaktır. Dolayısıyla bu göstergelerin az sayıda pinli mikrodenetleyicilerle, örneğin firmanın serileriyle kullanılması neredeyse imkansızdır. Elbette farklı çoğullama yöntemleri kullanabilirsiniz (bununla ilgili bir açıklama web sitesinde "Şemalar" bölümünde bulunabilir), ancak bu durumda bile her yöntem için belirli sınırlamalar vardır ve genellikle karmaşık yazılım algoritmaları kullanırlar.

Mikrodenetleyicinin yalnızca 3 I/O hattını gerektirecek olan SPI arayüzü üzerinden bir gösterge bağlama yöntemine bakacağız. Aynı zamanda tüm gösterge segmentlerinin kontrolü devam edecek.

4 bitlik bir göstergeyi SPI veri yolu aracılığıyla bir mikro denetleyiciye bağlamak için şirket tarafından üretilen özel bir sürücü çipi kullanılır. Mikro devre, ortak bir katotla sekiz yedi bölümlü göstergeyi çalıştırabilir ve bir BCD kod çözücü, bölüm sürücüleri, bir çoğullama devresi ve rakam değerlerini depolamak için statik RAM içerir.

Gösterge bölümlerinden geçen akım yalnızca bir harici direnç kullanılarak ayarlanır. Ek olarak çip, dahili PWM kullanarak gösterge parlaklığının (16 parlaklık seviyesi) kontrolünü destekler.

Yazıda ele alınan devre amatör radyo tasarımlarında kullanılabilecek SPI arayüzlü bir ekran modülü devresidir. Ve biz daha çok devrenin kendisiyle değil, SPI arayüzü aracılığıyla mikro devre ile çalışmakla ilgileniyoruz. +5 V modül gücü Vcc pinine beslenir, MOSI, CLK ve CS sinyal hatları ana cihaz (mikrodenetleyici) ile yardımcı cihaz (MAX7219 yongası) arasındaki iletişim için tasarlanmıştır.

Mikro devre standart bir bağlantıda kullanılır; ihtiyaç duyulan tek harici bileşenler, segmentler boyunca akımı ayarlayan bir direnç, güç kaynağı için koruyucu bir diyot ve güç kaynağı için bir filtre kapasitörüdür.

Veriler, CLK sinyalinin her yükselen kenarında yerleşik 16 bitlik kaydırma yazmacına yerleştirilen 16 bitlik paketler (iki bayt) halinde çipe aktarılır. 16 bitlik bir paketi D0-D15 olarak belirtiriz, burada D0-D7 bitleri veri içerir, D8-D11 kayıt adresini içerir, D12-D15 bitlerinin hiçbir anlamı yoktur. Bit D15 en önemli bittir ve alınan ilk bittir. Çip sekiz göstergeyi kontrol edebilse de yalnızca dört göstergeyle çalışmayı değerlendireceğiz. Sağdan sola sırayla yerleştirilmiş DIG0 - DIG3 çıkışları tarafından kontrol edilirler, bunlara karşılık gelen 4 bitlik adresler (D8-D11) 0x01, 0x02, 0x03 ve 0x04'tür (onaltılık format). Rakam kaydı, 8x8 organizasyona sahip çip üzerinde RAM kullanılarak uygulanır ve ekrandaki her bir rakamın herhangi bir zamanda güncellenebilmesi için doğrudan adreslenebilir. Aşağıdaki tablo MAX7219 yongasının adreslenebilir rakamlarını ve kontrol kayıtlarını göstermektedir.

Kayıt olmak

Adres

HEX değeri

İşlem yok

Kod çözme modu

Gösterge sayısı

Kapat

Gösterge testi

Kontrol kayıtları

MAX1792 yongasında 5 kontrol kaydı bulunur: kod çözme modu (Kod Çözme Modu), gösterge parlaklık kontrolü (Yoğunluk), bağlı göstergelerin sayısının kaydı (Tarama Limiti), açma/kapama kontrolü (Kapatma), test modu (Ekran Testi).

Çipi açma ve kapatma

Çipe güç uygulandığında tüm kayıtlar sıfırlanır ve Kapatma moduna geçer. Bu modda ekran kapatılır. Normal çalışma moduna geçmek için Kapatma kaydının (adres 0Сh) D0 biti ayarlanmalıdır. Bu bit, sürücüyü kapanmaya zorlamak ve tüm kayıtların içeriğini değiştirmeden bırakmak için herhangi bir zamanda temizlenebilir. Bu mod, enerji tasarrufu sağlamak için veya göstergenin yanıp sönmesiyle alarm modunda kullanılabilir (Kapatma modunun sıralı olarak etkinleştirilmesi ve devre dışı bırakılması).

Mikro devre, adresi (0Сh) ve verileri (00h) sırayla ileterek ve 0Ch (adres) ve ardından 01h (veri) aktarılarak normal çalışmaya geri dönerek Kapatma moduna geçirilir.

Kod çözme modu

Kod çözme modu seçim kaydını (adres 09h) kullanarak, her rakam için BCD kod B kod çözmeyi (0-9, E, H, L, P, - karakterlerini gösterme) veya kod çözme olmadan kullanabilirsiniz. Kayıttaki her bit bir rakama karşılık gelir, mantıksal bir bitin ayarlanması bu bit için kod çözücünün açılmasına karşılık gelir, 0 ayarı kod çözücünün devre dışı olduğu anlamına gelir. Bir BCD kod çözücü kullanılırsa, rakam kayıtlarındaki (D3-D0) yalnızca en düşük veri dikkate alınır, D4-D6 bitleri göz ardı edilir, D7 biti BCD kod çözücüye bağlı değildir ve açılmasından sorumludur. D7 = 1 ise göstergedeki ondalık nokta. Örneğin, 02h ve 05h baytları sırayla gönderildiğinde, DIG1 göstergesi (sağdan ikinci rakam) 5 sayısını gösterecektir. Benzer şekilde, 01h ve 89h gönderilirken DIG0 göstergesi ondalık nokta dahil 9 sayısını gösterecektir. . Aşağıdaki tablo IC'nin BCD kod çözücüsünü kullanırken görüntülenen karakterlerin tam listesini gösterir.

Sembol

Kayıtlardaki veriler

Etkinleştirilen segmentler = 1

Boş

*Ondalık nokta D7=1 bitiyle ayarlanır

BCD kod çözücü çalışma dışı bırakıldığında, D7-D0 veri bitleri göstergenin segment çizgilerine (A-G ve DP) karşılık gelir.

Gösterge parlaklık kontrolü

Çip, yerleşik PWM'yi kullanarak göstergelerin parlaklığını programlı olarak kontrol etmenizi sağlar. PWM çıkışı, 16 parlaklık seviyesinden birini ayarlamanıza izin veren Yoğunluk kaydının (adres 0Ah) düşük dereceli yarım baytı (D3-D0) tarafından kontrol edilir. Bir yarım baytın tüm bitleri 1'e ayarlandığında göstergenin maksimum parlaklığı seçilir.

Bağlı göstergelerin sayısı

Tarama Sınırı kaydı (adres 0Bh), mikro devrenin (1 ... 8) hizmet verdiği bit sayısının değerini ayarlar. 4 bitlik versiyonumuz için kaydediciye 03h değerinin yazılması gerekmektedir.

Gösterge testi

Bu moddan sorumlu kayıt 0Fh adresinde bulunur. Kayıttaki D0 bitini ayarlayarak kullanıcı tüm gösterge bölümlerini açar, kontrol ve veri kayıtlarının içeriği değişmez. Görüntü Testi modunu devre dışı bırakmak için bit D0'ın 0 olması gerekir.

Mikrodenetleyici ile arayüz

Gösterge modülü, üç serbest I/O hattına sahip herhangi bir mikro denetleyiciye bağlanabilir. Mikrodenetleyicinin yerleşik bir SPI donanım modülü varsa, gösterge modülü veri yoluna bağımlı cihaz olarak bağlanabilir. Bu durumda mikro denetleyicinin SPI sinyal hatları SDO (seri veri çıkışı), SCLK (seri saat) ve SS (slave seçimi) doğrudan MAX7219 yongasının (modül) MOSI, CLK ve CS pinlerine bağlanabilir. CS sinyali aktif düşük.

Mikrodenetleyicinin donanım SPI'sı yoksa arayüz yazılımda düzenlenebilir. MAX7219 ile iletişim, CS hattının çekilip düşük tutulmasıyla başlar, ardından CLK sinyalinin yükselen kenarındaki MOSI hattına sırayla 16 bit veri (önce MSB) gönderilir. İletimin tamamlanmasının ardından CS hattı tekrar yükselir.

İndirmeler bölümünde kullanıcılar, test programının kaynak metnini ve SPI arayüzlü bir gösterge modülünde değerlerin görüntülendiği geleneksel 4 bitlik bir sayacı uygulayan ürün yazılımının HEX dosyasını indirebilirler. Kullanılan mikro denetleyici, yazılımda uygulanan bir arayüzdür; gösterge modülünün CS, MOSI ve CLK sinyal hatları sırasıyla GP0, GP1 ve GP2 bağlantı noktalarına bağlanır. PIC mikrodenetleyicileri için mikroC derleyicisi kullanılır (mikroElektronika

Sitedeki materyaller hakkında yorum yapmak ve forumumuza tam erişim sağlamak için şunları yapmanız gerekir: kayıt olmak .