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, Novembar
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 Uputstvu je detaljno opisano kako stvoriti HD44780 LCD upravljački modul (slika 1 gore). Modul omogućava korisniku da programski kontrolira sve aspekte LCD -a preko I2C, što uključuje; LCD i ekran, intenzitet kontrasta i pozadinskog svetla. Iako je Arduino Uno R3 korišten za izradu prototipa, on će raditi jednako dobro 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 dizajna kako bi se utvrdilo koliko će vremena trebati za stvaranje praktične radne ploče.

Dizajn zamjenjuje standardni generički kontrolni modul (slika 3 gore) i oslanja se na instrukcije i biblioteke koje sam ranije proizveo.

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

Koji dijelovi su mi potrebni? Pogledajte priloženi materijal u nastavku

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 alati su mi potrebni?

  • Mikroskop najmanje x3 (za SMT lemljenje),
  • SMD lemilica (sa olovkom za tečni fluks i lemljenjem sa fluks jezgrom),
  • 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 doza ručne spretnosti i odlična koordinacija ruku i očiju,
  • Odlične vještine lemljenja.

Obrađene teme

  • Uvod
  • Pregled kola
  • Proizvodnja PCB -a
  • Pregled softvera
  • Testiranje dizajna
  • Zaključak
  • Korišćene reference

Korak 1: Pregled kola

Pregled kola
Pregled kola

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

Kolo je dizajnirano da bude tač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 olakšavanja za postizanje glatkog blijeđenja.

Kontrola LCD ekrana

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

Zadana I2C adresa za ovo je 0x3F.

Kompatibilnost 3v3 ili 5v I2C

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

Ako je potrebna 5v rad, nemojte uklapati nikakve komponente 3v3, zamjenjujući ih otpornicima 0 Ohm 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, tada se može postaviti na PCB, RV1 10K, umjesto U2, C4 i R5. Pogledajte BoM radi kompatibilnog potenciometra.

Premošćivanjem kratkospojnika J6 adresa I2C je 0x2E. Pretpostavljalo se da je za normalan rad ovo premošćeno.

Promenljiv izbor intenziteta pozadinskog svetla

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 kontrolerom Moduli R1, T1 R7 i T2 koriste se za moduliranje +ve dovodne š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 je vježba, prvenstveno namijenjena određivanju koliko će vremena trebati da se dovrši dizajn (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 gore u subotu navečer. Moja je ideja, kako je navedeno, bila stvoriti vlastitu varijantu I2C LCD upravljačkog modula, s identičnim dimenzijama, koja nudi potpunu programsku kontrolu LCD -a preko I2C.

Shematski dijagram i izgled PCB -a razvijeni su sa Kicad v4.0.7 slike 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 toga PCB -ovi iz JLCPCB -a u četvrtak (koristio sam DHL uslugu dostave da ubrzam stvari) slike 4, 5, 6 i 7.

Do četvrtka uveče su izgrađene dve ploče (varijante 3v3 i 5v) koje su uspeš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 sa sjedištem u Velikoj Britaniji i uz mali dio cijene.

Korak 3: Pregled softvera

Pregled softvera
Pregled softvera
Pregled softvera
Pregled softvera

Postoje tri glavne komponente softvera potrebne za upravljanje modulom I2C LCD kontrolera;

1. LiquidCrystal_I2C_PCF8574 Arduino biblioteka

Dostupno ovdje

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

Napomena: Ovo radi podjednako dobro i sa općenitim kontrolerom LCD modula za I2C LCD. Samo što daje daje funkcionalnost od ostalih biblioteka.

2. MCP4561_DIGI_POT Arduino biblioteka

Koristi se u skici za programsku kontrolu kontrasta LCD -a

Dostupno ovdje

3. Programska kontrola nivoa pozadinskog osvjetljenja LCD -a pomoću PWM -a i funkcije kvarcnog olakšavanja radi postizanja glatkog blijeđenja

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

Detalji o ovom softveru dati su u ranijim uputstvima 'Glatko PWM LED blijeđenje sa 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 prikazuju 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 ATTiny85 programer 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ćava korisniku da postavi bilo koji LCD specifičan parametar direktno preko veze serijskog terminala.

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

Slika 1 gore prikazuje prešu za ploču kompatibilnu sa 5v I2C, montiranu na LCD ekran dimenzija 4 x 20, a slika 2 podrazumevani ekran pri prvom pokretanju testnog koda.

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

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((nepotpisano dugo) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Otkrio sam da oni dobro funkcioniraju sa LCD ekranom dimenzija 4 x 20 koji sam imao na raspolaganju.

Korak 5: Zaključak

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

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

PCB -i su nazivani "umjetničkim djelima", jer su zaista bili umjetnička djela. Napravljeno dva puta u punoj veličini pomoću ljepljive crne krep trake od strane "tragača" ili osobe koja vodi crteže, a fotografsko ga je smanjilo veličanstveno mjesto 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 urađene fotostatički i nazvane su „plavi otisci“. Zato što 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 kompanija mogla sebi priuštiti jedan sa pratećim složenim i skupim razvojnim okruženjem.

Kao tadašnjem proizvođaču, samo 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 satima tumačite rezultirajuće ponašanje kako biste utvrdili šta vaš kôd je radio ako nije radio kako se očekivalo (bit 'wiggling' ili serijski printf su najpopularnije tehnike otklanjanja grešaka. Neke se stvari nikada ne mijenjaju). Obično ste morali napisati sve vlastite biblioteke 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 dao „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 štampanu kutiju vlastite izrade.

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

Kako su se stvari promenile 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 biblioteka

Evo

MCP4561_DIGI_POT Arduino biblioteka

Evo

Glatko PWM LED blijeđenje sa ATTiny85

Evo

Programiranje ATTiny85, ATTiny84 i ATMega328P: Arduino kao ISP

Preporučuje se: