Evet, bu iyi bir fikir gibi görünüyor, ama yine de aklıma gelen bir alternatif önereceğim.
Mantık kapılarına erişiminiz varsa , boolean mantığı aracılığıyla birçok n
düğmeyi ceil(log2(n + 1))
iğnelerle eşleyebilirsiniz . Örnek olarak, 4 düğmeniz varsa, ancak yalnızca 2 iğneniz varsa, bunun gibi bir yapılandırma oluşturabilirsiniz:
Buttons | Pins
---- | --
0123 | 01
---- | --
0001 | 00
0010 | 01
0100 | 10
1000 | 11
Yani, button0
preslenmiş pin0
ve pin1
düşük olmalıdır ; button1
, pin0
Düşük ve pin1
yüksek; button2
, pin0
yüksek ve pin1
düşük; ve button3
, pin0
ve pin1
yüksek.
Bundan, aşağıdaki boole ifadeleri ortaya çıkacaktır
pin0 = button2 OR button3
pin1 = button1 OR button3
Böylece 4 düğmenin 2 pime eşleştirilmesi sadece 2 VEYA geçidi ile gerçekleştirilebilir. Bununla birlikte, herhangi bir düğmeye basıp basmadığını göstermek için ek bir raptiye ve bazı ek mantık gerekir.
Tabii ki, aynı anda birkaç düğmeye basıldığında hala sorunlar olacaktır.
Ayrıca, direnç yaklaşımıyla devam edecekseniz, dirençler üzerinde daha büyük değerler kullanmayı düşünün, diğeri 100 ohm'luk dirençler aracılığıyla 5 V'den beri 100 ohm, 10s mA cinsinden bir akım verecektir. gereksiz yüksek. Sanırım daha makul değerler 10k Ohm veya 47k Ohm olurdu.