İçindekiler:
- 1. Adım: Temel Bilgiler (Gerçekten Değil)
- Adım 2: Gerilim Bölücü
- Adım 3: Gerilim Bölücü Merdiveni
- 4. Adım: Özet
Video: Bir MCU Pimi ile Birçok Anahtar Nasıl Okunur: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:22
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ü
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
Ş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:
Arduino İle Elektrik Sayacı Nasıl Okunur: 3 Adım
Arduino Üzerinden Bir Elektrik Sayacı Nasıl Okunur: Elektrik maliyetlerinizi sınırlamak ve çevreyi korumak için genellikle evinizin mevcut güç tüketimini veya toplam güç tüketimini bilmek ilginç olurdu. Bu gerçekten sorun değil, çünkü çoğunlukla akıllı bir dijital el
Bir Analog Pin Kullanılarak Çoklu Analog Değerler Nasıl Okunur: 6 Adım (Resimlerle)
Bir Analog Pin Kullanarak Çoklu Analog Değerler Nasıl Okunur: Bu derste, size sadece bir analog giriş pini kullanarak çoklu analog değerleri nasıl okuyacağınızı göstereceğim
Arduino ile MPX5010 Fark Basınç Sensörü Nasıl Okunur: 5 Adım
Arduino ile MPX5010 Fark Basınç Sensörü Nasıl Okunur: Kodu yazma şeklim, farklı bir basınç sensörüne uyacak şekilde kolayca değiştirilebilir. Herhangi bir basınç sensörü için veri sayfasındaki değerlere dayalı olarak koddaki aşağıdaki const değişkenlerini değiştirmeniz yeterlidir: "sensorOffset"
Arduino ile SD Kart Modülü: Veri Nasıl Okunur/Yazılır: 14 Adım
Arduino ile SD Kart Modülü: Veri Nasıl Okunur/Yazılır: Genel Bakış Verilerin saklanması, her projenin en önemli bölümlerinden biridir. Veri türüne ve boyutuna göre verileri saklamanın birkaç yolu vardır. Depolama aygıtları arasında en pratik olanlardan biri de SD ve micro SD kartlar
DOKUNMATİK ANAHTAR - Transistör ve Breadboard Kullanarak Dokunmatik Anahtar Nasıl Yapılır: 4 Adım
DOKUNMATİK ANAHTAR | Transistör ve Breadboard Kullanarak Dokunmatik Anahtar Nasıl Yapılır.: Dokunmatik anahtar, transistör uygulamasına dayanan çok basit bir projedir. Bu projede dokunmatik anahtar görevi gören BC547 transistör kullanılmaktadır. PROJE HAKKINDA TAM AYRINTILI VİDEOYU İZLEDİĞİNİZDEN EMİN OLUNUZ