İçindekiler:

Bir MCU Pimi ile Birçok Anahtar Nasıl Okunur: 4 Adım
Bir MCU Pimi ile Birçok Anahtar Nasıl Okunur: 4 Adım

Video: Bir MCU Pimi ile Birçok Anahtar Nasıl Okunur: 4 Adım

Video: Bir MCU Pimi ile Birçok Anahtar Nasıl Okunur: 4 Adım
Video: Multimetre Nasıl Kullanılır? Avometre Nasıl Kullanılır (direnç, akım, voltaj ölçümü detaylı anlatım) 2024, Haziran
Anonim
Bir MCU Pimi ile Birçok Anahtar Nasıl Okunur
Bir MCU Pimi ile Birçok Anahtar Nasıl Okunur

Hiç bir projeye/projelere dalıp gittiniz mi ve siz ona daha fazla şey eklerken proje büyümeye ve büyümeye devam ediyor mu (biz buna Feaping Creaturism diyoruz)? Yakın tarihli bir projede, bir frekans ölçer inşa ediyordum ve beş işlevli bir sinyal üreteci/frekans sentezleyici ekledim. Kısa süre sonra elimde kalan pinlerden daha fazla şalter buldum, o halde bir adam ne yapmalı?

Bununla birlikte, kısa süre sonra Funbox'ımda yedi anahtar daha vardı (evet, fonksiyon üretecimi buna çağırdım…Biliyorum, yaratıcılığım yok) ve işte size aynı şeyi nasıl yapabileceğinizi gösteren kısa bir talimat. Herhangi bir kaydırma kaydı veya belirli IC'ler gerektirmez. Aslında, nasıl yuvarladığınız ayrık yarı iletkenlerse, bir mikro denetleyici gerektirmez. İşte AVR'nizde (veya başka bir mikrodenetleyicide) tek bir pin kullanarak birden fazla anahtarı okumanın/yönetmenin bir yolu: AVR'ler dışında başka mikrodenetleyiciler olduğunu duydum, ama hayal edemiyorum….:)

1. Adım: Temel Bilgiler (Gerçekten Değil)

Bunu başarmak için birkaç bileşene ihtiyacınız olacak. Yönetmeniz gereken çok sayıda anahtara sahip olmanıza yardımcı olur. Ayrıca bazı dirençlere ve ADC'ye (Analogdan Dijitale Dönüştürme) sahip bir mikro denetleyiciye veya bir anahtarın etkin olduğunu ve hangi anahtarın olduğunu belirtmek istediğiniz başka bir yola ihtiyacınız olacak.

İsterseniz bunu belirtmek için voltaj kontrollü bir osilatör kullanabilirsiniz, belki yanıp sönen ışıklarla veya alternatif olarak sesle. Bu küçük resimde, bir AVR kullanıyormuşuz gibi yapacağım, ancak dünyanızda sizi mutlu eden her şeyi taklit edebilirsiniz. Bob Ross'u özlüyorum.

Adım 2: Gerilim Bölücü

Gerilim Bölücü
Gerilim Bölücü
Gerilim Bölücü
Gerilim Bölücü

Esasen, bunu yapmanın yolu, voltaj bölücü adı verilen bir teknik ve devre kullanmaktır. Gerilim bölücüler, tahmin edebileceğiniz gibi, V,, in,, gerilimini belirlediğiniz bir değere böler. Gerilimi kapasitörler ve indüktörler dahil olmak üzere çeşitli bileşenlerle bölebilirsiniz, ancak burada bunu iyi bir dirençle yapacağım. Fikir Yaptığımız şey, her biri ayrı ayrı bileşen boyunca voltaj düşüşüne neden olacak şekilde iki bileşeni seri hale getirmektir. Mantıklı gelmiyorsam ilk resme bakın. Raydan raya 9V potansiyel farkı vardır. 9V ile 0V arasında seri bağlı iki direnç vardır. Bunların her biri, muhtemelen V = IR'den hatırladığınız gibi, dirence bağlı olarak kendi içinde bir voltaj düşüşü yaşayacaktır. İki direnç arasında bir voltaj ölçümü yaparsanız, ilk direnç boyunca ne kadar voltaj düştüğüne ve 0V'dan önce 2. direnç üzerinde ne kadar düşmeye bırakılacağına bağlı olarak 9V ile 0V arasında bir değer elde edersiniz. Bu durumda bir direnç üzerindeki voltaj düşüşünü hesaplamak için basit bir formül vardır ve şöyle görünür. 1. direnç üzerindeki gerilim (R1) V1 ve 2. direnç üzerindeki gerilim (R2) V2 olsun. Artık biçimlendirmeyi kullanamadığım için, formül için aşağıdaki 2. resme bakın… Yani, dirençli bölücümüzde, Vout voltajı V2 formülümüzle belirlenebilir (çünkü GND'yi 0V'a referans alacağız). Bunun bir pimden bir grup anahtarın algılanmasıyla ne ilgisi var? Peki, sayfayı çevir ve sana göstereyim!

Adım 3: Gerilim Bölücü Merdiveni

Gerilim Bölücü Merdiven
Gerilim Bölücü Merdiven

Şimdi, tüm anahtarlarımızın, belki altı, sekiz veya on altı, hepsinin, her biri bir voltaj bölücü görevi gören dirençlerle bağlı olduğunu varsayalım, öyle ki, anahtar piminin durumu değiştiğinde, voltaj okunur ve voltaj seviyesine göre, biz hangi anahtarın az önce etkinleştirildiğini bilebilir. Aşağı bak. Aşağıdaki resimde iki blok anahtar bağladım. En üstteki blokta iki anahtar bulunur ve en alttaki blokta beş anahtar bulunur. Ayrı geçiş, anlık, dokunsal vb. anahtarlarınızı da aynı şekilde bağlayabilirsiniz. Dikkat edilmesi gereken önemli şey, anahtarınızın bağlı olduğu dirençtir. Örneğimde, bir sonraki direncin direncini, ölçülmesi kolay ve anahtardan önce veya sonra hata yapmayan bir voltaj boşluğu oluşturmak için neredeyse iki katına çıkardım. Daha önce fark etmediyseniz, tekrar bakın ve eski dostumuz dirençli voltaj bölücüye geri döndüğümüzü fark edin. İlk direnç, 10k ohm, 5V'a ve 2. direnç - V'yi belirleyecek dirençdışarı SWITCH_ADC pini için, her bir anahtara bağlıdır ve bu nedenle, her anahtar, SWITCH_ADC'ye bağlı ADC pininden okunabilen belirli bir Vout voltajı ile ilişkilidir. Ardından, her bir anahtardan beklenen Vout'u şu şekilde belirleyin

Vout = Vin * (R2 / (R1 + R2))

bir anahtar için:

Vout = 5V * (500 / (10000 + 500)) = 5*0.048 = 0.24V veya 240 mV

anahtar iki için:

Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V veya ~900mV

ve bunun gibi.. Elinizin altında yalnızca belirli dirençler varsa, R2 yerine kendi değerlerinizi kullanmaktan çekinmeyin… Buradaki en önemli şey, ADC'deki herhangi bir hata payının kaybolmaması için anahtarlar arasında yeterince geniş bir voltaj aralığı bırakmaktır. t Sizi komşu bir anahtardan beklenen gerilime sokar. Bölücü merdiveni inşa etmek ve ADC pimine bir multimetre/voltmetre koymak ve her pime basmak ve hangi değerleri elde ettiğinizi görmek için yapılacak en kolay şey buldum. Hesapladığınız şey üzerinde oldukça iyi olmalılar. Belirli bir direnç kullanarak her bir anahtardan beklenen tüm voltaj değerlerine sahip olduğunuzda, MCU'nuzun ADC pinini okumasını ve hangi anahtara basıldığını belirlemek için bunu bilinen değerlerinizle karşılaştırabilirsiniz. Örneğin, ADC pininde bir değişiklik tespit edildiğinde çağrılacak olan bir kesme servis rutini kaydettirdiğinizi varsayalım. Bu ISR'nin içinde ADC'yi okuyabilir ve bu değeri anahtar tablonuzla karşılaştırabilirsiniz. 8 bitlik bir ADC değeri kullanıyorsanız, voltajınız 0V ile 5V arasındaki bir voltaja karşılık gelen 0 ile 255 arasında bir sayıya dönüştürülecektir. Bu, ADC'nizi bu şekilde yapılandırdığınızı varsayar.

4. Adım: Özet

Şimdi, anahtarlar için GPIO pinlerini kullanırken nasıl tutumlu olunacağını bilmelisiniz. GPIO pinleriniz azaldığında veya başlamak için neredeyse hiç ihtiyacınız olmadığında veya bir dizi anahtar kullanacağınızı fark ettiğinizde, dirençli bölücü, GPIO pinlerinizi kurtarmanın bir yoludur. Anahtar erişimini algılamak için sağlam mekanizma.

Önerilen: