250 farklı buton dan bilgi toplama

Başlatan nioo, 03 Mayıs 2016, 02:18:14

nioo

Merhaba,
Pic giriş portunu çogaltmak için arka arkaya 74165 den eklemenin bir sınırı varmı
250 adet buton bilgisini pic ile işlemek için sizce en güvenli yol nedir ?


ete

Sınır yok desemde yanlış olur var desemde yanlış olur. Buna cevap verebilmek için kullandığın işlemciye bakmak lazım.
Bir 74165 pic den 3 pin kullanır. bir port ile 2 farklı hat üzerinden 2 adet 165 sürebilirsin demektir bu. 165 yerine 4067 kullanırsan 4 data bacağı ve 1 enable bacağı ve sonradan ekleyeceğin her 4067 için fazladan 1 bacak olmak üzere bir port dan 5 addet 4067 sürebilirsin demektir. Bu 5 x 16=80 tane giriş kontrolü demektir.
Bu şekilde 3 port kullanarak 240 adet girişi kontrol edebilirsin.
Sınır kullanılan pin sayısı ile alakalı gördüğün gibi. Onu bile aşmanın yolları var. aslında. 1 adet 74HC595 ile 2 adet 4067 sürebilirsin. 1 tane 74HC595 ile enable bacaklarını kontrol ederek bir portdan toplam 8 adet 4067 sürebilirsin. Böylece 3 port dan 24 4067 ve sonuçta 24x16=384 buton kontrol edebilirsin. Tabiiki sayı arttıkça kontrol süreside biraz artacaktır ama yinede hızlı olacağını düşünüyorum.
Ama buton sayısı arttıkça bazı olumsuzluklarda artabilir. Çevresel etkiler parazitler sistemin çalışmasını etkileyebilir epeyce koruma tedbiri almak gerekir.

Ete

İlyas KAYA

#2
Merhaba.

O kadar arka arkaya eklenebilir de o kadar iç içe bir sistemin içinden yazılımda nasıl başa çıkarsınız inanın kestirmek çok güç.
Mesafe nedir , butonlar aynı bölgedemi bilmiyorum.

Ama ben olsam;

-Butonları 4 gruba ayırır, ortak GND bağlar, ADC pinlerini "pull up" yapar, ADC ile 4 pinden low'a ne kadar düştüklerini okurdum.

Yazılımda önemli olan unsur ise 2 buton arasındaki aralık. Diyelim 1 numaralı buton'a bastınız ve adc den 10 değeri okudunuz.
2 numaralı butona bastınız 20 değeri okudunuz.

Öyle ise;
5-15 arası 1nci buton
15-25 arası 2nci buton
..
diye gider.

Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

dnaci

100 pinli PIC24FJ256GB110 Mikrodenetleyicisinden 3 adet kullanarak yapılabilir. Hemde çok daha az malzeme ile küçük bir devre tasarlanmış olur

nioo

Burada devrede asıl yer kaplayacak olan buton bağlantılarının yapılacagı klemens gurupları.
Mantık tam olarak buton gibi bas çek degil devreye giren ve halen çekili olan kuru role kontaklarını yakalamak
Devre 1 adet lcd ekran olabilir sırasıyla 1 durumunda olan kontaklar bu lcd de yazabilir.
Yada internet destegi olan bir pic ile direk ip üzerinden takip edilebilir.

Sizce bunun için en uygun yöndem ve devre elemenları ne olmalı

İlyas KAYA

250 ayrı kontrol demek 250 BIT data demek. Aynı anda birden fazla kontrol olacak ise aklıma gelen ucuz bir yöntem var.
Bulabilirseniz 2 tane PS2 klavye alın. Butonları söküp kartını kullanın. zaten küçük bir kartı var.
Butonların altına bakarak nasıl bağlandıklarını bulabilir ve ona göre kontakları bağlayabilir  yahut direk buton hatlarına roleleri bağlayabilirsiniz. Role çekince klavyedeki o tuşa basmış olur ve PS2 den bu datayı okursunuz.

Olmadı matrix tarama yöntemi kullanacaksınız.
Biraz daha yavaş tepki verecektir ama istediğinizi elde edebilirsiniz.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

onurinci

ben denemedim ama zamanında araştırmıştım,
RS485 Transceiver ler Daisy Chain mantığı ile 255 bağımsız çalışma sergileyebiliyorlamış iki tel üzerinden,yalnızca slave modunda,bu durumda altın soru iki kişi aynı anda butona bastı gibi olacaktır...

nioo

Ete hocam,
İşlemci 16f877 kullansak " bir port dan 5 addet 4067 sürebilirsin " demiştiniz.
Örnek çizim vermeniz mümkünmü

onurinci


onurinci


ete

#10
1 porttan 5 değil 4 4067 sürülür yanlış hesap yapmışım. Zira ilk 4 bit ile hepsinin ABCD adres bacakları birleştirilerek sürülür. Kalan 4 bit ile hepsinin enable bacaklarını sürersin.
Sonra 1 nolu 4067 nin enable bacağını aktif edip (diğerleri pasif kalır) 0-15 arasında döngü kurup ABCD bacaklarına adres olarak sıra ile verip çıkış bacağına bakarsın. Kontak yada buton uçları high da bekler ve çıkışın low olduğu anda adres ne ise o buton yada kontak basılı demek olur.
Birinci bittikten sonra ikinciyi aktive edersin aynı işlemi ona ve sırası ile diğerlerine uygularsın
Şemaya gerek yok sanırım. Entegrelerin çıkışlarıda birleştirilir ve bir başka pine giriş olarak verilir. Böylece 4 x 16=64  butonu kolaylıkla kontrol edebilirsin.
Ete

nioo

Ete hocama ve diger arkadaşlara teşekkür ederim. Birşeyler yapıp burada yayınlamaya çalışacagım.

Powered by EzPortal