Mündəricat:

Uber I2C LCD Nəzarətçi Modulu: 6 addım
Uber I2C LCD Nəzarətçi Modulu: 6 addım

Video: Uber I2C LCD Nəzarətçi Modulu: 6 addım

Video: Uber I2C LCD Nəzarətçi Modulu: 6 addım
Video: #5 Аналоговый ввод FLProg на ЖК-дисплее I2C | ESP32 NodeMCU |Визуальное программирование для Arduino 2024, Iyul
Anonim
Uber I2C LCD İdarəetmə Modulu
Uber I2C LCD İdarəetmə Modulu
Uber I2C LCD İdarəetmə Modulu
Uber I2C LCD İdarəetmə Modulu
Uber I2C LCD İdarəetmə Modulu
Uber I2C LCD İdarəetmə Modulu

Giriş

Bu HD44780 LCD əsaslı nəzarətçi modulunun necə yaradılacağını izah edir (yuxarıdakı şəkil 1). Modul istifadəçiyə LCD -nin bütün aspektlərini I2C üzərindən proqramlı olaraq idarə etməyə imkan verir; LCD və ekran, kontrast və arxa işıq intensivliyi. Arduino Uno R3 prototip etmək üçün istifadə edilsə də, I2C dəstəkləyən hər hansı bir mikro nəzarətçi ilə eyni dərəcədə yaxşı işləyəcək.

Giriş

Yuxarıda qeyd edildiyi kimi, bu məqalə I2C LCD Nəzarət Modulunun yaradılmasını sənədləşdirir, bu, ilk növbədə praktiki işləyən bir PCB yaratmaq üçün nə qədər vaxt lazım olacağını təyin etmək üçün dizayn məşqi olaraq hazırlanmışdır.

Dizayn, standart ümumi nəzarətçi modulunu (yuxarıdakı şəkil 3) əvəz edir və əvvəllər hazırladığım Təlimatlara və kitabxanalara əsaslanır.

İlkin konsept prototipindən (yuxarıdakı şəkil 2) tamamlanmış, tam sınaqdan keçirilmiş PCB -yə (yuxarıdakı şəkil 1) qədər cəmi 5.5 gün çəkdi.

Hansı hissələrə ehtiyacım var? Aşağıda əlavə edilmiş materiallara baxın

Hansı proqrama ehtiyacım var?

  • Arduino IDE 1.6.9,
  • PCB -ni dəyişdirmək istəyirsinizsə Kicad v4.0.7. Əks halda JLCPCB -ə 'LCD_Controller.zip' göndərin.

Hansı vasitələrə ehtiyacım var?

  • Mikroskop ən azı x3 (SMT lehimləmə üçün),
  • SMD lehimləmə dəmiri (maye axını qələmi və özlü lehimlə),
  • Güclü cımbızlar (SMT lehimləmə üçün),
  • İncə kəlbətinlər (burunlu və burunlu),
  • Səsli davamlılıq yoxlamalı DMM.

Hansı bacarıqlara ehtiyacım var?

  • Çox səbr,
  • Çox əl bacarıqları və əla əl/göz koordinasiyası,
  • Əla lehimləmə bacarıqları.

Mövzular əhatə olunur

  • Giriş
  • Dövrə Baxış
  • PCB istehsalı
  • Proqrama Baxış
  • Dizaynın sınanması
  • Nəticə
  • İstifadə olunan istinadlar

Addım 1: Dövrə Baxış

Dövrə Baxış
Dövrə Baxış

Bütün elektronikanın tam bir dövrə diaqramı yuxarıdakı şəkil 1 -də, eyni PDF ilə birlikdə verilmişdir.

Dövrə, aşağıdakı təkmilləşdirmələri olan standart PCF8574A I2C LCD Nəzarətçi Modulunun tam əvəz edilməsi üçün hazırlanmışdır;

  • I2C istifadəçi tərəfindən seçilə bilən 3v3 və ya 5v uyğunluğu,
  • Rəqəmsal kontrast nəzarəti və ya şərti qazan ayarı,
  • Rəngsiz solmaya nail olmaq üçün Quartic yumşaltma funksiyası ilə dəyişkən arxa işıq intensivliyi seçimi.

LCD displeyə nəzarət

Bu, I2C -ni paralel çevirmək üçün PCF8574A (IC2) istifadə edən standart I2C LCD Nəzarət Modulunun faksimileidir.

Bunun üçün standart I2C ünvanı 0x3F -dir.

3v3 və ya 5v I2C uyğunluğu

3v3 əməliyyat üçün Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 və C2 uyğun gəlir.

5v əməliyyat tələb olunarsa, heç bir 3v3 komponentinə uyğun gəlmir, onları 0 Ohm rezistorlar ROpt 3 və 4 ilə əvəz edin.

Rəqəmsal kontrast

Rəqəmsal kontrasta nəzarət U2 MCP4561-103E/MS və C4, R5 rəqəmsal potansiometrinin istifadəsi ilə əldə edilir.

Adi bir mexaniki potansiyometr tələb olunarsa, U2, C4 və R5 əvəzinə PCB, RV1 10K quraşdırıla bilər. Uyğun potansiyometr üçün BoM -a baxın.

J6 tullanan körpü ilə I2C ünvanı 0x2E -dir. Normal iş üçün bu körpüdür.

Dəyişən arxa işıq intensivliyi seçimi

Dəyişən arxa işıq intensivliyi UD pin 6 və ATTiny85 vasitəsilə LCD LED arxa işığın PWM modulyasiyası ilə idarə olunur. Standart I2C LCD Nəzarətçi Modulu ilə tam uyğunluğu qorumaq üçün R1, T1 R7 və T2 +təchizat rayını modulyasiya etmək üçün istifadə olunur.

Bunun üçün standart I2C ünvanı 0x08 -dir. Bu, U1 proqramlaşdırılmasından əvvəl tərtib zamanı istifadəçi tərəfindən seçilə bilər.

Addım 2: PCB istehsalı

PCB istehsalı
PCB istehsalı
PCB istehsalı
PCB istehsalı
PCB istehsalı
PCB istehsalı
PCB istehsalı
PCB istehsalı

Daha əvvəl qeyd edildiyi kimi, bu Təlimat, ilk növbədə bir dizaynı (praktiki məqsədi olan) başa çatdırmağın nə qədər vaxt aparacağını təyin etmək üçün hazırlanmış bir məşq idi.

Bu vəziyyətdə, ilk konsepsiyanı şənbə günü günortadan sonra düşündüm və prototipi Şənbə axşamı şəkil 1 -də tamamladım. Dediyim kimi, I2C üzərində LCD -nin tam proqramlı idarəetməsini təklif edən, eyni ayaq izi olan I2C LCD nəzarətçi modulunun öz variantını yaratmaq idi.

Şematik diaqram və PCB düzeni Kicad v4.0.7 pics 2 və 3 ilə hazırlanmışdır. Bu, bazar günü günortadan sonra tamamlandı və hissələr Farnell -dən sifariş edildi və PCB, Bazar axşamına qədər JLCPCB -yə yükləndi.

Komponentlər Çərşənbə günü Farneldən gəldi, sonra Cümə axşamı günü JLCPCB -dən PCB -lər gəldi (işləri sürətləndirmək üçün DHL çatdırılma xidmətindən istifadə etdim) şəkillər 4, 5, 6 və 7.

Cümə axşamı axşamına qədər iki lövhə (3v3 və 5v variantları) 4 -dən 20 -dək LCD ekranda quruldu və uğurla sınaqdan keçirildi. Şəkillər 8, 9 və 10.

İlk konsepsiyadan tamamlanana qədər inanılmaz 5.5 gün.

JLCPCB -nin bir sifariş ala bilməsi, iki tərəfli PTH PCB istehsal etməsi və İngiltərəyə göndərə bilməsi məni təəccübləndirir. İstehsal üçün 2 gün, çatdırılmaq üçün 2 gün. Bu, İngiltərədəki PCB istehsalçılarından daha sürətli və qiymətinin bir hissəsidir.

Addım 3: Proqram təminatına ümumi baxış

Proqrama Baxış
Proqrama Baxış
Proqrama Baxış
Proqrama Baxış

I2C LCD nəzarətçi modulunu idarə etmək üçün lazım olan proqramın üç əsas komponenti var;

1. LiquidCrystal_I2C_PCF8574 Arduino Kitabxanası

Burada mövcuddur

LCD ekranı idarə etmək üçün Arduino eskizinizdə istifadə ediləcək.

Qeyd: Bu, Ümumi I2C LCD Modul Denetleyicisi ilə eyni dərəcədə yaxşı işləyir. Yalnız digər kitabxanalara nisbətən funksionallıq verir.

2. MCP4561_DIGI_POT Arduino Kitabxanası

Eskizinizdə LCD kontrastını proqramlı şəkildə idarə etmək üçün istifadə ediləcək

Burada mövcuddur

3. Hamar solmaya nail olmaq üçün PWM və Quartic yumşaltma funksiyasından istifadə edərək LCD arxa işıq səviyyələrinin proqramlı nəzarəti

Daha əvvəl qeyd edildiyi kimi, lövhədə ekranın arxa işığının tədricən sönməsini idarə etmək üçün istifadə olunan tək bir ATTiny85 var.

Bu proqramın təfərrüatları daha əvvəl göstərişli 'ATTiny85 ilə Hamar PWM LED Solması' verilmişdir.

Bu halda son PCB ölçülərini ümumi bir LCD nəzarət modulu ilə eyni saxlamaq üçün ATICT58 -in SOIC variantı seçildi. Şəkillər 1 və 2 ATTiny85 SOIC -in prototipdə necə proqramlaşdırıldığını və sınaqdan keçirildiyini göstərir.

ATTiny85 -də proqramlaşdırılmış kod 'Tiny85_I2C_Slave_PWM_2.ino' idi

Öz ATTiny85 proqramçınızı necə yaratmağınızla bağlı ətraflı məlumat üçün bu ATTiny85, ATTiny84 və ATMega328P proqramlaşdırılması: Arduino ISP olaraq baxın

Addım 4: Dizaynı sınayın

Dizaynın sınanması
Dizaynın sınanması
Dizaynın sınanması
Dizaynın sınanması

Dizaynı sınamaq üçün istifadəçiyə hər hansı bir LCD xüsusi parametrini birbaşa seriyalı terminal bağlantısı üzərindən təyin etməyə imkan verən 'LCDControllerTest.ino' adlı eskiz yaratdım.

Eskizi GitHub depom I2C-LCD-Controller-Modulumda tapa bilərsiniz

Yuxarıdakı Şəkil 1, test ölçüsünü ilk dəfə işləyərkən 4x20 LCD və şəkil 2 ilə təchiz edilmiş 5v I2C uyğun lövhə presini göstərir.

Arxa işıq və kontrast üçün aşağıdakı standart dəyərləri istifadə edir;

  • #DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((imzasız uzun) (10))
  • #DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Ehtiyatda yatdığım 4 -dən 20 -ə qədər LCD displey ilə bunların yaxşı işlədiyini gördüm.

Addım 5: Nəticə

Bir müddət əvvəl elektronika/proqram sənayesinə ilk dəfə başladığımda, səhv etmisinizsə, son dövrədə çoxlu mühəndislik ilə prototip yaratmaq üçün tel sarma və ya veroboard quruluşunun istifadəsinə böyük diqqət yetirilirdi., lövhənin yenidən fırlanmasının dəyəri və müddəti nəzərə alınmaqla.

Bir səhv ümumiyyətlə cədvəl üzrə bir neçə həftəyə başa gəlir və mənfəət marjını (və bəlkə də işinizi) uçurdu.

PCB -lər "sənət əsərləri" adlanırdı, çünki onlar həqiqətən sənət əsərləri idi. Bir "izləyici" və ya draughtsperson tərəfindən yapışqan qara krep lentdən istifadə edərək iki dəfə tam ölçüdə yaradıldı və fotoşəkilin trafaretlərə müqavimət göstərməsi üçün fab evi tərəfindən fotoşəkildə kiçildildi.

Dövrə diaqramları da izləyicilər tərəfindən yaradılmış və dizayn qeydlərinizdən əllə çəkilmişdir. Nüsxələr foto-statik olaraq edildi və "mavi izlər" adlandı. Çünki onlar həmişə mavi rəngdə idi.

Mikro nəzarətçilər yalnız körpəlikdə idi və şirkətinizin müşayiət olunan kompleks və bahalı inkişaf mühitinə sahib ola biləcəyi təqdirdə, ümumiyyətlə dövrə bənzəyirdi.

O vaxt bir istehsalçı olaraq, proqram inkişaf etdirmə alətləri zəncirinin dəyəri çox böyük idi, istər -istəməz EPROM -a (çox şanslı olsanız RAM/Flash) altıbucaqlı dəyərlər atmağa məcbur oldunuz və sonra nəyi müəyyən etmək üçün nəticələnən davranışı şərh etmək üçün saatlar sərf etdiniz. kodunuz gözlənildiyi kimi işləməsəydi (bit "tərpənmək" və ya serial çapı ən populyar debug üsullarıdır. Bəzi şeylər heç vaxt dəyişmir). Ümumiyyətlə, öz kitabxanalarınızı heç biri olmadığından yazmalı idiniz (şübhəsiz ki, internet kimi zəngin bir mənbə yox idi).

Bu, bir şeyin necə işlədiyini başa düşmək üçün çox vaxt sərf etməyiniz və yaradıcılıq etmək üçün daha az vaxt sərf etməyiniz deməkdir.

Bütün diaqramlarınız adətən A4 və ya A3 -də əllə tərtib edilmişdi və hərtərəfli düşünülməli idi ki, bu da onlara soldan sağa bir siqnal yolunun məntiqi axını verirdi. Düzəlişlər ümumiyyətlə təzə bir vərəqlə başlamağınız lazım olduğunu bildirir.

Çox vaxt son dövrə davamlılıq üçün veroboarddan istifadə edilərək hazırlanmışdır və buna 'professional toxunma' vermək üçün sadə bir ABS korpusuna quraşdırılmışdır.

Tam əksinə olaraq, bütün standart layihəni peşəkar standart PCB ilə nəticələnən yüksək keyfiyyətli pulsuz proqramlardan istifadə edərək 5.5 gün ərzində hazırladım. Arzu məni alsaydı, özüm hazırladığım 3D çaplı bir qutuya yerləşdirə bilərdim.

Yalnız on ildən az bir müddət əvvəl xəyal edə biləcəyiniz bir şey.

İşlərin yaxşılığa doğru necə dəyişdiyi.

Addım 6: İstifadə olunan istinadlar

KiCAD Şematik çəkmə və PCB dizaynı

KiCAD EDA

Arduino ORG Proqram İnkişaf etdirmə Aləti

Arduino

LiquidCrystal_I2C_PCF8574 Arduino Kitabxanası

Burada

MCP4561_DIGI_POT Arduino Kitabxanası

Burada

ATTiny85 ilə Hamar PWM LED Solması

Burada

ATTiny85, ATTiny84 və ATMega328P proqramlaşdırılması: ISP olaraq Arduino

Tövsiyə: