İçindekiler:

Uber I2C LCD Kontrol Modülü: 6 Adım
Uber I2C LCD Kontrol Modülü: 6 Adım

Video: Uber I2C LCD Kontrol Modülü: 6 Adım

Video: Uber I2C LCD Kontrol Modülü: 6 Adım
Video: LCD Ekran ve I2C Modülü Kullanımı #19 2024, Temmuz
Anonim
Uber I2C LCD Kontrol Modülü
Uber I2C LCD Kontrol Modülü
Uber I2C LCD Kontrol Modülü
Uber I2C LCD Kontrol Modülü
Uber I2C LCD Kontrol Modülü
Uber I2C LCD Kontrol Modülü

ö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ış

Devreye Genel Bakış
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

PCB Üretimi
PCB Üretimi
PCB Üretimi
PCB Üretimi
PCB Üretimi
PCB Üretimi
PCB Üretimi
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ış

Yazılıma Genel Bakış
Yazılıma Genel Bakış
Yazılıma Genel Bakış
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ın Test Edilmesi
Tasarımın Test Edilmesi
Tasarımın Test Edilmesi
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: