İçindekiler:
- Adım 1: Devreye Genel Bakış
- Adım 2: PCB Üretimi
- 3. Adım: Yazılıma Genel Bakış
- Adım 4: Tasarımın Test Edilmesi
- Adım 5: Sonuç
- Adım 6: Kullanılan Referanslar
Video: Uber I2C LCD Kontrol Modülü: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
önsöz
Bu Eğitilebilirlik, bir HD44780 LCD tabanlı denetleyici modülünün nasıl oluşturulacağını ayrıntılarıyla anlatır (yukarıdaki resim 1). Modül, kullanıcının LCD'nin tüm yönlerini I2C üzerinden programlı olarak kontrol etmesine olanak tanır; LCD ve ekran, kontrast ve arka ışık yoğunluğu. Arduino Uno R3 prototipi için kullanılmış olsa da, I2C'yi destekleyen herhangi bir mikrodenetleyici ile eşit derecede iyi çalışacaktır.
Tanıtım
Yukarıda bahsedildiği gibi, bu makale bir I2C LCD Kontrol Modülünün oluşturulmasını belgelemektedir, öncelikle pratik bir çalışma PCB'si oluşturmanın ne kadar süreceğini belirlemek için bir tasarım çalışması olarak düşünülmüştür.
Tasarım, standart genel denetleyici modülünün yerini alır (yukarıdaki resim 3) ve daha önce ürettiğim Instructables ve kitaplıklardan yararlanır.
İlk konsept prototipinden (yukarıdaki resim 2) tamamlanmış, tamamen test edilmiş PCB'ye (yukarıdaki resim 1) kadar toplam 5.5 gün sürdü.
Hangi parçalara ihtiyacım var? Aşağıda ekli malzeme listesine bakın
Hangi yazılıma ihtiyacım var?
- Arduino IDE 1.6.9,
- PCB'yi değiştirmek istiyorsanız Kicad v4.0.7. Aksi takdirde, sadece 'LCD_Controller.zip' dosyasını JLCPCB'ye gönderin.
Hangi araçlara ihtiyacım var?
- Mikroskop en az x3 (SMT lehimleme için),
- SMD havya (sıvı akı kalemi ve özlü lehim ile),
- Güçlü cımbız (SMT lehimleme için),
- İnce pense (sivri uçlu ve sivri uçlu),
- Sesli süreklilik kontrolüne sahip DMM.
Hangi becerilere ihtiyacım var?
- Çok sabır,
- Çok fazla el becerisi ve mükemmel el/göz koordinasyonu,
- Mükemmel lehimleme becerileri.
İşlenmiş konular
- Tanıtım
- Devreye Genel Bakış
- PCB Üretimi
- Yazılıma Genel Bakış
- Tasarımın Test Edilmesi
- Çözüm
- Kullanılan Referanslar
Adım 1: Devreye Genel Bakış
Yukarıdaki resim 1'de tüm elektroniklerin tam devre şeması ve aşağıdaki PDF ile birlikte verilmiştir.
Devre, aşağıdaki geliştirmelerle standart PCF8574A I2C LCD Kontrol Modülü'nün tam olarak yerini alacak şekilde tasarlanmıştır;
- I2C kullanıcı tarafından seçilebilir 3v3 veya 5v uyumluluğu,
- Dijital kontrast kontrolü veya konvansiyonel pot ayarı,
- Pürüzsüz solma elde etmek için Quartic hareket hızı fonksiyonu kontrolü ile değişken arka ışık yoğunluğu seçimi.
LCD Ekran Kontrolü
Bu, I2C'den paralel dönüştürme için bir PCF8574A (IC2) kullanan standart I2C LCD Denetleyici Modülünün bir kopyasıdır.
Bunun için varsayılan I2C adresi 0x3F'dir.
3v3 veya 5v I2C uyumluluğu
3v3 işlemi için Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 ve C2'ye uyun.
5v işlemi gerekiyorsa, 3v3 bileşenlerini takmayın, bunları 0 Ohm dirençleri ROpt 3 ve 4 ile değiştirin.
Dijital kontrast
Dijital kontrast kontrolü, dijital potansiyometre U2 MCP4561-103E/MS ve C4, R5 kullanılarak elde edilir.
Geleneksel bir mekanik potansiyometre gerekliyse, U2, C4 ve R5 yerine PCB, RV1 10K'ya takılabilir. Uyumlu potansiyometre için BoM'ye bakın.
J6 köprüsünü köprüleyerek I2C adresi 0x2E olur. Normal çalışma için bunun köprülendiği varsayılmıştır.
Değişken arka ışık yoğunluğu seçimi
Değişken arka ışık yoğunluğu, U1 pin 6 ve ATTiny85 aracılığıyla LCD LED arka ışığının PWM modülasyonu ile kontrol edilir. Standart I2C LCD Kontrol Modülü R1, T1 R7 ve T2 ile tam uyumluluğu korumak için + ve besleme rayını modüle etmek için kullanılır.
Bunun için varsayılan I2C adresi 0x08'dir. Bu, U1'i programlamadan önce derleme zamanında kullanıcı tarafından seçilebilir.
Adım 2: PCB Üretimi
Daha önce belirtildiği gibi, bu Eğitilebilirlik, öncelikle bir tasarımın (pratik bir amacı olan) tamamlanmasının ne kadar süreceğini belirlemeyi amaçlayan bir alıştırmaydı.
Bu örnekte ilk konsepti Cumartesi öğleden sonra düşündüm ve prototipi Cumartesi akşamı yukarıdaki resim 1'e kadar tamamlamıştım. Belirtildiği gibi benim fikrim, I2C üzerinden LCD'nin tam programlı kontrolünü sunan, aynı ayak izine sahip kendi I2C LCD kontrol modülü varyantımı yaratmaktı.
Şematik diyagram ve PCB düzeni Kicad v4.0.7 resim 2 ve 3 ile geliştirildi. Bu, Pazar öğleden sonra tamamlandı ve parçalar Farnell'den sipariş edildi ve PCB, Pazar akşamına kadar JLCPCB'ye yüklendi.
Bileşenler Çarşamba günü Farnell'den geldi, ardından Perşembe günü JLCPCB'den PCB'ler geldi (işleri hızlandırmak için DHL teslimat hizmetini kullandım) resimler 4, 5, 6 ve 7.
Perşembe akşamı iki pano (3v3 ve 5v varyantları) oluşturulmuş ve 4'e 20 LCD ekranda başarıyla test edilmiştir. Resimler 8, 9 ve 10.
İlk konseptten tamamlanmaya kadar inanılmaz bir 5.5 gün.
JLCPCB'nin ne kadar hızlı sipariş alıp, çift taraflı PTH PCB üretip İngiltere'ye gönderebildiği beni hayrete düşürüyor. Üretim için 2 gün ve teslimat için 2 gün kabarma. Bu, İngiltere merkezli PCB üreticilerinden daha hızlı ve fiyatın çok altında.
3. Adım: Yazılıma Genel Bakış
I2C LCD denetleyici modülünü kontrol etmek için gerekli olan yazılımın üç ana bileşeni vardır;
1. LiquidCrystal_I2C_PCF8574 Arduino Kütüphanesi
Burada mevcut
LCD ekranı kontrol etmek için Arduino taslağınızda kullanılacak.
Not: Bu, Genel I2C LCD Modül Denetleyicisi ile eşit derecede iyi çalışır. Sadece diğer kütüphanelere göre işlevsellik verir.
2. MCP4561_DIGI_POT Arduino Kütüphanesi
LCD kontrastını programlı olarak kontrol etmek için çiziminizde kullanılacak
Burada mevcut
3. PWM ve Quartic yumuşatma işlevini kullanarak LCD arka ışık seviyelerinin programlı kontrolü, yumuşak bir solma elde etmek için
Daha önce de belirtildiği gibi, kart, ekran arka ışığının kademeli olarak azalmasını kontrol etmek için kullanılan tek bir ATTiny85 içerir.
Bu yazılımın ayrıntıları daha önceki bir Eğitilebilir 'ATTiny85 ile Pürüzsüz PWM LED Solması' bölümünde verilmiştir.
Bu durumda, nihai PCB boyutlarını genel bir LCD kontrol modülü ile aynı tutmak için ATTiny85'in SOIC çeşidi seçilmiştir. Resim 1 ve 2, ATTiny85 SOIC'nin prototip kurulumunda nasıl programlandığını ve test edildiğini gösterir.
ATTiny85'e programlanan kod, burada mevcut olan 'Tiny85_I2C_Slave_PWM_2.ino' idi.
Kendi ATTiny85 programlayıcınızı nasıl oluşturacağınızla ilgili ayrıntılar için bu Eğitilebilir 'ATTiny85, ATTiny84 ve ATMega328P'yi Programlama: ISP Olarak Arduino'ya bakın.
Adım 4: Tasarımın Test Edilmesi
Tasarımı test etmek için, kullanıcının herhangi bir LCD'ye özel parametreyi doğrudan bir seri terminal bağlantısı üzerinden ayarlamasına izin veren 'LCDControllerTest.ino' adlı bir çizim oluşturdum.
Çizim, GitHub deposu I2C-LCD-Controller-Module'de bulunabilir.
Yukarıdaki Resim 1, 4'e 20 LCD'ye takılan 5v I2C uyumlu kart presini ve resim 2, test kodunu ilk kez çalıştırırken varsayılan ekranı göstermektedir.
Arka ışık ve kontrast için aşağıdaki varsayılan değerleri kullanır;
- #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((işaretsiz uzun) (10))
- #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))
Bunların, yedekte yattığım 4'e 20 LCD ekranla iyi çalıştığını gördüm.
Adım 5: Sonuç
Elektronik/yazılım endüstrisine uzun bir süre önce ilk başladığımda, bir hata yapmış olmanız durumunda son devre üzerinde çok fazla mühendislikle prototipleme için tel sarma veya veroboard konstrüksiyonunun kullanımına büyük önem verildi., bir tahta yeniden döndürmenin maliyeti ve süresi göz önüne alındığında.
Bir hata genellikle programda birkaç haftaya mal olur ve kar marjını (ve muhtemelen işinizi) mahveder.
PCB'lere 'sanat eseri' adı verildi, çünkü onlar gerçekten sanat eseriydi. Bir 'izleyici' veya teknik ressam tarafından yapışkan siyah krep bant kullanılarak iki kez tam boy oluşturuldu ve fotoğrafın şablonlara dayanıklı olması için fab house tarafından fotoğrafik olarak küçültüldü.
Devre şemaları da izleyiciler tarafından oluşturuldu ve tasarım notlarınızdan elle çizildi. Kopyalar fotostatik olarak yapıldı ve 'mavi baskı' olarak adlandırıldı. Çünkü renkleri her zaman maviydi.
Mikro denetleyiciler henüz emekleme aşamasındaydı ve şirketiniz beraberindeki karmaşık ve pahalı geliştirme ortamını karşılayabiliyorsa, tipik olarak devre öykünüyordu.
O zamanlar bir üretici olarak, yazılım geliştirme araç zincirinin yalnızca maliyeti yasaklayıcıydı, kaçınılmaz olarak onaltılık değerleri doğrudan EPROM'a (çok şanslıysanız RAM/Flash) sokmak zorunda kaldınız ve ardından ortaya çıkan davranışı yorumlamak için saatler harcadınız. kodunuz beklendiği gibi çalışmıyorsa çalışıyordu (bit 'kıpırdama' veya seri printf en popüler hata ayıklama teknikleridir. Bazı şeyler asla değişmez). Hiçbiri mevcut olmadığı için genellikle tüm kendi kitaplıklarınızı yazmanız gerekiyordu (internet gibi zengin bir kaynak kesinlikle yoktu).
Bu, bir şeyin nasıl çalıştığını anlamaya çalışmak için çok zaman harcadığınız ve yaratıcı bir şekilde yapmak için daha az zaman harcadığınız anlamına geliyordu.
Tüm diyagramlarınız, tipik olarak A4 veya A3'te elle çizilmişti ve onlara soldan sağa mantıklı bir sinyal yolu akışı vererek baştan sona düşünülmesi gerekiyordu. Düzeltmeler genellikle yeni bir sayfayla başlamanız gerektiği anlamına geliyordu.
Çoğunlukla son devreniz kalıcılık için veroboard kullanılarak geliştirildi ve ona 'profesyonel dokunuş' vermek için basit bir ABS muhafazasına monte edildi.
Tam tersine, tüm bu projeyi, profesyonel bir standart PCB ile sonuçlanan yüksek kaliteli ücretsiz yazılım kullanarak 5.5 gün içinde geliştirdim. Arzu beni alsaydı, onu kendi yaptığım 3D baskılı bir kutuya monte edebilirdim.
Sadece on yıldan daha kısa bir süre önce hayal edebileceğiniz bir şey.
İşler nasıl daha iyiye doğru değişti.
Adım 6: Kullanılan Referanslar
KiCAD Şematik yakalama ve PCB tasarımı
KiCAD EDA
Arduino ORG Yazılım Geliştirme Aracı
Arduino
LiquidCrystal_I2C_PCF8574 Arduino Kitaplığı
Buraya
MCP4561_DIGI_POT Arduino Kütüphanesi
Buraya
ATTiny85 ile Pürüzsüz PWM LED Solması
Buraya
ATTiny85, ATTiny84 ve ATMega328P'nin Programlanması: ISP Olarak Arduino
Ö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
1602 I2C Sırt Çantası ile LCD Tuş Takımı Shield Modülü: 6 Adım
1602 LCD Keypad Shield Modül I2C Sırt Çantası ile: 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 biraz donanım satın aldım,
I2C Modülü ile LCD Sürüş: 8 Adım
I2C Modülü ile LCD Sürüş: Bu eğitimde bir LCD ekranın nasıl çalıştığını ve I2C modülü ile nasıl daha kolay kullanılacağını göreceğiz
I2C / IIC LCD Ekran - Bir SPI LCD'yi I2C LCD Ekrana Dönüştürün: 5 Adım
I2C / IIC LCD Ekran | Bir SPI LCD'yi I2C LCD Ekranına Dönüştürün: spi lcd ekran kullanmak için çok fazla bağlantı gerekiyor, bu gerçekten zor, bu yüzden i2c lcd'yi spi lcd'ye dönüştürebilen bir modül buldum, hadi başlayalım
E32-433T LoRa Modülü Eğitimi - E32 Modülü için DIY Breakout Board: 6 Adım
E32-433T LoRa Modülü Eğitimi | E32 Modülü için DIY Breakout Board: Hey, naber beyler! Akarsh burada CETech'ten. Bu projem, yüksek güçlü 1 watt'lık bir alıcı-verici modülü olan eByte'den E32 LoRa modülünün çalışmasını anlamak için daha çok bir öğrenme eğrisi. Çalışmayı anladıktan sonra, tasarımım var