Pin sayısı yetmediği zaman ne yapılabilir?

Başlatan dyonizos, 04 Nisan 2012, 07:42:00

dyonizos

elimdeki 16f877 pic üzerine 5 adet buton ve bu butonlara ait ledler var. Ama sadece 5 buton ve 5 led için picin 10 adet pinini harcamak istemiyorum. Zaten harcadığım zaman pin sayısı yetersiz kalıyor. Diğer pinlerde ds1302, ds1820, keypad ve glcd baglı.
Buton ve led ler için daha az sayıda pin kullanarak bir çözüm varmıdır. Yoksa 64 pin bir pic mi almalıyım?

Mucit23

çıkışları çoğaltmak için 74HC595 veya 74164 kullanabilirsin. Girişler içinse 74165 var

Maxim

#2
birde SPI ve I2C ile çalışan hazır entegreler olması lazım bu iş için

fakat başka çözümler üretilebilir
butonlar için hemen aklıma gelen ADC girişi mesela?
her buton önüne gerilim bölücü direnç koy
hepsini tek bir girişten adc ye gir

işte, 1-1.2 volt arası voltaj gelirse 1. buton
1.3 ile 1.5 arası gelirse 2. butondur gibi ..

bu şekilde değil 5, 15 tane buton için bile tek pin kullanabilirsin

ledler için hımmm
5 tane ledi 3 tane pin ile çalıştırabiliriz (çok düşünmedim)
ledlerin artı ve eksilerine göre portlara bağlar ve bazılarınada seri diyot koyarsak olur bu iş diye düşünüyorum


edit:
3 pin ile 6 tane led oluyor


ibrsel

#3
Maxim hocamın önerisini buton girişlerin için kullanabilirsin..
Alıntı Yap
fakat başka çözümler üretilebilir
butonlar için hemen aklıma gelen ADC girişi mesela?
Tek bir analog girişten 10 adet butonu okuttum.Sorunsuz çalışıyor.Üstelik keypad deki gibi tarama mantığı kurmana da gerek kalmıyor.Programında dolayısı ile hafifliyor :)


çıkışlar için de Mucit23 hocamın dediği gibi 74595 veya 4094 gibi shift register entegrelerini kullanabilirsin. 3 pin ile(Clock,Data,Strobe) istediğin kadar ledi sürersin.

berat23

Alıntı yapılan: ibrsel - 04 Nisan 2012, 10:22:14
Maxim hocamın önerisini buton girişlerin için kullanabilirsin..Tek bir analog girişten 10 adet butonu okuttum.Sorunsuz çalışıyor.Üstelik keypad deki gibi tarama mantığı kurmana da gerek kalmıyor.Programında dolayısı ile hafifliyor :)


çıkışlar için de Mucit23 hocamın dediği gibi 74595 veya 4094 gibi shift register entegrelerini kullanabilirsin. 3 pin ile(Clock,Data,Strobe) istediğin kadar ledi sürersin.

bu şekilde programın hafiflemez.adcnin çevrim süresi muhtemelen tuş tarama süresinden uzundur.hem sonrasında karşılaştırma için kod çalışacak.bu adcli yöntem her türlü taramadan yavaş çalışır.

bocek

1 ya da 0. işte 'bit'ün mesele..

bocek

1 ya da 0. işte 'bit'ün mesele..

madpic

yanlışlıkla 2 tuşa birden basarsanız yanlış bir değer almış olursunuz ama :o.
örneğin son iki tuşa basılınca adc nin okuyacağı değer yaklaşık 2.2k olacak. :(

ibrsel

Tarama yönteminde de iki tuşa birden basar iseniz doğru tuşu okuyamazsınız ..

cemilkendir

pcf8574 port çoğullama entegresi kullan yada ds1302 ve 18b20yi lcdinin data bacaklarına bağla ds1302nin cs pinini farklı bir pine bağla ama

lordsandman

çıkışta seri giriş paralel çıkış için 74595 benzeri ama shift yapmayan bir entegre var mı? şöyle ki DAC girişi olacak 8-bitlik verinin aynı anda çıkışta görülmesini istiyorum. bunun için 74595'te Output Enable var ama her DAC için ayrı pin gerekecek. yani örneğin 8 DAC için toplamda 11 pin gerekiyor. aynı işi zaten 74373 gibi bir latch ile 16 pinle(8 veri, 8 enable) halledebiliriz.
özetle 8-bitlik paralel girişli 8 DAC'ı kontrol etmek için minimum konfigürasyon ne olabilir? 2 tane 74595'in birini data öbürünü enable için omak üzere toplam 6 pinle halledilebilir belki ama PIC yazılında kafam karışacak diye korkuyorum  :o

private_korsan

Alıntı yapılan: Maxim - 04 Nisan 2012, 09:10:29
birde SPI ve I2C ile çalışan hazır entegreler olması lazım bu iş için

fakat başka çözümler üretilebilir
butonlar için hemen aklıma gelen ADC girişi mesela?
her buton önüne gerilim bölücü direnç koy
hepsini tek bir girişten adc ye gir

işte, 1-1.2 volt arası voltaj gelirse 1. buton
1.3 ile 1.5 arası gelirse 2. butondur gibi ..

bu şekilde değil 5, 15 tane buton için bile tek pin kullanabilirsin

ledler için hımmm
5 tane ledi 3 tane pin ile çalıştırabiliriz (çok düşünmedim)
ledlerin artı ve eksilerine göre portlara bağlar ve bazılarınada seri diyot koyarsak olur bu iş diye düşünüyorum


edit:
3 pin ile 6 tane led oluyor

(Resim gizlendi görmek için tıklayın.)
herzaman hiç çekinmeden kullandığım bir yöntemdir.hatta bir projede 32 buton bağlamıştım.ref. geriliminiz ne kadar kararlı olursa o kadar sağlıklı çalışır

Mucit23

İşlemcinin Pininin Z konumunda yani Yüksek empedansmı oluyordu tam bilmiyorum bu komumda olması nasıl sağlanıyor.

ipek

Bunu bende merak etmişimdir trinary midir nedir MC145026 var araba kumandalarında

ucu boşta bıraır isen başka pull yap başka low yap başka ?????

Mucit23

Pin çıkış olsa ya 0 olur yada 1. Ama Sanırım Giriş olsa Z konumunda oluyor.