Makey Makey'nizi kullanmadan sadece bir klavye yapmak istiyorsanız, bunu Raspberry Pi'nin GPIO işlevini kullanarak yapabilirsiniz. Ancak daha önce yorumlandığı gibi, Raspberry Pi'nin gerçekten kullanışlı bir klavye yapmak için yeterli pimi yok.
Ancak, 2 IC eklemek istiyorsanız, kendinize o kadar çok tuşa sahip bir klavye yapabilirsiniz ki, her tuş için bir işlev bulmak için bir sorun yaşayacaksınız!
Benim önerim, 2 I2C IC'yi Raspberry Pi'deki I2C veriyoluna bağlamak ve bunları kendi tarama matrisinizi oluşturmak için kullanmaktır.
Bir PCF8574 kullanıyorsanız 8 I / O piminiz var, PCF8575 alırsanız bile 16 I / O piminiz var. Bir araya getirerek şu tarama matrisini alabilirsiniz:
- 64 tuş: (2x PCF8574)
- 128 tuş: (1x PCF8574 ve 1x PCF8575)
- 256 tuş: (2x PCF8575)
Her zaman bunlardan birini çıktı, diğerini girdi olarak kullanmalısınız. Çıktıda, bit 0'dan bit n'ye (7 veya 15) biraz 'yürümeye' izin verirsiniz, bunlar matrisin sütunlarıdır. Diğer yandan sürekli olarak girişin değerini okursunuz ve bunlar matrisin satırlarıdır. Hangi çıkış bitinin aktif ve hangi giriş bitinin '1' olduğu kombinasyonu basılan tuştur.
Aslında matrisi oluşturmak en fazla iştir ve siz işteyken, matrise koyduğunuz her anahtardan sonra bir diyot eklemeyi unutmayın, bu diyotun (normal 1N4148 iyi sonuç verir) anotla yerleştirilmesi gerekir anahtar ve katot satır satırına. Bu diyot üzerindeki 0.6V'luk voltaj düşüşü sorun olmamalı, kalan (3.3V-0.6V) 2.7V hala mantıklı bir '1' olmalıdır.
Bu kamyon yükü diyotlarının nedeni, gölgelenme ve anahtarların maskelemesi gibi şeyleri önleyecek olmasıdır. Gölgelenme, aynı anda üçten fazla tuşa basarsanız, tamamen farklı bir anahtar olarak yorumlanması mümkündür, çünkü daha fazla satır mantıklı bir '1'e sahip olacaktır. Maskeleme, birden fazla tuşa basıp bir tuşu serbest bırakırsanız, (bazı durumlarda) bu tuşun satırı hala mantıklı bir '1' olduğu için algılanmayacaktır.
Resimde gölgelenme örneği gösterilmektedir, A, B, D düğmelerine basılır ve Satır 1'in (A düğmesi için) yanında Satır 2 (C düğmesi için) de yüksektir, şu anda Sütun 1 aktiftir, bu doğru değildir.
Tüm donanım macerasından sonra, klavyeyi linux altında kullanmak için bir çekirdek sürücüsü yazmanız veya uyarlamanız gerekir. Güzel bir başlangıç noktası bu bağlantı olabilir: TCA6416 I2C IO genişletici üzerindeki tuşlar için sürücü , bu benzer bir fikirdir, ancak sadece 16 tuşlu tuş takımı kullanır.
Umarım bu sana biraz yardımcı olur.