İçindekiler:
- Adım 1: Parça Açıklaması - LCD Tuş Takımı Kalkan Modülü
- Adım 2: Parça Açıklaması - I2C Seri Modülü
- 3. Adım: Bağlantılar
- Adım 4: Diğer 5 Anahtara Benzer RST Anahtarını Kullanılabilir Hale Getirme
- Adım 5: Yazılım
- Adım 6: Gözden Geçirme ve Tartışma
Video: 1602 I2C Sırt Çantası ile LCD Tuş Takımı Shield Modülü: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Daha büyük bir projenin parçası olarak, bazı basit menülerde gezinmek için bir LCD ekrana ve bir tuş takımına sahip olmak istedim. Diğer işler için Arduino'daki birçok I/O portunu kullanacağım, bu yüzden LCD için bir I2C arayüzü istedim. Bu yüzden, DFRobot'tan bir 1602 LCD Tuş Takımı kalkan modülü ve LCD'ler için anonim bir I2C seri modülünden oluşan bazı donanımlar satın aldım. Bunları bir Arduino Nano ile kullanmak istiyorum. Sonra bu bileşenlerin birlikte çalışmasını sağlamak için bazı zorluklar olduğunu buldum - ama bu mümkün. Bu yüzden deneyimlerimi paylaşmak ve belki başkalarına yardım etmek istiyorum.
Bu fotoğraf, LCD'de mesajları görüntüleyebilen ve tuş basımlarını tanımlayabilen çalışan devre tahtasına aittir. LCD, LCD arka ışığı da dahil olmak üzere I2C arayüzü aracılığıyla kontrol edilir. Tuş basışları Arduino tarafından A0 pininde alınır (I2C arayüzü için bağlanan A4 ve A5 hariç analog pinlerden herhangi biri olabilir).
Adım 1: Parça Açıklaması - LCD Tuş Takımı Kalkan Modülü
LCD Tuş Takımı kalkan modülü, anahtarları tutan ve LCD bağlantılarının bir alt kümesini alan ve bunları devre kartının alt tarafındaki başlık pinlerine sunan bir devre kartının üstüne monte edilmiş, yaygın olarak kullanılan bir 1602 LCD'den oluşur. Bu kartın bir Arduino Uno veya benzerinin üzerine monte edilmek üzere tasarlandığını ve bu ortamda çalışması için doğru pin düzenini sağladığını anlıyorum. Bu modülü Ebay'den Çin'deki bir satıcıdan satın aldım. Kartın alt (tuş takımı) tarafındaki başlık pinleri çoğunlukla etiketlidir ancak LCD arayüzü olan üst taraftaki pinler etiketlenmez. Ancak LCD'nin üzerindeki pinler etiketlenmiştir.
Adım 2: Parça Açıklaması - I2C Seri Modülü
Seri modül, I2C için normal 4 pimli başlığa sahiptir ve anladığım kadarıyla, doğrudan LCD modülünün alt tarafına takılması amaçlanan bir dizi etiketlenmemiş başlık pimi vardır. LCD üzerindeki etiketleri inceleyerek seri modül üzerindeki pinlerin fonksiyonlarını tanımlayabildim.
Bu modül, I2C protokolünü sonlandıran IC PCF8574T'ye dayanmaktadır, adres kontrolü için 3 pin (20 ila 27) ve P0 ila P7 8 dijital giriş/çıkış pinine sahiptir. PCF8574T'nin veri sayfasına göre, her I/O pininin DÜŞÜK durum için onu toprağa çekmek için bir FET'i vardır ve en az 20ma batabilir. Yüksek durumda, geçici bir aktif yukarı çekme ve ardından yaklaşık 0.1 mA'lık bir sürekli yukarı çekme akımına sahiptir.
Bu modülde, P3 hariç tüm dijital I/O pinleri basitçe başlık pinlerine getirilir (fotoğrafta sağda). P3 durumunda, bir transistörün tabanına bağlanır (fotoğrafta sağ üstteki alanda "LED" etiketinin hemen altında görülebilir). Bu transistörün emitörü Vss'ye (toprak) bağlıdır ve toplayıcı, LCD arka ışığını kontrol etmek için kullanılabileceği 16 nolu başlık pimine bağlanmıştır. Transistör nedeniyle, mantık durumu, yazılım kitaplığında varsayılana göre tersine çevrilir. Yani, LCD arka ışığı P3 pimi Düşük olduğunda AÇIK ve P3 pimi Yüksek olduğunda KAPALI olur.
Transistörün üzerindeki etikette L6 yazıyor ve araştırmama göre muhtemelen onu minimum akım kazancı 200 olan bir MMBC1623L6 yapıyor. 0.1 mA temel akımla, kollektöründe DÜŞÜK bir koşul sağlayabilmelidir (modül Pin 16) en az 20mA kollektör akımı ile.
Ayrıca bu modül, +5 ile Toprak arasına bağlı, değişken ucu pim 3'e (fotoğrafta alttan üçüncü) getirilen 10K'lık bir potansiyometreye sahiptir. Doğrudan LCD'ye bağlandığında, bu pot LCD'nin kontrastını kontrol edecektir. Ancak bu fonksiyon LCD ekran üzerinde ayrı bir benzer pot ile sağlanır, dolayısıyla seri modül üzerindeki bu potun bir fonksiyonu yoktur.
PCF8574T'nin INT pinine herhangi bir bağlantı bulamadım.
GÜNCELLEME 22 Ağustos 2019
Yukarıda bahsedildiği gibi, PCF8574'ün 3 adres kontrol pini vardır. Bunlar, A0, A1 ve A2 olarak etiketlendikleri sırt çantası tahtasındaki pedlere çıkarılmış gibi görünüyor. Fotoğrafta görülebilirler. Bunu test etmedim, ancak bu pinlerden bir veya daha fazlasını bitişik pedlere köprüleyerek, I2C adresinin 20 ila 27 aralığında kontrol edilebileceği neredeyse kesin görünüyor. Ayrıca, hemen hemen aynı olan ikinci bir cihaz var, PCF8574 ile aynı işlevselliğe sahip olan ancak 0x38 ile 0x3F arasındaki adres aralığını kapsayan PCF8574A.
Cihazınızın gerçekte kullandığı adres bir I2CScanner ile kontrol edilebilir. Çeşitli kaynaklardan temin edilebilen birkaç basit I2C tarayıcı vardır. https://github.com/farmerkeith/I2CScanner adresindeki bu, bulunan bazı cihazları da tanımlar.
3. Adım: Bağlantılar
Aşağıda açıklanan bağlantıları gösteren Fritzing şemasını sağlayan ChaitanyaM17'ye teşekkürler.
Güç:
LCD modülünün alt tarafında "5.0V" etiketli bir pim bulunur. Sağda, buna bitişik, her ikisi de topraklanmış iki etiketsiz pim vardır.
I2C arayüzü ile seri modülü sol uçta tutarken, alt kenarda 16 pin vardır. Bunlardan birincisi toprak, ikincisi ise +5v'dir. Diğer bir seçenek ise güç için I2C arayüzünde alttaki iki pini kullanmak ama ben yukarıda anlatıldığı gibi pinleri kullanmayı daha uygun buldum.
I2C arayüzü. Seri modülde üst pin SCL (saat) olup Arduino A5'e gider. İkinci pin aşağı SDA'dır (veri) ve Arduino A4'e gider.
LCD baskı arayüzü. Seri modül ile LCD Tuş Takımı kalkanı arasında hepsi etiketsiz pinler arasında olmak üzere 6 bağlantı vardır. İlk pin 1 olacak şekilde Sağdan Sola sayarak LCD modülünde tanımlayacağım. 8'lik 2 blok var yani 1'den 16'ya gidiyorlar. Doğru, bunlardan da 16 tane var. Ek olarak, seri modül olmadan doğrudan bağlantı durumunda, her kabloya normalde bu işlevle ilişkilendirilen Arduino üzerindeki eşdeğer pin olan bir etiket veriyorum.
Yani 6 veri bağlantısı:
Arduino eşdeğeri // Seri modül pini // LCD Keypad modül pini
D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10
LCD arka ışık kontrolü: Bu, bir bağlantı daha kullanır:
Arduino eşdeğeri // Seri modül pini // LCD Keypad modül pini
D10 //16 // 11
Tuş takımı arayüzü: Bu, Arduino'daki A0 pinine "A0" etiketli alt taraftaki LCD modül pininden tek bir kablo kullanır. En azından bu oldukça kolaydı!
Adım 4: Diğer 5 Anahtara Benzer RST Anahtarını Kullanılabilir Hale Getirme
RST, Arduino Nano'nun RESTART girişine doğrudan bağlanabilir.
Ancak RST tuşunun yazılımda başka şeyler için kullanılabilir olmasını istiyorsanız, bu, LCD keypad shield'in alt tarafındaki RST pini ile A0 pini arasına 15K'lık bir direnç bağlanarak yapılabilir.
Bu şu şekilde çalışır: +5V ile Sağ tuş arasında 2K direnç vardır. Ardından diğer tuşların her biri için giderek daha büyük bir direnç zinciri (330R YUKARI tuşuna, 620R AŞAĞI tuşu, 1K SOL tuşu ve 3K3 SELECT tuşu. Tüm tuşlar (RST tuşu dahil) 10 bitlik bir A/D dönüştürücüye bağlandığında (Arduino Nano A0'da olduğu gibi) yaklaşık olarak aşağıdaki değerleri sağlarlar:
Sağ = 0; Yukarı = 100; Aşağı = 260; Sol = 410; = 640'ı seçin.
RST'ye 15 k direnç ile yaklaşık 850 sunar.
Yazılım, hangi tuşa basıldığına karar vermek için bu değerler arasındaki orta noktalar etrafındaki değerleri kullanacaktır.
Adım 5: Yazılım
Faydalı yazılım elbette okuyucu için bir alıştırmadır. Ancak başlamak için test yazılımıma bir göz atabilirsiniz. I2C arabirimi için destek içeren NewLiquidCrystal kitaplığını kullandım. Kütüphaneleri doğru bir şekilde kurduktan sonra hepsi işe yaradı.
Ana nokta, Arka Işık KAPALI ve AÇIK komutlarının polaritesini tersine çevirmekti (Parça Açıklaması bölümünde açıklandığı gibi I2C modülündeki transistör nedeniyle).
GÜNCELLEME 22 Ağustos 2019
LCD ekranın çalışmamasıyla ilgili sorunlarınız varsa, lütfen bir I2C tarayıcı kullanarak seri sırt çantanızın I2C adresini kontrol edin. Uygun bir tarayıcı takılıdır. Ardından gerekirse ifadedeki ilk parametreyi ayarlayın
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);
Adım 6: Gözden Geçirme ve Tartışma
Gördüğünüz gibi ana fonksiyonları çalıştırdım.
Bundan sonraki niyetim bunu başka bir projenin parçası olarak bir proje kutusuna koymak. Ancak bu yola çıktıktan sonra hiç beklemediğim bir zorluğun daha olduğunu öğrendim.
Zorluk, bu LCD Tuş Takımı modülünün bir kutuya kurulacak şekilde ayarlanmamış olmasıdır. Her türlü kutu. 6 tuşun düğmeleri, LCD ekran seviyesinin oldukça altındadır, bu nedenle modül, LCD devre kartının üst kısmı kapağın alt tarafı ile aynı hizada olacak şekilde bir kutuya (örn. tuşların sayısı kapağın üst kısmının yaklaşık 7 mm altındadır.
Olası çözümler şunlardır:
a) Buna katlanmak. Kapakta erişim delikleri açın ve düğmelere basmak için bir alet (örn. uygun çapta kesilmiş bir örgü iğnesi) kullanın.
b) LCD'yi modül devre kartından çıkarın ve iki bileşenin proje kutusunun kapağına bağımsız olarak sabitlenebilmesi için tuş takımında ameliyat yapın (butonların çok kısa olmasıyla ilgili bir sorun olabileceğini düşünüyorum)
c) Mevcut düğmeleri çıkarın ve daha uzun düğmelerle değiştirin. Yeni düğmelerin, proje kutusunun kapağından çalıştırılabilmesi için yaklaşık 13 mm yüksekliğinde olması gerekir). Yedek düğme anahtarları, 13 mm dahil olmak üzere çeşitli yüksekliklerde kolayca temin edilebilir.
d) LCD tuş takımı kalkan modülünü atın ve ayrı LCD ve tuş takımı birimleri kullanın (yani baştan başlayın). Çok çeşitli tuş takımı birimleri mevcuttur, ancak bu modüldekiyle aynı 6 tuş düzenine sahip bir tane görmedim (yani Seç, Sol, Yukarı, Aşağı, Sağ, Yeniden Başlat). Bu büyük bir sorun olmayabilir, ancak bu modülle başlamamın nedenlerinden biri, bu anahtar düzeninin istediğim şey olduğunu düşünmemdi.
Yukarıdaki c) çözümüyle gitmeyi planlıyorum ve nasıl gittiğime bakın.
İlginizi çekebilecek başka bir bilgi parçası:
Arka ışık AÇIK durumdayken, bu projenin mevcut tüketimi: Arduino Nano 21.5 ma; Seri modül 3.6 ma; LCD modülü 27,5 mA; Toplam 52 mA.
Arka ışık KAPALI iken, bu projenin mevcut tüketimi: Arduino Nano 21.5 ma; Seri modül 4.6 ma; LCD modülü 9.8 mA; Toplam 36 mA.
Önerilen:
I2C / IIC LCD Ekran - Arduino ile SPI - IIC Modülü Kullanarak I2C LCD Ekranına SPI LCD Kullanın: 5 Adım
I2C / IIC LCD Ekran | I2C LCD Ekranına SPI LCD'yi Arduino ile IIC Modülüne Kullanma: Merhaba arkadaşlar, normal bir SPI LCD 1602'nin bağlanması için çok fazla kablo olduğundan, arduino ile arayüz oluşturmak çok zor ama piyasada mevcut olan bir modül var. SPI ekranını IIC ekranına dönüştürün, böylece sadece 4 kablo bağlamanız gerekir
Arduino Hesap Makinesi Yapmak İçin Arduino İle Tuş Takımı ve LCD Nasıl Kullanılır: 5 Adım
Arduino ile Tuş Takımı & LCD Kullanımı Arduino Hesap Makinesi Yapmak İçin: Bu derste Arduino ile 4x4 matrix tuş takımı ve 16x2 LCD'yi nasıl kullanabileceğinizi ve basit bir Arduino Hesap Makinesi yapmak için nasıl kullanabileceğinizi paylaşacağım. Öyleyse başlayalım
Arayüz 16x2 Alfanümerik LCD And4x4 Matris Tuş Takımı Raspberry Pi3 ile: 5 Adım (Resimli)
Raspberry Pi3 ile 16x2 Alfanümerik LCD ve 4x4 Matris Tuş Takımı Arayüz: Bu talimatta, 16x2 LED ve 4x4 matris tuş takımının Raspberry Pi3 ile nasıl arayüzleneceğini açıklıyoruz. Yazılımı geliştirmek için Python 3.4 kullanıyoruz. Küçük değişikliklerle Python 2.7'yi de seçebilirsiniz
Arduino Uno için DIY LCD Tuş Takımı Shield: 6 Adım (Resimlerle)
Arduino Uno için DIY LCD Tuş Takımı Kalkanı: Bir DIY LCD Tuş Takımı kalkanı yapmak için çok aradım ve hiçbirini bulamadım, bu yüzden bir tane yaptım ve sizinle paylaşmak istiyorum
LCD Smartie ile Ağ Bağlantılı LCD Sırt Çantası: 6 Adım
LCD Smartie ile Ağa Bağlı LCD Sırt Çantası: Bilgileri kaydıran karakter LCD ekranları popüler bir kasa modudur. Genellikle bir paralel bağlantı noktası, seri bağlantı noktası sırt çantası veya USB sırt çantası (daha fazlası) aracılığıyla kontrol edilirler. Bu Eğitilebilir Tablo, açık kaynaklı ethernet ağ LCD sırt çantamızı gösterir. LC