Obsah:

Modul řadiče LCD Uber I2C: 6 kroků
Modul řadiče LCD Uber I2C: 6 kroků

Video: Modul řadiče LCD Uber I2C: 6 kroků

Video: Modul řadiče LCD Uber I2C: 6 kroků
Video: LDmicro 20: I2C Liquid Crystal Display Resolved(Microcontroller PLC Ladder Programming with LDmicro) 2024, Červenec
Anonim
Řídicí modul LCD Uber I2C
Řídicí modul LCD Uber I2C
Řídicí modul LCD Uber I2C
Řídicí modul LCD Uber I2C
Řídicí modul LCD Uber I2C
Řídicí modul LCD Uber I2C

Preambule

Tento instruktáž podrobně popisuje, jak vytvořit řídicí modul na bázi HD44780 LCD (obrázek 1 výše). Modul umožňuje uživateli programově ovládat všechny aspekty LCD přes I2C, zahrnující; LCD a displej, kontrast a intenzita podsvícení. Přestože byl Arduino Uno R3 použit k prototypu, bude fungovat stejně dobře s jakýmkoli mikrokontrolérem, který podporuje I2C.

Úvod

Jak již bylo uvedeno výše, tento článek dokumentuje vytvoření modulu I2C LCD Controller Module, který byl primárně určen jako návrhové cvičení k určení, jak dlouho bude trvat vytvoření praktické pracovní desky plošných spojů.

Design nahrazuje standardní generický modul řadiče (obr. 3 výše) a vychází z instruktáží a knihoven, které jsem vytvořil dříve.

Od počátečního konceptu prototypu (obrázek 2 výše) po dokončený, plně testovaný PCB (obrázek 1 výše) trvalo celkem 5,5 dne.

Jaké díly potřebuji? Podívejte se na níže přiložený kusovník

Jaký software potřebuji?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7, pokud chcete upravit desku plošných spojů. V opačném případě stačí odeslat 'LCD_Controller.zip' na JLCPCB.

Jaké nástroje potřebuji?

  • Mikroskop alespoň x3 (pro pájení SMT),
  • SMD páječka (s tekutým tavným perem a tavnou pájkou),
  • Silná pinzeta (pro pájení SMT),
  • Jemné kleště (špičaté a nosní),
  • DMM se zvukovou kontrolou kontinuity.

Jaké dovednosti potřebuji?

  • Hodně trpělivosti,
  • Velká manuální zručnost a vynikající koordinace ruka/oko,
  • Vynikající pájecí schopnosti.

Pokrytá témata

  • Úvod
  • Přehled obvodu
  • Výroba DPS
  • Přehled softwaru
  • Testování designu
  • Závěr
  • Použité reference

Krok 1: Přehled obvodu

Přehled obvodu
Přehled obvodu

Úplné schéma zapojení celé elektroniky je uvedeno na obrázku 1 výše spolu s níže uvedeným PDF.

Obvod byl navržen tak, aby byl přesnou náhradou za standardní modul řadiče LCD PCF8574A I2C s následujícími vylepšeními;

  • I2C uživatelem volitelná kompatibilita 3v3 nebo 5v,
  • Digitální ovládání kontrastu nebo konvenční nastavení hrnce,
  • Variabilní výběr intenzity podsvícení s funkcí Quartic usnadňující ovládání pro dosažení plynulého blednutí.

Ovládání LCD displeje

Toto je faksimile standardního modulu I2C LCD Controller využívajícího PCF8574A (IC2) pro převod I2C na paralelní.

Výchozí adresa I2C je 0x3F.

Kompatibilita 3v3 nebo 5v I2C

Pro provoz 3v3 se hodí Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 a C2.

Pokud je vyžadován provoz 5 V, pak nemontujte žádné komponenty 3v3, nahraďte je rezistory ROpt 3 a 4 s odporem 0 Ohm.

Digitální kontrast

Digitálního ovládání kontrastu je dosaženo použitím digitálního potenciometru U2 MCP4561-103E/MS a C4, R5.

Pokud je vyžadován konvenční mechanický potenciometr, lze jej místo U2, C4 a R5 namontovat na desku plošných spojů RV1 10K. Kompatibilní potenciometr viz BoM.

Přemostěním propojky J6 je adresa I2C 0x2E. Předpokládalo se, že je to pro normální provoz překlenuto.

Variabilní výběr intenzity podsvícení

Proměnlivá intenzita podsvícení je řízena PWM modulací podsvícení LCD LED přes U1 pin 6 a ATTiny85. Aby byla zachována úplná kompatibilita se standardním modulem I2C LCD Controller, R1, T1 R7 a T2 se používají k modulaci kladné napájecí lišty.

Výchozí adresa I2C je 0x08. Toto je uživatelem volitelné v době kompilace před programováním U1.

Krok 2: Výroba DPS

Výroba DPS
Výroba DPS
Výroba DPS
Výroba DPS
Výroba DPS
Výroba DPS
Výroba DPS
Výroba DPS

Jak již bylo zmíněno dříve, tento Instructable byl cvičením, primárně určeným k určení, jak dlouho bude trvat dokončení návrhu (který měl praktický účel).

V tomto případě jsem přemýšlel o počátečním konceptu v sobotu odpoledne a prototyp jsem dokončil do sobotního večera, obrázek 1 výše. Moje myšlenka, jak bylo uvedeno, bylo vytvořit vlastní variantu modulu I2C LCD řadiče s identickým půdorysem, nabízející plné programové ovládání LCD přes I2C.

Schematický diagram a rozvržení desky plošných spojů byly vyvinuty pomocí aplikace Kicad v4.0.7, obrázky 2 a 3. Toto bylo dokončeno v neděli odpoledne a díly byly objednány od společnosti Farnell a deska PCB byla nahrána do JLCPCB v neděli večer.

Komponenty dorazily ve středu od společnosti Farnell, ve čtvrtek následovaly desky plošných spojů od společnosti JLCPCB (k urychlení jsem použil službu DHL) obrázky 4, 5, 6 a 7.

Ve čtvrtek večer byly zkonstruovány a úspěšně testovány dvě desky (varianty 3v3 a 5v) na LCD displeji 4 x 20. Obrázky 8, 9 a 10.

Úžasných 5,5 dne od počátečního konceptu až po dokončení.

Udivuje mě, jak rychle jsou JLCPCB schopni přijmout objednávku, vyrobit oboustranný PTH PCB a odeslat jej do Velké Británie. Blistr 2 dny na výrobu a 2 dny na dodání. To je rychlejší než u výrobců PCB se sídlem ve Velké Británii a za zlomek ceny.

Krok 3: Přehled softwaru

Přehled softwaru
Přehled softwaru
Přehled softwaru
Přehled softwaru

Software pro řízení modulu I2C LCD obsahuje tři hlavní součásti;

1. LiquidCrystal_I2C_PCF8574 Arduino Library

K dispozici zde

Používá se v náčrtu Arduino k ovládání LCD displeje.

Poznámka: Funguje to stejně dobře s Obecným ovladačem modulu I2C LCD. Pouze poskytuje funkčnost než jiné knihovny.

2. Knihovna Arduino MCP4561_DIGI_POT

Používá se ve vaší skice k programovému ovládání kontrastu LCD

K dispozici zde

3. Programové ovládání úrovní podsvícení LCD pomocí PWM a funkce Quartic easing pro dosažení plynulého blednutí

Jak již bylo zmíněno dříve, deska obsahuje jeden ATTiny85 sloužící k ovládání postupného slábnutí podsvícení displeje.

Podrobnosti o tomto softwaru jsou uvedeny v dřívějším instruktážním „Smooth PWM LED Fading With the ATTiny85“

V tomto případě, aby byly konečné rozměry desky plošných spojů stejné jako generický modul řadiče LCD, byla zvolena varianta SOIC ATTiny85. Obrázky 1 a 2 ukazují, jak byl ATTiny85 SOIC naprogramován a testován v prototypu.

Kód naprogramovaný do ATTiny85 byl k dispozici zde 'Tiny85_I2C_Slave_PWM_2.ino'

Podrobnosti o tom, jak vytvořit vlastní programátor ATTiny85, najdete v tomto návodu „Programování ATTiny85, ATTiny84 a ATMega328P: Arduino jako ISP“

Krok 4: Testování návrhu

Testování designu
Testování designu
Testování designu
Testování designu

Abych otestoval design, vytvořil jsem skicu s názvem 'LCDControllerTest.ino', která uživateli umožňuje nastavit jakýkoli konkrétní parametr LCD přímo přes připojení sériového terminálu.

Skicu najdete v mém úložišti GitHub I2C-LCD-Controller-Module

Obrázek 1 výše ukazuje deskový lis kompatibilní s 5v I2C připojený k LCD 4 na 20 a obrázek 2 výchozí zobrazení při prvním spuštění testovacího kódu.

Pro podsvícení a kontrast používá následující výchozí hodnoty;

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((unsigned long) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Zjistil jsem, že to fungovalo dobře s LCD displejem 4 x 20, který jsem měl kolem sebe.

Krok 5: Závěr

Když jsem před nějakým časem poprvé začínal v elektronickém/softwarovém průmyslu, byl kladen velký důraz na použití konstrukce Wire-wrap nebo Veroboard pro prototypování se spoustou přepracování na konečném obvodu pro případ, že byste udělali chybu, vzhledem k ceně a délce opětovného roztočení desky.

Chyba vás obvykle stála několik týdnů podle plánu a snížila ziskovou marži (a možná i vaši práci).

PCB se nazývaly „umělecká díla“, protože to byla skutečně umělecká díla. Vytvořeno dvakrát v plné velikosti pomocí lepivé černé krepové pásky pomocí „stopovače“nebo kreslíře a fotograficky zmenšeno ve fabrice, aby fotografie odolávala šablonám.

Schémata zapojení byla také vytvořena trasovacími zařízeními a nakreslena ručně z vašich návrhových poznámek. Kopie byly provedeny foto staticky a nazývaly se „modré výtisky“. Protože měli vždy modrou barvu.

Mikroprocesory byly teprve v plenkách a obvykle byly v emulaci obvodu, pokud si vaše společnost mohla dovolit jeden s doprovodným komplexním a nákladným vývojovým prostředím.

Jako tehdejší výrobce byly pouhé náklady na řetězec nástrojů pro vývoj softwaru neúnosné, byli jste nevyhnutelně nuceni strčit hexadecimální hodnoty přímo do EPROM (RAM/Flash, pokud jste měli velké štěstí) a poté trávit hodiny interpretací výsledného chování, abyste zjistili, co váš kód dělal, pokud nefungoval podle očekávání (bit 'vrtění' nebo sériový printf jsou nejoblíbenější techniky ladění. Některé věci se nikdy nezmění). Obvykle jste museli psát všechny své vlastní knihovny, protože žádná nebyla k dispozici (rozhodně neexistoval bohatý zdroj, jako je internet).

To znamenalo, že jste strávili spoustu času snahou porozumět tomu, jak něco funguje, a méně času jste tvořivě tvořili.

Všechny vaše diagramy byly ručně kresleny, obvykle na A4 nebo A3 a musely být důkladně promyšleny, což jim dávalo logický tok signální cesty zleva doprava. Opravy obvykle znamenaly, že potřebujete začít s novým listem.

Z velké části byl váš konečný obvod vyvinut pomocí veroboardu pro trvalost a namontován v jednoduchém pouzdře ABS, aby mu poskytl 'profesionální dotek'.

Naopak, celý tento projekt jsem vyvinul za 5,5 dne pomocí vysoce kvalitního freewaru, což vedlo k profesionálnímu standardnímu PCB. Pokud by mě touha vzala, mohl jsem ji namontovat do 3D tištěné krabice vlastní výroby.

Něco, o čem jste mohli snít jen před méně než deseti lety.

Jak se věci změnily k lepšímu.

Krok 6: Použité reference

Schématické snímání KiCAD a návrh DPS

KiCAD EDA

Nástroj pro vývoj softwaru Arduino ORG

Arduino

LiquidCrystal_I2C_PCF8574 Arduino Library

Tady

MCP4561_DIGI_POT Knihovna Arduino

Tady

Hladké PWM LED blednutí s ATTiny85

Tady

Programování ATTiny85, ATTiny84 a ATMega328P: Arduino jako ISP

Doporučuje: