LED'ler için , bunu yapmanın bariz yolu, satranç tahtasının her satırı ve her sütunu için bir çıkış elde etmektir: toplam 8 + 8 = 16 pim. Anotlar sıra tellerine ve katotları sütun teline bağlanır. Aydınlatmak istediğiniz LED için, diğerlerini ters durumda tutarken anot telini pozitif (mantık 1) ve katot telini negatif (mantık 0) yaparsınız (böylece kalan LED'lerin nötr veya ters eğilimi olur.)
Burada mikrokontrolcünün bir LED'i bir diğerine köprüleyebilmeniz için yeterince yüksek / düşük voltaj verdiğini varsayıyorum. Eğer durum böyle değilse, her bir hat için bir transistöre veya tampona ihtiyacınız olacaktır. 5V besleme ile LED 2V hakkında düştüğü göz önüne alındığında sıkıdır ve mevcut sınırlama direnciniz üzerinde makul bir voltaj düşüşü istediğinizi düşünün (bunları her ikisine de değil sadece satır satırlarına veya sütun satırlarına kurmanız gerektiğini unutmayın.)
Çıkışlarınız üç durumluysa (yani, mantık 0 ve mantık 1'e ek olarak, belki de geçici olarak giriş olarak yapılandırarak yüksek empedans durumuna ayarlanabilir) LED'lerle akıllı olabilir ve 4x8 ızgara kullanabilirsiniz karşıt çiftler halinde bağlanır. Bu kurulumda kullanılmayan çıkışları yüksek empedansa ayarlamak önemlidir, aksi takdirde istenmeyen LED'ler yanar.
Her iki durumda da, mevcut çekilişi ve bir satırdaki tüm LED'leri aynı anda aydınlatma olasılığını riske atmanın kabul edilebilir olup olmadığını düşünmeniz gerekecek (bu, hesaba katılmazsa mikrodenetleyicinin sıra satırını aşırı akabilir) .)
Sensörlerin durumu daha karmaşıktır.Dirençli sensörler kullandığınızı varsayacağım, ancak fototransistörlerin sadece tek bir yönde çalışması garanti edilmez.
LED'lerinizi yakmak için kullandığınız aynı 8 satır çıkışını kullanabilirsiniz, ancak algılamaya adanmış 8 sütun girişine ihtiyacınız olacaktır. Kuşkusuz böyle tuş takımları için devreler göreceksiniz . Bunların aynı anda yalnızca bir tuşa basılacak şekilde tasarlandığını unutmayın . Kullanıcı 1,3,7 ve 9 tuşlarına birlikte basarsa, tuş takımı, kullanıcının bu dört tuştan herhangi birini bırakıp bırakmadığını algılayamaz, çünkü diğer üç anahtarda halen geçerli bir yol vardır.
Müzik klavyelerinde kullanılan bir çözüm (bir kerede ileten matrisin birden fazla elemanına sahip olacak şekilde tasarlanmış), her bir anahtarla seri olarak bir diyota sahip olmaktır.
Başka bir çözüm , açık kolektör çıkışlı (veya MOSFET IC'ler kullanılıyorsa açık tahliye) olan dört adet 4 ila 16 kod çözücü IC'si satın almak olacaktır : http://www.unicornelectronics.com/ftp/Data%20Sheets/74159.pdf Açık kollektör, IC çıkışlarının kaynağı değil, sadece akımı batıracağı anlamına gelir. Böylece, 16 sensörü çipin 16 çıkışına bağlayabilir ve diğer uçları bir çekme direnci ile ortaklaştırabilirsiniz (ADC'nizi buraya da bağlarsınız). Bir çıkışı düşük (iletken) ve diğer 15'i yüksek (iletken olmayan) olarak ayarlarsınız. Bu, diğer 15 çıkışın ortak noktaya akım dökeceği standart mantık çıkışının tersidir.
Bu IC'lerin girişi 16 çıkıştan birini seçmek için 4 bitlik ikilik bir sistemdir, fakat aynı zamanda çipi etkinleştirmek / devre dışı bırakmak için ekstra bir girişe sahiptirler. Böylece potansiyel olarak 64 sensöre bağlı bir dizi 64 açık kolektör lavaboya sahip olabilirsiniz, sensörlerin diğer uçları tek bir çekme direncine ve analog-dijital dönüştürücüye ortaktır. Bunun için mikrodenetleyicinizde toplam 8 çıkışa ihtiyacınız olacaktır: dördü 4 ila 16 seçim sinyalini almak için (dört çipin tümü için ortak) ve dördü etkinleştirme sinyallerini almak için (her yonga için bir tane).
DÜZENLEME: 3 ila 8 kod çözücü (8 üzerinden 1 = 8 satır 1 olarak da bilinir) 4'ten 16'ya kadar daha kullanılabilir gibi görünmektedir, ancak 8 IC 4'ten çok daha dağınıktır. sekizli sayaç (ve daha yaygın kuzeni on dokuzuncu çıkışını sıfırlama hattına bağlayarak sekizli bir sayaç olarak yapılandırılabilir.) Bunlar, bir çıkıştan diğerine ilerlemek için seri bir darbe gerektirir, bu yüzden daha az ihtiyaç duyar Mikrodenetleyici üzerindeki kod çözücü IC'lerinden daha fazla G / Ç pinleri. Genellikle sıfırlama ve etkinleştirme için ek girişleri vardır. İki tipte mevcut olan IC yazmacı adı verilen IC'ler de vardır: biri seriyi paralel dönüştürmek için, diğeri seriye paralel dönüştürmek için. Sonunda,Rasberry Pi'niz ve satranç tahtanızın arasına koyabileceğiniz tamponlar , böylece Pi aşırı akım durumunda yok olmaz. Bunların hepsi çoğullama devrelerinde faydalı olabilir.