Obsah:
- Krok 1: Přehled obvodu
- Krok 2: Výroba DPS
- Krok 3: Přehled softwaru
- Krok 4: Testování návrhu
- Krok 5: Závěr
- Krok 6: Použité reference
Video: Modul řadiče LCD Uber I2C: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
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
Ú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
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
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
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:
Adaptér Breakout řadiče PS2 pro propojení Arduino: 10 kroků
Adaptér Breakout řadiče PS2 pro propojení Arduino: Ovladač PlayStation 2 je opravdu užitečný gamepad pro robotické projekty. Je levný, hojně dostupný (z druhé ruky), obsahuje spoustu tlačítek a je kompatibilní s Arduino! Abyste jej mohli používat, potřebujete speciální konektor, který jej zapojí do
LCD displej I2C / IIC - Použijte SPI LCD na I2C LCD displej pomocí modulu SPI až IIC s Arduino: 5 kroků
LCD displej I2C / IIC | Použijte SPI LCD na I2C LCD displej pomocí modulu SPI až IIC s Arduino: Ahoj lidi, protože normální SPI LCD 1602 má příliš mnoho vodičů na připojení, takže je velmi obtížné propojit jej s arduino, ale na trhu je k dispozici jeden modul, který může převést SPI displej na IIC displej, takže pak potřebujete připojit pouze 4 vodiče
Design jednoduchého VGA řadiče ve VHDL a Verilog: 5 kroků
Návrh jednoduchého VGA řadiče ve VHDL a Verilogu: V tomto návodu navrhneme jednoduchý VGA řadič v RTL. VGA Controller je digitální obvod navržený pro řízení VGA displejů. Čte z vyrovnávací paměti snímků (paměť VGA), která představuje snímek, který má být zobrazen, a generuje potřebný
LCD displej I2C / IIC - Převeďte SPI LCD na I2C LCD displej: 5 kroků
LCD displej I2C / IIC | Převeďte SPI LCD na I2C LCD displej: použití spi lcd displeje vyžaduje příliš mnoho připojení, což je opravdu těžké, takže jsem našel modul, který dokáže převést i2c lcd na spi lcd, takže můžeme začít
Obvod řadiče těžkých basů: 8 kroků
Obvod řadiče těžkých basů: Hii příteli, v hudebním systému chceme vysoký basový zvuk. Pokud jsou basy ve vašem hudebním systému velmi nízké, bude pro vás tento blog velmi užitečný. Dnes vytvořím obvod pro těžké basy. snadno tento obvod. Tento obvod