Sadržaj:

Uber I2C LCD upravljački modul: 6 koraka
Uber I2C LCD upravljački modul: 6 koraka

Video: Uber I2C LCD upravljački modul: 6 koraka

Video: Uber I2C LCD upravljački modul: 6 koraka
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, Srpanj
Anonim
Uber I2C LCD upravljački modul
Uber I2C LCD upravljački modul
Uber I2C LCD upravljački modul
Uber I2C LCD upravljački modul
Uber I2C LCD upravljački modul
Uber I2C LCD upravljački modul

Preambula

U ovom Uputu detaljno je opisano kako stvoriti upravljački modul temeljen na HD44780 LCD -u (slika 1 gore). Modul omogućuje korisniku programsku kontrolu nad svim aspektima LCD -a preko I2C, što obuhvaća; LCD i zaslon, kontrast i pozadinsko osvjetljenje. Iako je Arduino Uno R3 korišten za izradu prototipa, jednako će dobro funkcionirati sa bilo kojim mikrokontrolerom koji podržava I2C.

Uvod

Kao što je gore spomenuto, ovaj članak dokumentira stvaranje I2C LCD upravljačkog modula, prvenstveno je zamišljen kao vježba projektiranja kako bi se utvrdilo koliko će vremena trebati za stvaranje praktične radne ploče.

Dizajn zamjenjuje standardni generički upravljački modul (slika 3 gore) i oslanja se na instrukcije i knjižnice koje sam ranije proizveo.

Od početnog prototipa koncepta (slika 2 gore) do dovršenog, potpuno testiranog PCB -a (slika 1 gore) prošlo je ukupno 5,5 dana.

Koji dijelovi su mi potrebni? Pogledajte dolje priloženi materijal

Koji softver mi treba?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7 ako želite izmijeniti PCB. U suprotnom samo pošaljite 'LCD_Controller.zip' JLCPCB -u.

Koji su mi alati potrebni?

  • Mikroskop najmanje x3 (za SMT lemljenje),
  • SMD lemilica (s olovkom za tekući fluks i lemljenjem sa jezgrom od fluksa),
  • Jaka pinceta (za SMT lemljenje),
  • Kliješta za fino rezanje (šiljasti i kvrgavi nos),
  • DMM sa zvučnom provjerom kontinuiteta.

Koje vještine su mi potrebne?

  • Puno strpljenja,
  • Velika ručna spretnost i izvrsna koordinacija ruku i očiju,
  • Izvrsne vještine lemljenja.

Tema završena

  • Uvod
  • Pregled kruga
  • Proizvodnja PCB -a
  • Pregled softvera
  • Testiranje dizajna
  • Zaključak
  • Korištene reference

Korak 1: Pregled kruga

Pregled kruga
Pregled kruga

Potpuni dijagram sve elektronike dat je na slici 1 gore, zajedno s PDF -om iste ispod.

Krug je dizajniran da bude točna zamjena za standardni PCF8574A I2C LCD upravljački modul sa sljedećim poboljšanjima;

  • I2C kompatibilnost 3v3 ili 5v po izboru korisnika,
  • Digitalna kontrola kontrasta ili konvencionalna postavka lonca,
  • Promjenjivi intenzitet pozadinskog svjetla s kontrolom funkcije kvarcnog ublažavanja za postizanje glatkog blijeđenja.

Upravljanje LCD zaslonom

Ovo je faksimil standardnog I2C LCD upravljačkog modula koji koristi PCF8574A (IC2) za paralelnu konverziju I2C.

Zadana I2C adresa za ovo je 0x3F.

Kompatibilnost 3v3 ili 5v I2C

Za 3v3 rad odgovaraju Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 i C2.

Ako je potreban rad na 5v, nemojte uklapati nikakve komponente 3v3, zamijenivši ih otpornicima 0 Ohma ROpt 3 i 4.

Digitalni kontrast

Digitalna kontrola kontrasta postiže se upotrebom digitalnog potenciometra U2 MCP4561-103E/MS i C4, R5.

Ako je potreban konvencionalni mehanički potenciometar, može se postaviti na PCB, RV1 10K, umjesto U2, C4 i R5. Za kompatibilni potenciometar pogledajte BoM.

Premošćivanjem skakača J6 adresa I2C je 0x2E. Pretpostavljalo se da je za normalan rad to premošteno.

Promjenjivi intenzitet pozadinskog svjetla

Promjenjivi intenzitet pozadinskog svjetla kontrolira se PWM modulacijom LCD LED pozadinskog svjetla putem U1 pina 6 i ATTiny85. Kako bi se zadržala potpuna kompatibilnost sa standardnim I2C LCD upravljačkim modulom, moduli R1, T1 R7 i T2 koriste se za moduliranje +ve opskrbne šine.

Zadana I2C adresa za ovo je 0x08. Ovo može birati korisnik, u vrijeme kompajliranja prije programiranja U1.

Korak 2: Proizvodnja PCB -a

Proizvodnja PCB -a
Proizvodnja PCB -a
Proizvodnja PCB -a
Proizvodnja PCB -a
Proizvodnja PCB -a
Proizvodnja PCB -a
Proizvodnja PCB -a
Proizvodnja PCB -a

Kao što je ranije spomenuto, ovaj Instructable bio je vježba, prvenstveno namijenjena određivanju koliko će vremena trebati za dovršetak dizajna (koji je imao praktičnu svrhu).

U ovom slučaju razmišljao sam o početnom konceptu u subotu popodne i završio prototip do slike 1 u subotu navečer. Moja je ideja, kako je navedeno, bila stvoriti vlastitu varijantu I2C LCD upravljačkog modula, s identičnom površinom, koja nudi potpunu programsku kontrolu LCD -a nad I2C.

Shematski dijagram i izgled PCB -a razvijeni su s Kicad v4.0.7 slikama 2 i 3. Ovo je završeno u nedjelju popodne, a dijelovi su naručeni od Farnella, a PCB je postavljen na JLCPCB do nedjelje navečer.

Komponente su stigle iz Farnella u srijedu, a nakon njih PCB -ovi iz JLCPCB -a u četvrtak (koristio sam DHL dostavnu službu da ubrzam stvari) slike 4, 5, 6 i 7.

Do četvrtka navečer dvije su ploče (varijante 3v3 i 5v) konstruirane i uspješno testirane na LCD ekranu 4 x 20. Slike 8, 9 i 10.

Nevjerojatnih 5,5 dana od početnog koncepta do završetka.

Zapanjuje me koliko brzo JLCPCB može prihvatiti narudžbu, proizvesti dvostranu PTH PCB i poslati je u Veliku Britaniju. Mjehurići od 2 dana za proizvodnju i 2 dana za isporuku. Ovo je brže od proizvođača PCB -a u Velikoj Britaniji i uz mali dio cijene.

Korak 3: Pregled softvera

Pregled softvera
Pregled softvera
Pregled softvera
Pregled softvera

Postoje tri glavna sastavna dijela softvera potrebna za upravljanje modulom I2C LCD kontrolera;

1. LiquidCrystal_I2C_PCF8574 Arduino knjižnica

Dostupno ovdje

Koristit će se na Arduino skici za upravljanje LCD zaslonom.

Napomena: Ovo podjednako dobro funkcionira s općenitim kontrolerom I2C LCD modula. Samo što daje daje funkcionalnost od ostalih knjižnica.

2. MCP4561_DIGI_POT Arduino knjižnica

Koristit će se u skici za programsko upravljanje kontrastom LCD -a

Dostupno ovdje

3. Programska kontrola razine pozadinskog osvjetljenja LCD -a pomoću PWM -a i funkcije kvarcnog ublažavanja radi postizanja glatkog blijeđenja

Kao što je ranije spomenuto, ploča sadrži jedan ATTiny85 koji se koristi za kontrolu postupnog blijeđenja pozadinskog osvjetljenja zaslona.

Pojedinosti o ovom softveru date su u ranijim uputama "Glatko PWM LED blijeđenje s ATTiny85"

U ovom slučaju, kako bi konačne dimenzije PCB -a ostale iste kao generički LCD upravljački modul, odabrana je SOIC varijanta ATTiny85. Slike 1 i 2 pokazuju kako je ATTiny85 SOIC programiran i testiran u postavljenom prototipu.

Kod programiran u ATTiny85 bio je 'Tiny85_I2C_Slave_PWM_2.ino' dostupan ovdje

Za detalje o tome kako stvoriti vlastiti programer ATTiny85 pogledajte ovo uputstvo "Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP"

Korak 4: Testiranje dizajna

Testiranje dizajna
Testiranje dizajna
Testiranje dizajna
Testiranje dizajna

Za testiranje dizajna stvorio sam skicu pod nazivom 'LCDControllerTest.ino' koja omogućuje korisniku da postavi bilo koji LCD parametar izravno preko veze serijskog terminala.

Skica se može pronaći u mojem GitHub spremištu I2C-LCD-Controller-Module

Slika 1 gore prikazuje prešu za ploču kompatibilnu s 5v I2C, montiranu na LCD 4 x 20, a slika 2 zadani zaslon pri prvom izvođenju testnog koda.

Koristi sljedeće zadane vrijednosti za pozadinsko osvjetljenje i kontrast;

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((bez potpisa dugo) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Otkrio sam da oni dobro funkcioniraju s LCD zaslonom dimenzija 4 x 20 koji sam ostavio na miru.

Korak 5: Zaključak

Kad sam tek prije dosta vremena započeo s elektroničkom/softverskom industrijom, bio je veliki naglasak na korištenju žičane ili veroboard ploče za izradu prototipova s puno prekomjernog inženjeringa na završnom krugu u slučaju da ste pogriješili, s obzirom na cijenu i trajanje ponovnog okretanja ploče.

Pogreška vas je obično koštala nekoliko tjedana na rasporedu i pokvarila je profitnu maržu (a možda i vaš posao).

PCB -i su nazivani "umjetničkim djelima", jer su uistinu bili umjetnička djela. Stvoreno dva puta u punoj veličini pomoću ljepljive crne krep trake od strane 'tragača' ili osobe koja vodi crteže, a fotografijom ga je umanjila kućica kako bi fotografija odoljela šablonama.

Dijagrame kola također su stvorili alati za praćenje i ručno izvukli iz vaših bilješki o dizajnu. Kopije su napravljene fotostatički i nazvane su „plavi otisci“. Budući da su uvijek bile plave boje.

Mikrokontroleri su bili tek u povojima i obično su bili u strujnom krugu oponašani ako bi vaša tvrtka mogla priuštiti jedan s pratećim složenim i skupim razvojnim okruženjem.

Kao tadašnjem proizvođaču, sami troškovi lanca alata za razvoj softvera bili su previsoki, neizbježno ste bili prisiljeni ubaciti heksadecimalne vrijednosti izravno u EPROM (RAM/Flash ako ste imali sreće), a zatim sate tumačite kako bi nastalo ponašanje utvrdilo vaš kôd je radio ako nije radio kako se očekivalo (bit 'wiggling' ili serijski printf su najpopularnije tehnike ispravljanja pogrešaka. Neke se stvari nikad ne mijenjaju). Obično ste morali napisati sve vlastite knjižnice jer nijedna nije bila dostupna (zasigurno nije bilo bogatog izvora poput interneta).

To je značilo da ste proveli puno vremena pokušavajući shvatiti kako nešto funkcionira, a manje vremena stvarali.

Svi vaši dijagrami su ručno nacrtani, obično na A4 ili A3 i morali su biti dobro promišljeni, dajući im logičan tok putanje signala slijeva nadesno. Ispravke su obično značile da morate početi sa svježim listom.

Završni krug je većim dijelom razvijen korištenjem veroboard -a za trajnost i montiran u jednostavno ABS kućište kako bi mu se dao onaj "profesionalni dodir".

Za razliku od toga, razvio sam cijeli ovaj projekt za 5,5 dana koristeći visokokvalitetni besplatni softver što je rezultiralo profesionalnim standardnim PCB -om. Da me je želja obuzela, mogla sam je ugraditi u 3D tiskanu kutiju vlastite izrade.

Nešto o čemu ste mogli sanjati prije manje od deset godina.

Kako su se stvari promijenile na bolje.

Korak 6: Korištene reference

KiCAD Shematski hvatanje i dizajn PCB -a

KiCAD EDA

Arduino ORG alat za razvoj softvera

Arduino

LiquidCrystal_I2C_PCF8574 Arduino knjižnica

Ovdje

MCP4561_DIGI_POT Arduino knjižnica

Ovdje

Glatko PWM LED blijeđenje s ATTiny85

Ovdje

Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP

Preporučeni: